一直都在报这个错误:
我只是想同步行级变化的数据内容,根据每一条变化的数据做业务处理。但是表结构发生变化这种应该怎么跳过?
canal的坑:CanalParseException: column size is not match for table
解析线程阻塞问题
这个基本是每个使用Canal的开发者的必踩之坑。$CANAL_HOME/conf/canal.properties配置文件中存在一行注释掉的配置:canal.instance.parser.parallelThreadSize = 16。该配置用于指定解析器实例并发线程数,如果注释了会导致解析线程阻塞,得到的结果就是什么都不会发生。
注释解除即可,建议使用默认值16。
参考文档https://blog.csdn.net/BBinChina/article/details/115481605
问题解决:
1、在canal.properties里面配置tsdb的mysql数据库,具体配置如下:
canal.instance.tsdb.enable = true
canal.instance.tsdb.dir = ${canal.file.data.dir:../conf}/${canal.instance.destination:}
canal.instance.tsdb.url=jdbc:mysql://hadoop:3306/canal_tsdb
canal.instance.tsdb.dbUsername = root
canal.instance.tsdb.dbPassword = root
canal.instance.tsdb.spring.xml = classpath:spring/tsdb/mysql-tsdb.xml
2、在数据库里面创建canal_tsdb数据库,数据库的用户需要有创建表的权限。
create database canal_tsdb;
参考文档https://blog.csdn.net/weixin_40126236/article/details/103928950
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。