Canal——写入到ES中数据错乱

我的未来我决定 提交于 2019-12-05 07:05:06

 

问题描述

  使用canal-adapter写入elasticSearch数据时,数据是写入了elasticSearch了,但出现了mysql表中的数据和elasticSearch中索引中的数据错乱的问题,即把A列的数据放到了B列中的。

研究了半天,发现是因为我在测试过程中,换过另外1个数据库,这2个库中的列不一致导致的。

因为canal会通过tsdb维护了一个当前数据库内表结构,具体配置如下:

 

我这里(tsdb使用的是本地的h2数据库)。

我有2个数据库,首先在第1个库测试验证,是正常的,然后换成在第2个库测试验证,就出问题了,

因为第1个库时已经缓存了表结构信息,第2个库还是拿的第1个库的表结构进行处理的。

 

 

解决方案

知道原因了就好解决了,既然是用H2存储表结构的,那删除它,然后重启服务就好了,因为会重新加载最新的表结构

cd canal/conf/db1
rm -rf h2.mv.db

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!