最新历史版本 :数据同步概述 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

[helpvideo]3255[/helpvideo]

1.1 版本说明

FineDataLink 版本功能变动
1.6
  • 新增「自动建表」功能

  • 下拉框支持模糊搜索

  • 字段映射界面增加刷新按钮

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

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

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

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

4.0.30字段映射中可支持搜索字段
4.1.3Doris、StarRocks 数据源作为写入端,支持自动建表,详情参见本文 4.1.2 节


查看历史版本更新
FineDataLink 版本功能变动
1.7字段映射界面可编辑映射并删除字段映射关系
1.9允许指定一个或多个字段作为比对字段,来更新目标表中的数据
2.1字段映射时支持模糊匹配,可选择映射方式
2.2数据来源支持服务器数据集,支持从 CSV、Excel 文件中读取数据
3.0原「离线同步」节点更名为「数据同步」
3.7「数据去向」中若选择「自动建表」,「字段映射」Tab下可删除表字段、修改表字段展示顺序、修改表字段长度、修改字段类型
4.0.1「数据去向」中若选择「自动建表」,「字段映射」Tab下修改表字段展示顺序的方式,从点击调整字段顺序调整为拖拽调整字段顺序
4.0.13
  • 「数据来源」支持 MongoDB 和简道云

  • 支持自动将数据同步内容生成「数据转换」节点

4.0.14
  • 「数据来源」支持「FTP/SFTP」数据源

  • 「数据来源」支持「服务器本地目录」数据源

4.0.18

1)移除了「比对字段」和「更新策略」

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

3)「数据去向」中写入方式分为四类:

  • 目标表无主键写入

  • 目标表有主键写入,包含 3 种冲突策略

  • 清空目标表再写入数据

  • 插入/更新/删除数据(灰化,仅支持在数据转换中使用)

4.0.20「数据去向」的数据源类型中,新增「简道云」类型
4.0.21
  • 「数据去向」Tab 中支持选择模式,详情参见 DB表输出 文档的 2.1 节内容

  • 数据去向 Tab 中若选择「自动建表」,字段映射 Tab 中可设置物理主键。

1.2 应用场景

用户希望将大量的数据直接抽取同步写入数据库中,且想要同步的数据不需要非常复杂的处理步骤,就可以使用「数据同步」节点。

1.3 功能简介

通过「设置需要抽取的数据」>「设置数据去向及字段映射」>「设置数据写入方式」将数据直接抽取并写入数据库中。

  • 数据来源:设置源表,从哪个数据库的哪张表抽取数据,可写 SQL 语句。

  • 数据去向与映射:设置目标表,抽取的数据保存到哪个数据库的哪张表下,可存放到已有的表,也支持自动新建一个表;设置源表跟目标表之间的字段映射关系,支持手动调整映射关系。

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

14.png

注1:数据同步后的定时更新可以参考:数据更新专题

注2:4.0.18 版本移除了「比对字段」和「更新策略」,通过「数据比对」+「DB表输出」的组合方式,可完成增量插入、删除、更新的操作。4.0.18 之前版本用户请查看 历史版本

1.4 前提条件

拥有能够进行数据开发的 FineDataLink 系统用户:用户管理

对用户进行了数据开发权限分配:数据平台使用权限定时任务管理权限

配置了需要接入 FineDataLink 作为数据来源的数据连接,详情参见:[通用]配置数据连接

2. 使用须知编辑

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

2)「数据同步」节点与「参数赋值」节点组合使用,可实现数据的增量更新。详情请参见:数据增量更新

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

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

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

可通过「数据同步」节点实现,详情请参见:数据同步-基于标识字段,追加/更新/删除数据

3. 数据来源编辑

「数据来源」Tab 界面如下图所示:

15.png

设置项介绍如下表所示:

设置项
说明
数据源

FineDataLink支持的数据源 文档的第三章内容(支持数据读取的数据库)

只展示已配置过数据连接且当前用户有数据连接使用权限的选项

SQL 语句通过 SQL 从源数据库的表中查询取数,且支持引用定时任务中的参数,参数的定义和使用方式可参见文档 自定义参数
数据预览可查看当前语句对应的数据,一般用来检查语句写得对不对,预览时最多只显示 20 行且与实际数据可能存在差异

此时若发现取出的数据需要进行一些复杂的操作,例如行列转换数据关联JSON解析等数据处理和转换,则可以使用「生成数据转换」功能,将根据数据同步节点的数据来源和去向设置,新增一个「数据转换」节点,你可以使用数据转换替代数据同步进行复杂的数据处理工作。

注:详情请参见:生成数据转换

8.gif

4. 数据去向与映射编辑

「数据去向与映射」Tab 界面如下图所示:

1692009989189444.png

4.1 设置数据去向

4.1.1 数据源/库

选择数据需要写入的数据库。支持的数据库请参见:FineDataLink支持的数据源 文档的第三章内容(支持数据写入的数据库)。

数据源处只展示已配置过数据连接且当前用户有数据连接使用权限的选项。

若数据库有模式,支持选择模式。如下图所示:

1692010150246515.png

模式默认值说明如下:

1)数据库有模式:

  • 若数据连接中已配置模式,默认值为数据连接中配置的默认值。

  • 若数据连接中未配置模式,模式默认值为空,用户自己选择。

2)数据库没有模式,若数据连接中设置了数据库名称,「库」字段默认值为数据库名称,若数据连接中未设置数据库名称,「库」字段默认为空。

3)模式配置项仅选择关系型数据库才出现。

4)目标表如果是「已存在表」,获取的是此目标库/模式下的表;如果是「自动建表」建表建在此目标库/模式下。

4.1.2 目标表

已存在表:是选择目标数据库中已有的表来存放数据。

自动建表:是直接在目标数据库中新建一张表来存放。

注:若选择「自动建表」,未指定模式时,会使用数据库默认模式,而不是数据连接中的模式。

自动建表:

若数据去向选择了「Doris」数据源,则设置去向端表时,需要选择表类型,如下表所示:

表类型建表时设置项说明
明细模型(Duplicate Key)

不支持设置物理主键

支持设置 NOT NULL

主键模型(Unique Key)- 读时合并

支持设置物理主键

支持设置 NOT NULL

主键模型(Unique Key)- 写时合并

支持设置物理主键

支持设置 NOT NULL

Doris 1.2.0 及以上版本支持使用;

聚合模型(Aggregate Key)此类型不支持自动建表

若数据去向选择了「StarRocks」数据源,则设置去向端表时,需要选择表类型,如下表所示:

表类型建表时设置项说明
明细模型(Duplicate Key)

不支持设置物理主键

支持设置 NOT NULL

更新模型(Unique Key)

支持设置物理主键

支持设置 NOT NULL

主键模型(Primary Key)

支持设置物理主键

支持设置 NOT NULL

StarRocks 1.19及以上版本支持使用

聚合模型(Aggregate Key)此类型不支持自动建表

已存在表:

若数据去向选择了「Doris」或者「StarRocks」数据源,则设置去向端表时,需要选择表类型,后续设置写入方式时有一定的限制,如下表所示:

表类型写入限制
明细模型(Duplicate Key)

Doris:主键模型(Unique Key)- 写时合并

StarRocks:主键模型(Primary Key)

当选择"直接将数据写入目标表"时,主键冲突策略只能选择:主键相同,覆盖目标表的数据

不支持:

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

  • 主键相同,停止写入并报错

Doris:主键模型(Unique Key)- 读时合并

StarRocks:更新模型(Unique Key)

Doris&StarRocks:聚合模型(Aggregate Key)
  1. 当选择"直接将数据写入目标表"时,不支持:配置主键映射以及主键冲突策略

  2. 不支持选择"基于标识字段,追加/更新/删除数据";

4.2 字段映射

建立「来源端-目标端」的字段对应关系。如下图所示:

1695711177890280.png

数据映射一些设置的介绍和注意事项如下:

配置项
说明
映射方式选择源表字段跟目标表字段的映射方式,有两种分别是「同名映射」和「同行映射」
建表语句如果设置「数据去向」时是「自动建表」的,那么就会有这个入口,点开后可查看和复制建表语句,如果自动建表不满足要求,可粘贴到 SQL脚本 修改并建表
编辑映射

1)字段映射」中可删除表字段、修改表字段展示顺序、修改字段类型

2)用户可自定义设置目标表字段与来源表字段之间的映射关系。如下图所示:

1692012314601887.png


重新获取源表的字段、字段类型发生改变时,点击该按钮可重新获取,并初始化字段映射界面
主键

4.0.21 及之后版本,数据去向 Tab 中若选择「自动建表」,字段映射 Tab 中可设置物理主

注:若数据去向 Tab 中若选择「自动建表」,字段映射 Tab 中未设置主键,运行任务建表成功后,再次编辑任务,不支持修改主键

两种映射方式的匹配逻辑如下:

映射方式
匹配逻辑
同名映射按照目标表字段与来源表字段字符重合的情况匹配,整体逻辑为:

1)根据来源字段,在目标表中寻找同名(字符完全相同)字段对其进行匹配

2)没有同名字段时:

  • 寻找目标表中包含来源表字段字符的字段,或者来源表中包含目标表字段字符的字段,对其进行匹配

  • 如果存在多个字符符合上述条件,则按照字段在目标表中出现的顺序进行优先级区分,出现顺序靠前的优先级高,匹配时优先展示

  • 已被匹配的字段不再被匹配,即不存在多个源头字段对应同一个目标表字段的情况

3)如果在目标表中找不到同名或者包含目标表字段字符的字段,则右侧映射字段显示为空

同行映射源头字段和目标表字段按顺序匹配:同行则建立映射关系

使用时一些需要注意的点:

1)映射时删除了一些来源表字段,那么切换映射方式后,还是会根据剩下来的这些字段进行调整。

2)手动将映射方式从默认项「同名映射」切换到「同行映射」,点击「重新获取」字段,获取的字段将按照「同行映射」的方式自动匹配。

3)以下两种场景会出现目标表无字段可匹配源头表的情况,在这两种情况下,右侧目标表字段可展示为空:

  • 同名映射:目标表不存在包含源头表字段的字段。

  • 同行映射:源头表字段数量大于目标表字段数量。

4)映射时,如果右侧目标表有空字段,会出现提示图标,悬浮在其上方提示:目标表字段存在空值

5)定时任务运行后,字段映射处不支持修改目标表字段类型。

5. 写入方式编辑

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

22.png

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

写入方式
说明
直接将数据写入目标表目标表无物理主键且未配置逻辑主键映射:直接追加写入数据

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

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

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

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

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

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

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

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

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

  • 相同的数据行:忽略

  • 新增的数据行:追加

  • 修改的数据行:更新

  • 删除的数据行:删除

5.1 直接将数据写入目标表

1692012677174877.png

5.1.1 主键映射

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

25.png

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

1692062501350933.png

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

  • 目标表是自动建表生成的:自动建表时,在字段映射处可以手动设定单个或多个字段为物理主键。

  • 目标表是已存在表:主键映射处,选择字段作为逻辑主键映射确定数据唯一性,若为空直接追加写入数据

5.1.2 主键冲突策略

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

1693538082823021.png

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

  • 目标表存在物理主键。

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

主键冲突策略有三种:

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

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

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

5.2 清空目标表,再写入数据

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

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

4.0.29 以及之后的版本:

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

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

5.3 基于标识字段,追加/更新/删除数据

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

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

1692013576682976.png

标识字段/标识值:

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

2)若使用了「数据比对」算子,则自动读取 fdl_comparison_type 作为标识字段,且自动读取标识字段的值作为标识值。

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

主键映射:

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

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

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

6. 示例编辑

简介
文档
A 数据库中的表数据同步到 B 数据库表中数据同步-数据库表
API 接口中的数据同步到数据库表中
数据同步-API
服务器数据集中的数据(例如 Excel、CSV 数据),同步到数据库表中
数据同步-Excel
数据库中的数据同步到 FineBI 中
数据同步至FineBI
简道云中的数据同步到数据库表中
数据同步-简道云数据
使用数据同步节点实现数据的增删改
数据同步-基于标识字段,追加/更新/删除数据