历史版本4 :来源表数据增删改同步至目标表 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

应用场景编辑

数据库中存在两张表,其中数据「来源表」每天会更新、删除、新增。希望数据来源表数据变化后,「目标表」也随之更新,与数据来源表的数据保持一致。

例如:数据来源表「出入库信息」,昨天新增两条数,序号分别为 9 和 10,删除序号为 6 的数据,序号为 7 的数据「出库数量」变为 102 。

希望这些数据变化能更新到「目标表」中,如下图所示:

实现思路编辑

  • 通过数据同步节点,将来源表「出入库信息」中新增和更改的数据更新到目标表中。

  • 通过比对删除算子,将来源表中删除的数据从目标表中剔除。

操作步骤编辑

示例数据:目标表.xls出入库信息.xls

数据准备

1)目标表

FDLDemo 数据库中,有「目标表」。表信息如下图所示:

1650436598716424.png

2)数据来源表

FRDemo 数据库中,有数据来源表「出入库信息」,昨天新增两条数据,删除序号为 6 的数据,序号为 7 的数据「出库数量」变为 102 。表信息如下图所示:

1650441864482378.png

现在希望,目标表数据定时更新,与数据来源表保持一致。

将「出入库信息」中新增和更新数据更新至目标表

1)新建一个 ETL 任务,将一个「数据同步」节点拖到设计界面,并对该节点进行设置。如下图所示:

2)通过对比目标表和数据来源表中的序号字段,将数据来源表中新增和更新的数据更新到目标表中。

如果存在来源表「出入库信息」中有但是「目标表」中没有的「序号」,则将这些数据更新至「目标表」,同时当遇到来源表和目标表的序号相同时,会将来源表「出入库信息」中的数据覆盖更新到目标表。

如下图所示:

将来源表中删除的数据从目标表中删除

本节步骤目的:通过数据转换节点中的比对删除算子,将来源表中删除的数据从目标表中剔除。

1)将一个「数据转换」节点拖到设计界面,并与「数据同步节点相连。如下图所示:

2)点击「数据转换」节点进入设置页面,添加「DB表输入算子。

查询出来源表「出入库信息」中的数据,如下图所示:

3)再添加一个比对删除算子,「DB表输入算子相连。

对于「对比删除」算子,通过设置对比字段为「序号」,进行数据对比,若「目标表」中存在来源表「出入库信息」中没有的序号,则会将「目标表」中的该条数据删除,然后点击右上角确定按钮,如下图所示:

设置定时更新

1)点击调度配置,设置任务定时执行时间。让该任务每天在指定时间运行一次,如下图所示:

注:用户根据实际情况设置执行时间。

2)点击右上角保存按钮。

效果查看

任务执行后,目标表数据如下图所示:

1650444054524333.png