环境:
centos7 jdk1.8 canal1.1.3
配置:
canal.mq.flatMessage = true
问题:
用canal解析binlog推送至kakfa,发现解析阿里云rds和解析普通的mysql所生成的json不一致,是我配置的有问题,还是canal本身就是这么设计的呢? 怎么才能做到生成的json统一呢?
例子:
对数据进行一次update操作,canal解析情况: canal解析rds后的json:
{ "data": [ { "ID": "267507", "USER_ID": "18812431504", "TOKEN": "868600033685643", "TYPE": "I", "TIME_CREATED": "1524551869232", "DATE_UPDATED": "1557158400000", "TIME_UPDATED": "1557228368301" } ], "database": "test_db", "es": 1557228368000, "id": 142, "isDdl": false, "mysqlType": { "ID": "bigint(20)", "USER_ID": "bigint(20)", "TOKEN": "varchar(50)", "TYPE": "char(1)", "TIME_CREATED": "bigint(20)", "DATE_UPDATED": "bigint(20)", "TIME_UPDATED": "bigint(20)" }, "old": [ { "TIME_UPDATED": "1557224782262" } ], "pkNames": [ "ID" ], "sql": "", "sqlType": { "ID": -5, "USER_ID": -5, "TOKEN": 12, "TYPE": 1, "TIME_CREATED": -5, "DATE_UPDATED": -5, "TIME_UPDATED": -5 }, "table": "test_table", "ts": 1557228368469, "type": "UPDATE" }
canal解析普通mysql后的json:
{ "data": null, "database": "test_db", "es": 1557199629000, "id": 2, "isDdl": false, "mysqlType": null, "old": null, "pkNames": null, "sql": "update test_table set name = 'zs' where id = 1", "sqlType": null, "table": "test_table", "ts": 1557199629315, "type": "UPDATE" }
原提问者GitHub用户0xcafedaddy
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。