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

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本功能变动
3.3数据转换节点新增算子「比对删除」,可将来源表中删除数据的操作同步到目标表
4.0.18
  • 「数据转换」节点移除「比对删除」算子,新增「数据比对」算子

  • 通过数据比对+DB表输出的组合方式,可完成增量插入、删除、更新的操作

注:未升级到 4.0.18 及之后版本的用户,请参见文档:比对删除

1.2 应用场景

  • 某公司CIO办公室使用数据驾驶舱大屏,驾驶舱大屏中数据会每天半小时更新一次,为保证数据大屏加载的性能,客户需要使用数据处理工具将来源数据加工成结果表,再供大屏使用;

  • 由于我们使用【清空目标表,再写入数据】的方式,会导致结果表间接性数据为空,大屏加载失败的问题,所以我们需要使用【比对更新】的方式完成数据更新。

1.3 功能简介

同步数据时,来源表数据会新增、修改、删除,此时如果需要目标表数据也做这些操作,可以通过数据比对+DB表输出的组合方式,完成增量插入、删除、更新的操作。

注:更多数据定时更新方案详情参见:数据更新专题

15.png

2. 功能介绍编辑

通过数据比对+DB表输出的组合方式,可完成增量插入、删除、更新的操作。数据比对」算子的设置界面如下图所示:

16.png

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

设置项说明备注
比对源
  • 需要前置 2 个输入/计算算子

  • 原始表:数据比对的底表,即左表,一般是数据来源表;:数据比对的比对表,即右表,一般是数据目标表。

  • 只限 2 个前置算子

  • 「原始表」和「比对表」均需要配置,不能为同一张数据表

逻辑主键需要选择左右两表的关联字段
-
比对字段

基于选定的「逻辑主键」,再选择两表的比对字段,用于进行数据比对和标识列「fdl_comparison_type」内容标记

「比对字段」配置可以为空:
  • 不为空:4 种标记数据都能筛选出来

  • 为空:只能筛选出标记列为 Added、Removed、Identical 的数据,不能识别 changed

标识关系默认新增标记列,列名为 fdl_comparison_type,值默认为四种:
  • 左右表均有数据,且左表等于右表(值为 Identical)

  • 左右表均有数据,但左表不等于右表(值为 Changed)

  • 左表有数据,右表没有(值为 Added)

  • 左表没有数据,右表有(值为 Removed)


支持用户自定义 4 种标记值,但是 FDL 程序需要能自动映射。

例如:

例如针对比对更新场景,支持用户将 Identical 改成 same ,Changed 改成 diff ,Added 改成 add,Removed 改成 delete,但是程序能够识别这种映射关系,并且在后续的DB 表输出能够自动填充

(即数据比对中,标识关系上输入的值与DB表输出中的标识值一致即可)

在「数据预览」Tab 页中,fdl_comparison_type 放在第一列,并且列名用橙色表示。如下图所示:

1676345295729921.png

3. 示例编辑

3.1 场景模拟

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

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

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

1676345585583929.png

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

1676345641640345.png

3.2 设置来源表和目标表

3.2.1 创建任务

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

20.png

3.2.2 设置来源表

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

22.png

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

21.png

3.2.3 设置目标表

与 3.2.2 节步骤类似。

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

23.png

3.3 设置数据比对

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

24.png

2)数据比对算子中,由于来源表和目标表中可以通过ID字段进行关联,所以选择ID作为逻辑主键;由于来源表和目标表的sales字段可以查看两张表的数据差异情况,所以选择sales作为比对字段,具体设置如下图所示:

注:「比对源」是自动生成的。

25.png

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

26.png


3.4 设置 DB 表输出

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

2)设置「DB表输出」算子:最新数据存到目标表 fsalecopy 中,写入方式选择「插入/更新/删除数据」,写入方式选择「物理删除」,逻辑主键选择 ID ,标识字段与标识值如下图所示:

27.png

3)点击「字段映射」,删除目标表字段 fdl_comparison_type 。如下图所示:

28.png

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

3.5 运行任务

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

29.png

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

1676354789864805.png