1. 概述编辑
1.1 版本
| FineDataLink 版本 | 功能变动 |
|---|---|
| 3.3 | 「数据转换」节点新增算子「比对删除」,可将来源表中删除数据的操作同步到目标表 |
| 4.0.18 |
|
| 4.0.20 | 新增「比对表返回字段」选项,可选项为比对表的所有字段。一般在当「数据比对」算子连接的比对表算子类型为「简道云输入」算子时,才会设置该选项 |
1.2 功能简介
同步数据时,来源表数据会新增、修改、删除,此时如果需要目标表数据也做这些操作,可以通过「数据比对」+「DB表输出」的组合方式,完成增量插入、删除、更新的操作。

2. 使用须知编辑
1)「数据比对」算子与「DB表输出」算子组合使用,才能完成目标表的增删改操作。
2)数据存在新增/修改/删除时,根据用户的数据结构和更新需求,我们推荐不同的方案。详情请参见:数据更新专题概述
3)未升级到 4.0.18 及之后版本的用户,请参见文档:比对删除
3. 使用流程编辑
3.1 获取来源表和目标表数据
设置 2 个输入/计算算子,获取来源表和目标表的数据。需注意,只能设置 2 个输入/计算算子,两个输入/计算算子均需要配置,不能为同一张数据表。
在上方的输入/计算算子,在「数据比对」算子中,自动作为来源表;在下方的输入/计算算子,在「数据比对」算子中,自动作为目标表。
「数据比对」算子使用来源表中的数据对比目标表中的数据,标记出增删改的数据。如下图所示:

3.2 标记增删改数据
使用「数据比对」算子,筛选出增删改数据。
设置「数据比对」算子,一般只需要设置三项:逻辑主键、比对字段、标识关系。

| 设置项 | 说明 |
|---|---|
| 比对源 | 自动生成 |
| 逻辑主键 | 用于在两张表中识别同一条数据,即通过「逻辑主键」将来源表和目标表的数据对应起来,所以「逻辑主键」的值不建议为空或者相同 |
| 比对字段 | 用于对比两张表中该字段的差异,基于比较结果会自动生成标记列 fdl_comparison_type ,该列可以在「DB表输出」算子的「字段映射」中删除 若某个字段被设置为比对字段:可以识别出该字段对应数据的新增、更新、删除 若某个字段没有被设置为比对字段:能识别出该字段的增加和删除,但这个字段若存在更新,将不能被识别 |
| 标识关系 | 标记列 fdl_comparison_type 的值,用于标记两张表中同一个字段的差异。默认值为:Identical(相同)、Changed(更新)、Added(新增)、Removed(删除),可以自定义标识关系值 |
| 比对表返回字段 | 1)可选项为比对表的所有字段,一般情况下默认为空,无需设置 2)当「数据比对」算子连接的比对表算子类型为 简道云输入 时,需要设置比对表返回字段的值为_id 3)遇到同名字段时,比对表返回字段下拉时对重名字段名后缀自动加1,格式为:column1、column2、column3,重名新增后缀的逻辑同数据关联算子 使用场景请参见:简道云输出 |
「数据预览」处,可查看标记的数据。如下图所示:

「数据预览」Tab 中,预览时只会取前 5000 行数据。如果来源表前 5000 行数据中的某些数据,在目标表的 5000 行数据之后存在,在「数据预览」Tab 中,标记列对应的值将会是 Added,但实际上应该是 Identical。但「数据比对」算子运行时,是比对所有数据的,用户无需担心,「数据预览」Tab 未全量读取数据的问题,产品未来考虑优化。
3.3 数据输出
「DB表输出」算子中,写入方式选择「插入/更新/删除数据」,可选择逻辑删除还是物理删除。「标识值」需要与「数据比对」算子中的「标识关系」值一一对应。逻辑主键与「数据比对」算子的相同即可。
注:「DB表输出」算子详细介绍请参见:DB表输出

「DB表输出」算子的字段映射中,可删除标记列 fdl_comparison_type。如下图所示:

4. 使用示例编辑
请参见:数据比对典型示例

