开发者社区 问答 正文

binlog同步到kafka,truncate操作动态分区错误

环境信息

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

展开
收起
山海行 2023-04-27 19:41:05 134 发布于北京 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 目前DDL在发送到MQ时,并没有对SQL做深度的表解析,所以统一按照默认行为处理,可以考虑提交一个PR给我

    原回答者GitHub用户agapple

    2023-04-28 14:28:11 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论