1. 概述
有时数据可能不仅仅会有新增,还可能会有修改、删除,这时候我们希望能够对数据进行比对更新,保证数据的变化同步到目标表中。
4.0.18 及之后版本,「数据转换」节点移除「比对删除」算子,新增「数据比对」算子,通过「数据比对」+「DB表输出」的组合方式,可完成增量插入、删除、更新的操作。所以本文针对 FineDataLink 的不同版本提供方案。
2. 示例一:4.0.18 及之后版本
3. 示例二:4.0.18 之前版本
3.1 场景模拟
数据来源表「出入库信息」,昨天新增两条数据,序号分别为 9 和 10,删除序号为 6 的数据,序号为 7 的数据「出库数量」变为 102 。
希望这些数据变化能更新到「目标表」中。如下图所示:
3.2 实现思路
通过数据同步节点,将来源表「出入库信息」中新增和更改的数据更新到目标表中。
通过「比对删除」算子,将来源表中删除的数据从目标表中剔除。
3.3 将「出入库信息」中新增和更新数据更新至目标表
1)新建一个定时任务,将一个「数据同步」节点拖到设计界面,并对该节点进行设置。如下图所示:
2)通过对比目标表和数据来源表中的「序号」字段,将数据来源表中新增和更新的数据更新到目标表中。
如果存在来源表「出入库信息」中有但是「目标表」中没有的「序号」,则将这些数据更新至「目标表」,同时当遇到来源表和目标表的序号相同时,会将来源表「出入库信息」中的数据覆盖更新到目标表。
如下图所示:
3.4 将来源表中删除的数据从目标表中删除
本节步骤目的:通过「数据转换」节点中的「比对删除」算子,将来源表中删除的数据从目标表中剔除。
1)将一个「数据转换」节点拖到设计界面,并与「数据同步」节点相连。如下图所示:
2)点击「数据转换」节点进入设置页面,添加「DB表输入」算子。
查询出来源表「出入库信息」中的数据,如下图所示:
3)再添加一个「比对删除」算子,与「DB表输入」算子相连。
对于「对比删除」算子,通过设置对比字段为「序号」,进行数据对比,若「目标表」中存在来源表「出入库信息」中没有的序号,则会将「目标表」中的该条数据删除,然后点击右上角「确定」按钮,如下图所示:
3.5 设置定时更新
1)点击「调度配置」,设置任务定时执行时间。让该任务每天在指定时间运行一次,如下图所示:
注:用户根据实际情况设置执行时间。
2)点击右上角「保存」按钮。
3.6 效果查看
任务执行后,目标表数据如下图所示: