反馈已提交

网络繁忙

数据同步-写入方式

  • 文档创建者:Roxy
  • 历史版本:18
  • 最近更新:Wendy123456 于 2024-12-20
  • 1. 概述

    1.1 版本

    FineDataLink版本
    功能说明
    --
    4.0.181)移除了「比对字段」

    2)写入方式「直接将数据写入目标表」,更新为「追加写入数据」

    4.0.28
    • 调整「写入方式」和「字段映射」的顺序

    • 写入方式优化,分为三种:直接将数据写入目标表清空目标表,再写入数据基于标识字段,追加/更新/删除数据

    4.0.29
    • 主键冲突策略中主键相同,停止写入并报错修改为主键相同,记录为脏数

    • 写入方式为「清空目标表,再写入数据」时逻辑优化

    4.1.9.1写入方式基于标识字段,追加/更新/删除数据修改为「基于标识字段,新增/修改/删除数据」

    1.2 功能简介

    本文介绍「数据同步」设置写入方式或者使用「数据转换-DB表输出」设置写入方式时配置项说明。

    「写入方式」界面如下图所示:

    16.png

    写入方式有三种:

    注1:不同数据库支持的写入方式有部分限制,具体请参见:定时任务数据源功能限制说明

    注2:4.1.3 及之后版本,目标表为 Hive、星环 TRANSWARP INCEPTOR 时,支持分区写入。详情请参见:读取、创建、写入分区表

    写入方式
    说明效果示例
    直接将数据写入目标表目标表无物理主键且未配置逻辑主键映射:直接将数据写入目标表不同写入方式效果说明

    目标表有物理主键或已配置逻辑主键映射:基于主键比对数据行的差异:主键相同、主键不同

    1)主键不同的数据行:追加写入

    2)主键相同的数据行,提供三种写入策略:

    • 主键相同,覆盖目标表的数据

    • 主键相同,忽略输入源的数据

    • 主键相同,记录为脏数据

    清空目标表,再写入数据直接先把目标表清空掉,然后再写入数据;有无主键均可以选择
    基于标识字段,新增/修改/删除数据

    1)目标表无物理主键:写入方式中勾选了「更新」或「删除」时,「主键映射」处不允许为空,需设置逻辑主键

    2)目标表有物理主键或已配置逻辑主键映射,识别数据行的标识:相同、新增、修改、删除:


    • 相同的数据行:忽略

    • 新增的数据行:新增

    • 修改的数据行:更新

    • 删除的数据行:删除

    2. 直接将数据写入目标表

    1724224174905434.png

    2.1 主键映射

    建立「来源端-目标端」的数据行对应关系,设置步骤如下图所示:

    18.png

    1)目标表中若存在物理主键/自动建表配置了主键,将直接根据目标表物理主键,自动生成主键映射行以确定数据唯一性。

    2)目标表中若无物理主键:

    • 目标表是自动建表生成的:自动建表时,在「字段映射」处可以手动设定单个或多个字段为物理主键,写入方式Tab中,主键映射处自动显示已设置好的物理主键。

    • 目标表是已存在表:「主键映射」处,支持选择字段作为逻辑主键映射以确定数据唯一性;若不设置逻辑主键,直接追加写入数据。

    2.2 主键冲突策略

    注:目标端为 Hive 时,不支持「主键冲突策略」。

    1724224427262542.png

    满足以下任一条件,需要选择「主键冲突策略」:

    • 目标表存在物理主键。

    • 目标表不存在物理主键,但配置了逻辑主键。

    主键冲突策略有三种:

    • 主键相同,覆盖目标表的数据。

    • 主键相同,忽略输入源的数据。

    • 主键相同,记录为脏数据。

    3. 清空目标表,再写入数据

    1724224475857081.png

    直接先把目标表清空掉,然后再写入数据;有无主键均可以选择。

    目标端为简道云时,不支持该写入方式。

    4.0.29 以及之后的版本:

    1)当来源表没有主键时,目标表存在主键,进行清表重写时,先清空目标表,再对目标表进行写入;

    2)如果此时来源表存在两条主键相同的数据,后一条会覆盖前一条的记录;

    4. 基于标识字段,新增/修改/删除数据

    4.1 功能说明

    注1:目标端为 Hive 时,不支持该写入方式。

    注2:新增/更新/删除可勾选任意一个或多个。

    标识字段/标识值:

    1)通过标识字段和标识值筛选出需要新增/更新/删除的数据。

    2)若使用「数据比对+DB表输出算子」实现数据,「DB表输出算子中的标识字段则自动读取 fdl_comparison_type 作为标识字段,且自动读取标识字段的值作为标识值。

    3)表输出只选择新增/更新/删除其中一个时,「标识字段」可不填,不填则对读取的所有数据进行新增或更新或删除。

    主键映射:

    详情请参考本文 2.1 节说明。

    1)出现条件:写入方式中勾选了「更新」或「删除」。

    2)写入方式中勾选了「更新」或「删除」时,「主键映射」处不允许为空。

    4.2 最佳实践

    1)通常数据比对+DB 表输出结合使用,详情参见:数据比对典型示例

    2)单个数据同步节点使用场景:

    • 用户希望将筛选出的数据,只做新增/更新/删除操作。

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

    详情请参见:数据同步-基于标识字段,新增/更新/删除数据

    5. 注意事项

    比如来源表和目标表都有 D 列的部分数据为 NULL:

    设置「写入方式」为追加写入且 A、B、C、D 都是逻辑主键,如下图所示:

    运行后:若 D 列不为 NULL,若主键冲突则覆盖目标表数据;若 D 列为 NULL,若主键冲突则不会遵循覆盖逻辑,会追加写入。


    附件列表


    主题: 数据开发-定时任务
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持