【 TiDB 使用环境】生产环境
【 TiDB 版本】
【遇到的问题:问题现象及影响】
背景: 业务使用DataX同步mysql到TiDB,发现数据丢失。
DataX生成的语句是insert…on duplicate key update,TiDB表上有主键和唯一索引,初步怀疑唯一索引导致,现创建一个影子表,使用DataX同时插入这两个表来验证。
现征集排查思路有没有其它的原因会造成类似情况?
你使用的TiDB版本是多少?唯一键有多少个?有使用过非datax的方式去做同步验证吗
我们其他场景数据同步(用dm,flink或者syncer等)也没看到你说的情况
看下datax的日志啊,datax会提示读取了多少数据,同步了多少数据的
验证的结果出来了,确实是上游和下游的唯一索引不一致导致的,DataX同步到Tidb,违反了唯一约束规则给覆盖了
1 个赞
日志没有异常,都是正常的返回时间、结果
这表结构还不一样。不过话说回来,这个主键重复直接覆盖的动作,是可以设置的么?
除非别用on duplicate key update,让它抛出错误
1 个赞
哦,用了这个呀,难怪了。我们正准备换掉kettle这个etl工具,准备用DataX
还是弄成一致的好些哈
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。
