moiot / gravity

A Data Replication Center
Apache License 2.0
912 stars 173 forks source link

源端存在没有主键的表,过滤条件失败 #322

Closed zhanjianS closed 2 years ago

zhanjianS commented 3 years ago

源端(阿里云的mysql)存在没有主键的表,过滤条件失败

图片

请问这种方式有什么办法可以解决嘛

Ryan-Git commented 3 years ago

跟主键没啥关系,这是删了一列? 没太考虑这种不兼容的变更。。。全量重来或者加回去吧

zhanjianS commented 3 years ago

没有删除列,这个列数不对 貌似跟阿里云的RDS有关系,对没有主键的列会多一个虚拟列,源端的表结构是hive元数据,没法变更。
看这个日志是在组装sql的时候失败了,过滤条件不是在这个之前生效嘛?

Ryan-Git commented 3 years ago

那也说得通,都是 binlog 比 schema 多一列。不是在组装 sql 时候,是在前面读 binlog 时候了

加个自增主键呗,写入还快点。mysql 比 hive 多个主键列是常规操作。

我们这边忽略这个错好像也不是很合适,有丢数据风险。额外加个过滤操作也很奇怪。