环境信息
canal v1.1.5-alpha-2 mysql 5.7
问题描述
场景:binlog同步到kafka,topic配置多partition,根据表名动态分区 问题:kafka中truncate事件的操作类型为dml(这个是否应该归类于ddl?),但是在配置了动态分区的情况下,并没有进行动态分区,而是作为dml操作默认进入partition 0
LogEventConvert.java boolean isDml = (type == EventType.INSERT || type == EventType.UPDATE || type == EventType.DELETE);
MQMessageUtils.java if (rowChange.getIsDdl()) { partitionEntries[0].add(entry); }
期待结果
truncate操作也可以根据表名进行动态分区
现执行情况
truncate操作默认发送到0号分区
原提问者GitHub用户xiehaochn
目前DDL在发送到MQ时,并没有对SQL做深度的表解析,所以统一按照默认行为处理,可以考虑提交一个PR给我
原回答者GitHub用户agapple
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。