問題背景:java
在Debezium作數據初始化的時候,對於一些tinyint字段的值,出現0,1的值的異常。mysql
通過源碼排查,數據在JDBC上面,讀取到的數據是Boolean值。sql
經過排查,原來是MYSQL特有的數據問題,須要在JDBC上面加上關鍵字,問題解決。get
JAVA數據類型 和 MYSQL的數據類型轉換,要注意tinyInt 類型,且存儲長度爲1的狀況。源碼
MySQL Types to Java Types for ResultSet.getObject():it
在Kafka-Connect debezium 的配置上,加上:配置
"database.tinyInt1isBit":"false", jdbc
(PS. 其餘須要在JDBC上面增長參數,能夠經過 database.PARAM_NAME=XXX的方式)數據類型
若是tinyInt1isBit =true(默認),且tinyInt存儲長度爲1 ,則轉爲java.lang.Boolean 。數據
不然轉爲java.lang.Integer。
JDBC的URL增長 tinyInt1isBit=false參數,注意參數名區分大小寫,不然不生效
jdbc:mysql://${ucmha.proxy1_2.host}/${db.mysql.db}?tinyInt1isBit=false