zoukankan      html  css  js  c++  java
  • 解决使用logstash中jdbc导入mysql中的数据到elasticsearch中tinyint类型被转成布尔型的问题的方法

    问题场景

    在最近这几天用logstash将mysql中的数据导入的elasticsearch时,发现数据库中的tinyint(1)这种类型的就会被转成布尔型,这把我给气的。在网上找了一圈,才找到问题的根源。

    原因探索

    原来是jdbc里面将这种tinyint(1)处理成布尔型的了。tinyint(2)以上的就不会处理。

    解决方案

    网上有说在查询结果中将这种字段乘以1然后作为源数据使用,但是有的时候,我们是用*号全部查询出来,为了其中个别的字段去将全部字段都一一写出来,实在是心累啊。所以最后查询来查询去,找到了java中对这种的处理办法。就是在连接数据库的时候,指定这种不处理。就是在连接字符串后面指定tinyInt1isBit=false

    代码如下:

    jdbc_connection_string => "jdbc:mysql://localhost:3306/my_db?tinyInt1isBit=false"

    这样导入之后的tinytint完整保留字段类型。解决了我的困扰。

  • 相关阅读:
    9"边界匹配
    8劈分
    7替换
    5逻辑匹配
    4分组匹配
    3贪婪匹配与勉强匹配
    python多线程之线程传参
    多线程(类的形式)---线程同步
    多线程基础
    Linux----黑马程序员Linux教学视频简记(转载)
  • 原文地址:https://www.cnblogs.com/it100fen/p/13026924.html
Copyright © 2011-2022 走看看