开发者社区> 问答> 正文

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 113 0
1 条回答
写回答
取消 提交回答
  • 目前DDL在发送到MQ时,并没有对SQL做深度的表解析,所以统一按照默认行为处理,可以考虑提交一个PR给我

    原回答者GitHub用户agapple

    2023-04-28 14:28:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载