Mysql 版本8.0+
Canal 版本 1.1.5
Es 版本7.0+
问题:
在canal-adapter1.1.5中,使用mysql-connector-java 8.0.25进行全量数据同步时,会发现mysql数据格式为DateTime的数据无法进行同步。但是增量数据同步时,不受影响。
排查到在源代码中,增量同步数据时,使用mysql-connector-java 8.0.25到mysql中查询到字段格式为DateTime的数据在java会转为LocalDateTime格式,而在ESSyncUtil 66行中typeConvert未处理LocalDateTime格式的数据。
但是mysql-connector-java 5.1全量数据或者增量数据同步时,获取到DateTime格式为String格式,ESSyncUtil 161行中会对String处理。
既然能找到问题。处理下localDateTime格式数据,重新打包即可。