DataWorks选择这种方式同步,并发数为1,没什么每执行一次,主键值翻倍增长,中间主键都是空的没有数据?
目标数据库是mysql,主键自增长
从你提供的图片来看,你可能是在使用 DataWorks 的数据同步功能,将 MaxCompute 中的数据同步到 MySQL 中。在这个过程中,你可能遇到了一些问题。
首先,关于主键值翻倍增长的问题,这可能是因为你在 MaxCompute 中的数据中没有定义主键,或者定义的主键不是唯一的。在这种情况下,DataWorks 会自动为每条记录生成一个唯一标识符,这个标识符在每次同步时会自动递增。
其次,关于中间主键都是空的问题,这可能是因为你在同步过程中选择了忽略主键。在 DataWorks 的数据同步设置中,有一个选项叫做 "Ignore primary key",如果你勾选了这个选项,那么在同步过程中,DataWorks 会忽略源表的主键,只同步其他字段。
如果您在 DataWorks 中选择了“主键为空时不更新”的同步模式,并且并发度设为 1,则在每次执行时中间表中的主键都可能是空的。这是因为在这种情况下,只有当有新的行或修改了现有行时才会将数据写入到中间表中。
在这种情况下,您可以在同步任务的“高级选项”页面上取消选中“主键为空时不更新”选项,以便在每次执行时都将所有数据写入中间表。然后,在执行 SQL 查询时可以使用“LEFT JOIN”或“RIGHT JOIN”等方法将中间表与目标表进行关联,以获取完整的结果集。
如果您想避免重复的数据,请确保在每个阶段的任务中都添加合适的过滤条件,以仅处理新数据或已更改的数据。此外,也可以考虑在任务设置中启用“分片同步”,以实现更好的性能和效率。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。