DataWorks在测试数据集成时,任务完成后,目标库的数据 是 源库的数据 3倍量, 请问是什么原因导致的呢?不是分区表 且写入前会清理怎么办?
这个情况可能是因为你使用了全量数据同步的方式,并且在同步过程中,源库的数据被多次读取和写入。
DataWorks在进行数据集成时,有两种同步方式:增量同步和全量同步。增量同步只同步源库中新产生的数据,而全量同步则会同步源库中的所有数据。
如果你的任务是全量同步,那么在任务执行过程中,源库的所有数据都会被读取一次,然后在目标库中写入一次。如果任务执行过程中出现了错误,那么任务会重试,这就可能导致源库的数据被多次读取和写入,从而使得目标库的数据是源库数据的3倍。
解决这个问题的方法是:
在DataWorks的控制台中,找到你选择的任务,然后点击"修改"按钮。
在弹出的窗口中,找到"同步方式"选项,然后将其设置为"增量同步"。
保存更改后,重新启动你的数据集成任务。
1)追加写入,非覆盖写入
2)覆盖写入 但是每天写入一个分区 3天就有3份数据,算了一下总数是一致的 2)核实一下源端查的是否是这个实例的库表jdbc:oracle:thin:@//202.193.199.73:1521/glhis"selectedDatabase":"GLHIS", "table":[ "GLHIS.MET_CAS_DIAGNOSE" ],
,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
这种情况可能是由于数据同步任务中出现了重复写入的问题。您在配置数据集成同步任务时,需要确保正确设置了源端和目标端的数据库或数据仓库信息。DataWorks支持各种类型的数据源,并可以在数据集成同步任务配置过程中,通过选择数据源名称来控制同步读取和写入的数据库或数据仓库。
如果确认不是分区表且写入前已清理,那么重复写入的问题可能与离线同步、实时同步或全增量同步的配置有关。建议您检查这些配置是否正确,并且考虑重新执行数据集成同步任务,以排除可能出现的错误。
当使用DataWorks进行测试数据集成时,如果目标库的数据是源库数据的3倍量,可能有以下几个原因:
任务重复运行:请确保任务没有被重复运行。如果同一个任务多次运行,数据将会被重复写入目标库,导致数据量增加。
数据过滤条件未正确设置:在数据集成任务中,如果没有正确设置过滤条件或者使用了错误的过滤条件,可能会将源库中的一部分或全部数据写入目标库,从而导致数据量增加。
数据冗余:如果目标表没有设置唯一约束或者主键,并且在写入数据时没有进行去重操作,那么相同的数据可能会被重复写入目标库,导致数据量增加。
解决这个问题的方法如下:
检查任务运行情况:确保任务只运行一次,不要重复执行。可以在DataWorks的任务监控页面或任务调度记录中查看任务运行情况。
检查过滤条件:检查数据集成任务中的过滤条件是否正确设置,以确保只选择需要的数据进行写入目标库。
设置唯一约束和主键:在目标表中设置适当的唯一约束或主键,以避免重复写入相同的数据。
清理目标库数据:如果已经发现目标库中存在重复数据,可以先清空目标库中的数据,然后重新运行数据集成任务。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。