历史版本35 :数据比对典型示例 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

数据比对功能说明 文档中介绍了「数据比对」算子的功能,本文以一个简单示例介绍该算子的使用。

2. 示例编辑

示例demo详情参见:https://demo.finedatalink.com/ 「数据转换-数据比对-副本」

2.1 场景模拟

示例数据下载:fsale.xlsfsalecopy.xls

需要定期将 fsale 表中的数据同步到 fsalecopy 表中。

fsalecopy 表中的数据如下图所示:

1678327226218763.png

现在 fsale 表中删除了「甘蔗」和「冻梨」的数据,增加了「葡萄」的数据,更新了「菠萝」的数据。希望将最新数据同步到 fsalecopy 表中去。

1678327234860886.png

2.2 设置来源表和目标表

本节取出来源表和目标表的数据,方便后续在「数据比对」算子中通过比对标记出增删改的数据。

需注意的是,2 个输入/计算算子谁在位置上方,即为来源表。因此,本文示例中取出 fsale 表数据的算子位置在上方,使用 fsale 表数据比对 fsalecopy 表数据。

1689903336508884.png

2.2.1 创建任务

创建一个定时任务,将一个数据转换节点拖到设计界面。如下图所示:

2.2.2 设置来源表

1)点击「数据转换」节点,将一个DB表输入算子拖到数据转换的设计界面,在节点信息」Tab 下为其重命名为来源表。如下图所示:

2)如下图设置数据来源,SQL 语句取出 fsale 表中所有数据。

2.2.3 设置目标表

再添加一个「DB表输入」算子,重命名为「目标表」。SQL 语句取出 fsalecopy 表中所有数据。如下图所示:

2.3 设置数据比对

1)添加一个数据比对算子,并使用线条跟它上游的两个DB表输入算子相连。如下图所示:

2)数据比对算子中,设置逻辑主键比对字段即可。如下图所示:

各设置项介绍如下表所示:

设置项
说明本文示例
比对源
自动生成
-
逻辑主键用于在两张表中识别同一条数据,即通过「逻辑主键」将来源表和目标表的数据对应起来,所以「逻辑主键」的值不建议为空或者相同ID
比对字段

用于对比两张表中该字段的差异,基于比较结果会自动生成标记列 fdl_comparison_type ,该列可以在「DB表输出」算子的「字段映射」中删除

若某个字段被设置为比对字段:可以识别出该字段对应数据的新增、更新、删除

若某个字段没有被设置为比对字段:能识别出该字段的增加和删除,但这个字段若存在更新,将不能被识别

本文示例中,变化的数据列为 sales 列,所以比对字段设置为 sales 
标识关系标记列 fdl_comparison_type 的值,用于标记两张表中同一个字段的差异。默认值为:Identical(相同)、Changed(更新)、Added(新增)、Removed(删除),可以自定义标识关系值不做修改,默认即可
比对表返回字段1)可选项为比对表的所有字段,一般情况下默认为空,无需设置

2)当「数据比对」算子连接的比对表算子类型为 简道云输入 时,需要设置比对表返回字段的值为_id

使用场景请参见:简道云输出

无需设置

数据预览Tab 页如下图所示:

2.4 设置 DB 表输出

1)新增「DB表输出」算子,使用连接线与「数据比对」算子相连。

2)设置「DB表输出」算子,最新数据存到目标表 fsalecopy 中,字段映射选择同名映射,删除目标表字段 fdl_comparison_type,如下图所示:

3)点击「写入方式」,写入方式选择「插入/更新/删除数据」,写入方式选择「物理删除」,逻辑主键选择 ID ,标识字段选择 fdl_comparison_type ,标识值需要与「数据比对」算子的「标识关系」值一一对应。如下图所示:

4)点击右上角「保存」按钮。

2.5 运行任务

点击右上角运行,日志出现执行成功信息表示任务成功运行。如下图所示:

可以看到 fsalecopy 表与 fsale 表数据保持一致。如下图所示: