来源表数据增删改同步至目标表

  • 文档创建者:Wendy123456
  • 历史版本:9
  • 最近更新:Wendy123456 于 2023-06-09
  • 1. 应用场景

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

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

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

    2. 方案一:4.0.18 之前版本

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

    2.1 实现思路

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

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

    1686292440236416.png

    2.2 数据准备

    1)目标表

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

    1650436598716424.png

    2)数据来源表

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

    1650441864482378.png

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

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

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

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

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

    如下图所示:

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

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

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

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

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

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

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

    2.5 设置定时更新

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

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

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

    2.6 效果查看

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

    1650444054524333.png

    3. 方案二:4.0.18 及之后版本

    附件列表


    主题: 数据开发-定时任务
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!