Function Description of Data Comparison

  • Last update: September 26, 2023
  • 1. 概述

    1.1 版本

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

    「数据转换」节点移除「比对删除」算子,新增「数据比对」算子

    4.0.20新增「比对表返回字段」选项,可选项为比对表的所有字段。一般在当「数据比对」算子连接的比对表算子类型为「简道云输入」算子时,才会设置该选项
    4.0.28
    • 支持多选比对字段

    • 当「数据比对」算子连接的比对表算子类型为 简道云输入 时,数据比对算子中才显示「比对结果表字段」设置

    1.2 功能简介

    「数据比对」算子通过对比来源表数据和目标表数据,可对数据的增删改进行标记。

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

    34.png

    2. 使用须知

    1)数据存在新增/修改/删除时,根据用户的数据结构和更新需求,我们推荐不同的方案。详情请参见:数据更新专题概述

    若需要使用「数据比对」算子实现数据的增删改:

    • 当来源表和目标表至少有一个为简道云数据时,使用「数据比对+简道云输出」的组合方式实现。

    • 当来源表和目标表都为数据库数据时,使用「数据比对+DB表输出」的组合方式实现。

    2)若用户为以下场景时(来源表和目标表都不是简道云数据):

    • 没有标识字段,希望将筛选出的数据,做追加或者更新或者删除操作(无标识字段时仅允许选择一种操作类型)。

    • 数据已经有了标识字段和标识值,需要对数据进行追加/更新/删除操作。

    可通过「数据同步」节点或者「DB表输出」算子实现。具体操作可参见:数据同步-基于标识字段,追加/更新/删除数据

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

    3. 使用流程

    3.1 获取来源表和目标表数据

    设置 2 个输入/计算算子,获取来源表和目标表的数据。需注意,只能设置 2 个输入/计算算子,两个输入/计算算子均需要配置,不能为同一张数据表。

    在上方的输入/计算算子,在「数据比对」算子中,自动作为左表(即来源表)在下方的输入/计算算子,在「数据比对」算子中,自动作为(即目标表)

    「数据比对」算子使用来源表中的数据对比目标表中的数据,标记出增删改的数据。如下图所示:

    1692002212477902.png

    3.2 标记增删改数据

    使用「数据比对」算子,筛选出增删改数据。

    设置「数据比对」算子,一般只需要设置三项:主键映射、比对字段、标识关系。

    6.png

    3.2.1 比对源

    自动生成。

    3.2.2 主键映射

    设置界面如下图所示:

    1692002516240149.png

    需要在「主键映射」处选择字段作为主键,便于确定数据唯一性。

    • 若右表无物理主键,点击「主键映射」右侧的「编辑」按钮,需要在左表和右表中选择字段作为逻辑主键。「逻辑主键」的值不建议为空或者相同。

    • 若目标表存在物理主键,点击「主键映射」右侧的「编辑」按钮,右表默认填充物理主键,只需选择左表字段。

    3.2.3 比对字段

    支持多选比对字段。设置界面如下图所示:

    1692003759234494.png

    1)右表字段不能被重复选择多次。

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

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

    3.2.4 标识关系

    标记列 fdl_comparison_type 的值,用于标记两张表中同一个字段的差异。默认值为:Identical(相同)、Changed(更新)、Added(新增)、Removed(删除),可以自定义标识关系值。

    3.2.5 比对结果表字段

    1)当「数据比对」算子连接的比对表算子类型为 简道云输入 时,需要设置比对表返回字段值为_id。如下图所示:

    1692005197827801.png

    2)遇到同名字段时,比对表返回字段下拉时对重名字段名后缀自动加1,格式为:column1、column2、column3。

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

    3.2.6 数据预览

    「数据预览」处,可查看标记的数据。如下图所示:

    1692004065919696.png

    「数据预览」Tab 中,预览时只会取前 5000 行数据。如果来源表前 5000 行数据中的某些数据,在目标表的 5000 行数据之后存在,在「数据预览」Tab 中,标记列对应的值将会是 Added,但实际上应该是 Identical。但「数据比对」算子运行时,是比对所有数据的,用户无需担心,「数据预览」Tab 未全量读取数据的问题,产品未来考虑优化。

    3.3 数据输出

    3.3.1 数据去向与映射

    「DB表输出」算子的数据去向与映射中,可删除标记列 fdl_comparison_type。如下图所示:

    1692004354902791.png

    3.3.2 写入方式

    「DB表输出」算子中,写入方式选择「基于标识字段,追加/更新/删除数据」,可选择逻辑删除还是物理删除。「标识值」需要与「数据比对」算子中的「标识关系」值一一对应主键映射与「数据比对」算子的相同即可。

    注:「DB表输出」算子详细介绍请参见:DB表输出

    1692004249807487.png

    4. 使用示例

    5. 注意事项

    5.1 数据比对后数字后自动加上.0

    Oracle 数据表中字段 ID 为 number 类型,使用包含该字段的数据表数据比对后,ID 字段后自动加上.0。如下图所示:

    1693289054642598.png

    产品逻辑:

    经过 Spark 计算后会出现上述问题,但不会影响计算结果。针对该问题,产品后续会优化。

    5.2 火狐(firefox)浏览器中不显示数据比对的预览样式

    问题描述:

    火狐浏览器中,不显示数据比对的预览样式。如下图所示:

    1695697027657341.png

    原因分析:

    浏览器支持 has 特性,数据比对的预览样式才能显示正常。

    火狐浏览器的 103 及之后版本,实际已经支持 has 特性,但默认为关闭状态,需要通过以下步骤进行开启:

    1)地址栏输入about:config,进入设置界面。

    2)搜索layout.css.has-selector.enabled,将其值切换为 true。

    85.png

    3)进入 FDL 工程,在「数据比对」算子中预览,发现样式正常。


    附件列表


    主题: 数据开发
    Previous
    Next
    • Helpful
    • Not helpful
    • Only read

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    Get
    Help
    Online Support
    Professional technical support is provided to quickly help you solve problems.
    Online support is available from 9:00-12:00 and 13:30-17:30 on weekdays.
    Page Feedback
    You can provide suggestions and feedback for the current web page.
    Pre-Sales Consultation
    Business Consultation
    Business: international@fanruan.com
    Support: support@fanruan.com
    Page Feedback
    *Problem Type
    Cannot be empty
    Problem Description
    0/1000
    Cannot be empty

    Submitted successfully

    Network busy