1. 概述编辑
1.1 版本说明
FineDataLink 版本 | 功能变动 |
---|---|
3.3 | 「数据转换」节点新增算子「比对删除」,可将来源表中删除数据的操作同步到目标表 |
1.2 应用场景
同步数据时,如果想要把来源表中的删除操作同步到目标表中去,可以使用「数据转换」节点下的「比对删除」算子。
1.3 功能简介
「比对删除」算子要结合数据输入算子使用,因为它自身是一个数据输出算子。其设置项简介如下:
数据源类型:目标表所在数据库的类型。
数据连接:目标表对应的数据连接。
目标表:同步的数据保存到哪个表里。
比对字段:根据哪个或哪些字段来判别数据删除了,允许设置多个字段。
删除方式:默认是物理删除,也就是直接把数据删了,还可以选择逻辑删除,这个方式不删数据,不过会给对应的数据加删除标记。
注:逻辑删除必须选择一个已存在的字段保存标识,标识默认为deleted,可自定义为常量或参数。
2. 示例编辑
2.1 场景模拟
示例数据下载:fsale.xls、fsalecopy.xls
某个 ETL 任务定期将 fsale 表中的数据同步到 fsalecopy 表中,某个时间两张表的数据都是相同的,如下图所示:
现在 fsale 表中删除了甘蔗和冻梨的数据,希望将这个删除操作也同步到 fsalecopy 表中去。
2.2 创建任务
创建一个 ETL 任务,将一个「数据转换」节点拖到设计界面,如下图所示:
2.3 设置数据输入
点击「数据转换」节点,将一个「DB表输入」算子拖到数据转换的设计界面,如下图设置数据来源,SQL 语句取出 fsale 表中所有数据。
2.4 设置比对删除
再将一个「比对删除」算子拖到设计界面,并使用线条跟它的上游「DB表输入」算子相连。
点击「比对删除」算子对它进行设置,其中目标表设置成 fsalecopy,比对字段设置成 name 字段,删除方式选择物理删除,也就是直接删掉数据。
点击右上角「确定」,保存「数据转换」节点的设计。
2.5 运行任务
回到任务设计界面后,点击右上角「保存并运行」,日志出现执行成功信息表示任务成功运行。
可以看到 fsalecopy 表中甘蔗和冻梨的数据在数据同步后也被删除了,如下图所示: