主要解决 由mysql同步到click house,源端(mysql)更新某条数据 在对端(clickhouse)中会转换成insert语句,出现两条重复主键的问题。使用自定义代码实现 将update语句转换成先删除对端(clickhouse)数据 再进行插入数据。
1. 创建同步任务
注意 如果需要将更新改为删除后插入(使用自定义代码) 数据库名称需要保持一致

2.上传自定义代码
需要使用到官方demo中的MysqlToClickHouseUpdateNoRepeat类 需要参考MySqlToChNoUpdate修改继承为CloudCanalProcessorV2,代码也需要对应修改
拉下来后需要用到子工程data-transform
修改plugin.properties文件内容为
loadClassName=com.clougence.cloudcanal.dataprocess.datatransform.MysqlToClickHouseUpdateNoRepeat然后打成jar包上传,创建任务

3. 查看日志是否报错
查看任务详情 查看日志


修改源端某条数据 如果没有报错 且对端数据同步后不会变成两条数据 则代表成功
评论区