1. 概述
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
3.3 | 「数据转换」节点新增算子「比对删除」,可将来源表中删除数据的操作同步到目标表 |
4.0.18 | 「数据转换」节点移除「比对删除」算子,新增「数据比对」算子 |
4.0.20 | 新增「比对表返回字段」选项,可选项为比对表的所有字段。一般在当「数据比对」算子连接的比对表算子类型为「简道云输入」算子时,才会设置该选项 |
4.0.28 |
|
4.1.5.3 |
|
1.2 功能简介
「数据比对」算子通过对比来源表数据和目标表数据,可对数据的增删改进行标记。
同步数据时,来源表数据会新增、修改、删除,此时如果需要目标表数据也做这些操作,可通过「数据比对+DB表输出」或者「数据比对+简道云输出」的组合方式,完成增量插入、删除、更新的操作。
注:若数据量较大,建议使用 数据管道 功能,实现数据的实时同步。
2. 使用须知
1)数据存在新增/修改/删除时,根据用户的数据结构和更新需求,我们推荐不同的方案。详情请参见:数据更新专题概述
若需要使用「数据比对」算子实现数据的增删改:
当来源表和目标表至少有一个为简道云数据时,使用「数据比对+简道云输出」的组合方式实现。
当来源表和目标表都为数据库数据时,使用「数据比对+DB表输出」的组合方式实现。
2)4.0.28 及之后版本,若用户为以下场景时(来源表和目标表都不是简道云数据):
没有标识字段,希望将筛选出的数据,做追加或者更新或者删除操作(无标识字段时仅允许选择一种操作类型)。
数据已经有了标识字段和标识值,需要对数据进行追加/更新/删除操作。
可通过「数据同步」节点实现,详情请参见:数据同步-基于标识字段,追加/更新/删除数据
3)未升级到 4.0.18 及之后版本的用户,请参见文档:比对删除
4)「数据比对+DB表输出/简道云输出」实现数据的增删改时,删除数据可选择逻辑删除和物理删除两种方式:
逻辑删除:不实际删除数据,标记删除数据。
物理删除:实际删除数据。
两种删除方式的具体效果可参见:物理删除和逻辑删除的区别
3. 使用流程
3.1 获取来源表和目标表数据
设置 2 个输入/计算算子,获取来源表和目标表的数据。需注意,只能设置 2 个输入/计算算子,两个输入/计算算子均需要配置,不能为同一张数据表。
在上方的输入/计算算子,在「数据比对」算子中,自动作为左表(即来源表);在下方的输入/计算算子,在「数据比对」算子中,自动作为右表(即目标表)。4.1.5.3 及之后的版本,用户可一键互换左右表位置。
「数据比对」算子使用来源表中的数据对比目标表中的数据,标记出增删改的数据。如下图所示:
注:来源表和目标表中,必须要有标记数据唯一性的字段(若没有物理主键,可在该算子中设置逻辑主键),保证数据是唯一的。
3.2 标记增删改数据
使用「数据比对」算子,筛选出增删改数据。
设置「数据比对」算子,一般只需要设置三项:主键映射、比对字段、标识关系。
3.2.1 比对源
自动生成,用户可自行调换左右表。
3.2.2 主键映射
需要在「主键映射」处选择字段作为主键,便于确定数据唯一性。
设置界面如下图所示:
若右表无物理主键,点击「主键映射」右侧的「编辑」按钮,需要在左表和右表中选择字段作为逻辑主键。「逻辑主键」的值不建议为空或者相同。
若目标表存在物理主键,点击「主键映射」右侧的「编辑」按钮,右表默认填充物理主键,只需选择左表字段。
可直接在主键映射栏删除字段。
3.2.3 比对字段
支持多选比对字段。设置界面如下图所示:
用于对比两张表中该字段的差异,基于比较结果会自动生成标记列 fdl_comparison_type ,该列可以在后续「DB表输出」算子的「字段映射」中删除。
1)右表字段不能被重复选择多次。
2)若某个字段被设置为比对字段:可以识别出该字段对应数据的新增、更新、删除;
若某个字段没有被设置为比对字段:能识别出该字段的增加和删除,但这个字段若存在更新,将不能被识别。
3.2.4 标识关系
标记列 fdl_comparison_type 的值,用于标记两张表中同一个字段的差异。
默认值为:Identical(相同)、Changed(更新)、Added(新增)、Removed(删除),可以自定义标识关系值。
3.2.5 比对结果表字段
1)当「数据比对」算子连接的比对表算子类型为 简道云输入 时,比对表返回字段值默认选择_id。如下图所示:
2)遇到同名字段时,比对表返回字段下拉时对重名字段名后缀自动加1,格式为:column1、column2、column3。
3)使用场景请参见:简道云输出
3.2.6 数据预览
「数据预览」处,可查看标记的数据。对比两张表中该字段的差异,基于比较结果会自动生成标记列 fdl_comparison_type ,如下图所示:
若勾选了比对结果表字段,则右表字段会显示绿色。
标识列 | 颜色标识 |
---|---|
Changed(更新) | 黄色 |
Added(新增) | 紫色 |
Removed(删除) | 红色 |
4.1.5.3 版本新增查看比对详情,点击「比对详情」即可看到「逻辑主键」和「比对字段」的比对详情,如下图所示:
注:「数据预览」Tab 中,预览时只会取前 5000 行数据。如果来源表前 5000 行数据中的某些数据,在目标表的 5000 行数据之后存在,在「数据预览」Tab 中,标记列对应的值将会是 Added,但实际上应该是 Identical。但「数据比对」算子运行时,是比对所有数据的,用户无需担心,「数据预览」Tab 未全量读取数据的问题,产品未来考虑优化。
3.3 数据输出
3.3.1 数据去向与映射
「DB表输出」算子的「数据去向与映射」中,可删除标记列 fdl_comparison_type。如下图所示:
3.3.2 写入方式
「DB表输出」算子中,写入方式选择「基于标识字段,追加/更新/删除数据」,可选择逻辑删除还是物理删除。「标识值」需要与「数据比对」算子中的「标识关系」值一一对应。「主键映射」与「数据比对」算子的相同即可。
注:「DB表输出」算子详细介绍请参见:DB表输出
4. 使用示例
说明 | 文档 |
---|---|
以一个简单示例介绍「数据比对」算子的使用 | 数据比对典型示例 |
某公司大量使用简道云表单进行业务填报,每天产生大量数据。为了与其他系统数据联合使用,这些数据需要定期同步至指定数据库中 根据简道云录入表单数据的增删改情况,有以下几种情况:
| 简道云数据增删改同步至数据库 |
用户有些日程信息是通过 FR 填报到数据库或者保存到简道云中,原始信息可能会被其他部门进行增删改操作,因此用户希望将日程数据在企业微信中记录,方便在活动开始前对相关的同学做到自动提醒 | 活动日程信息更新至企业微信日程 |