最新历史版本 :配置实时管道任务-同步配置 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:
icon提示:
本文内容适用于 4.2.11.3 及之后版本;4.2.11.3 之前版本,请参见:历史文档

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本
功能变动
4.0.5

-

4.1.11.5自动建表时从源表获取到表描述后自动填充到目标端,详情参见本文 2.7 节
4.2.11.3
实时管道任务配置界面更新,本文介绍「同步配置设置项
4.2.11.4
来源端选择 Oracle、读取方式选择 LogMiner、且同步方式为仅增量同步时,增量同步起点支持选择「自定义时间


查看历史版本更新
FineDataLink 版本功能变动
4.0.16
  • 对于管道任务目标表,支持自动建表和选择「已存在表」两种方式

  • 字段支持设置映射方式

4.0.18
  • 支持批量编辑目标数据库表名前后缀

  • 表名、字段名支持大小写转换,同时自动建表时表名、字段名支持大小写自动纠正

4.0.23对于无法设置物理主键的数据表,数据管道支持设置逻辑主键
4.0.29

在选择目标端为「已存在表」或者首次进行全量同步时,会对数据进行清空表内容重写,此时

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

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

4.0.30当「选择来源」选择「仅增量同步」时,去向表默认选择「已存在表」,会自动执行一次同名匹配,且用户仍可以手动切换为「自动建表」
4.1.1

支持对要同步的来源端数据进行管理,筛选无主键或者表配置异常的表,详情参见本文 2.4 节

4.1.31)Doris、StarRocks 数据源作为写入端,支持自动建表,详情参见本文 2.1

2)通过「手动建表」功能,可自定义建表的SQL语句,例如修改字段名、字段类型、定义各种表的特性等

3)字段映射表格交互优化

4.1.5.2

1)「表字段映射」步骤中,若去向选择自动建表,管道任务运行成功后,将自动变为已存在表

2)支持筛选表建立方式:已存在表、自动建表

3)支持批量修改表建立方式

4)当「选择来源」选择「仅增量同步」时,去向表默认选择「自动建表

4.1.5.4

1)来源表的字段映射中支持读取来源表的字段备注、表描述

2)目标表选择自动建表时,可自定义字段备注、表描述

3)目标表选择已存在表时,显示表备注、字段备注

4.1.6.1自动建表时,表名支持包含中文
4.1.8.1配置管道任务-选择数据来源 步骤中,若生成了分组表,「表字段映射」步骤中,将显示分组表的字段映射
4.1.9.3管道任务自动建表支持指定分区(PostgreSQL、Greenplum、Gauss200 )和分布(Greenplum、Gauss200)逻辑,详情参见:读取、创建、写入分区表
4.1.11.2管道任务自动建表支持指定分区(YMatrix )和分布(YMatrix)逻辑,详情参见:读取、创建、写入分区表

1.2 功能简介

「同步配置步骤中,需要选择要同步的来源表、设置同步方式(仅增量同步存量+增量同步)、同时建立「来源端-目标端」的字段对应关系。如下图所示:

12.png

2. 设置同步对象、同步方式编辑

2.1 选择同步对象

可选择要实时同步的数据表、数据库。

2.1.1 普通表

场景:用户希望一张源表的数据实时同步到另外一张目标表中。

点击「添加表按钮,选择待同步的表即可。如下图所示:

8.png

2.1.2 快速选表

「快速选表」按钮可批量选择多表,帮助用户更快选择来源表。如下图所示:

9.png

输入表名时,需注意:

  • 每行一个表名。

  • 可直接复制excel中的列数据粘贴匹配。

  • 若所选表已经添加了,快速选表无法匹配。

2.1.3 分组表

场景:设备数据采集场景中,源端有相同格式的多个库的数据,需要实时同步到数仓的一张表中使用。

1)用户可将多张结构相同的源表数据同步到一张目标表中,取所有源表字段的交集作为分组表的字段。如下图所示:

注1:支持生成多个分组表。

注2:取交集时,只需要字段名一致,如果多张来源表的字段类型不一样,向上取能兼容所有来源字段的类型作为分组表中该字段的类型。

10.png

情况一:此时会校验源表字段交集的情况,若子表字段完全交集,生成分组表后,分组表名称为用户勾选的第一个子表的名称。

情况二:若没有交集字段,则提示:所选子表无字段交集,无法生成分组表,建议取消操作并排查子表结构。如下图所示:

该情况下无法生成分组表。

1761188828873474.png

情况三:若存在部分交集字段,则提示:存在交集外的子表字段,这些字段后续无法同步,建议取消操作并排查子表结构生成分组表后,分组表名称为用户勾选的第一个子表的名称。如下图所示:

该情况下,生成的分组表中只包含交集字段,可正常实时同步。

1761188851971511.png

2)生成分组表后,如下图所示:

10.png

点击「删除按钮,可删除分组表。

点击「编辑按钮,可重命名分组表(多个分组表间不能重名);可新增、删除子表。如下图所示:

14.png

2.2 同步类型

注:对于历史数据量很大的情况,历史数据往往要通过特定的高速装载方式或者分多次多批导入。管道任务仅使用在在全量同步完成后,接续开始增量同步,此时用户可以使用仅增量同步类型。

19.png

2.2.1 存量+增量同步

先对所有存量数据同步,然后持续同步新增变化。
任务初次运行时,将完整运行全量同步+增量同步;任务中断或暂停后,再次运行时,如果所有表的全量同步都已完成,则将从增量的断点开始,直接运行增量同步。

2.2.2 仅增量同步

增量同步起点
说明
选择「任务启动时间」作为起点时,将以任务启动时间作为解析开始时间

对于使用目标数据源推荐方式导入历史数据时,没有筛选条件的历史全量数据导入,可以设置增量同步起点为任务执行开始时间

1)任务仅包含增量阶段,任务初次运行时,将按照配置的起始时间开始进行增量同步。

2)支持数据源:MySQL、Oracle、SQLServer、PostgreSQL

3)配置后生效时间点精度为:yyyy-MM-dd HH:mm:ss.000,精确到毫秒,时区以数据库的时区为准。

注1:对于PostgreSQL 数据源,仅支持任务启动时间作为起点

注2:SAP HANA 仅支持任务启动时间作为起点


选择「自定义时间」作为起点时,可指定增量起始时间,默认为空,必填,允许指定到秒。

可选时间的起点是检测用户数据库日志最早的时间。

对于使用目标数据源推荐方式导入历史数据时,基于时间筛选的历史数据导入,可以设置增量同步起点为最早的筛选时间

3. 字段映射编辑

3.1 目标表建立方式

目标表名称中不能包含中文、特殊字符。用户可新建表/选择已存在表作为目标表。

3.1.1 自动建表

1)使用「自动建表」,在目标数据库新建实时管道任务目标表

注:新建表不支持和数据库已存在表重名;其中 4.1.6.1 之前版本表名支持包含英文、数字、下划线,4.1.6.1 及之后版本,表名支持包含英文、中文、数字、下划线

22.png

2)「手动建表」按钮说明:

场景一:若用户想要使用语句在目标数据库中新建表,可以复制「手动建表」中的语句并在数据库执行。

场景二:点击「手动建表」按钮后,用户可修改字段名、字段类型,以及去定义各种表的特性。具体请参见:手动建表

3)不同数据库对功能的支持说明:

3.1.2 选择已存在表

选择「已存在表」,可将实时管道任务数据实时同步至已有数据表。如下图所示:

3.png

需注意:

1)配置管道任务-选择数据去向 步骤中,开启了「目标端执行逻辑删除」和「同步时标记时间戳」,若目标表不存在新增字段_fdl_update_timestamp、_fdl_marked_deleted,系统将自动在运行任务时帮用户新建该字段。

2)4.0.30 -4.1.5.2 版本,当「选择来源」选择「仅增量同步」时,去向表默认选择「已存在表」,会自动执行一次同名匹配,且用户仍可以手动切换为「自动建表」;4.1.5.2 及之后版本,当「选择来源」选择「仅增量同步」时,去向表默认选择「自动建表」。

3.2 设置主键

30.png

问题
解答
什么场景下支持自定义逻辑主键呢

目标端数据源为 Oracle/GP/SQLServer/YMatrix  数据库时,支持不设置物理主键,在「主键映射处设置逻辑主

实时同步时,使用逻辑主键作为更新和删除时的比对字段

为什么要设置逻辑主键某些数据源的业务表没有主键,用户也不知道这些表作为来源表该标记什么字段作为逻辑主键。此时对无主键的表,无需标记逻辑主键,也可以实现数据的实时同步
主键值为Null时支持更新/删除数据按钮的作用勾选后,逻辑主键值为null,也能正常更新删除
只设置逻辑主键效果
  • 源端有 5 条相同数据,第一次启动目标端也会有 5 条相同数据

  • 源端相同数据删除其中一条、多条,目标端都是全部删除

  • 源端相同数据再增加相同的一条或多条数据,目标端数据无变化

  • 源端多条相同数据只修改一其中条,目标端相同数据全部修改

  • 源端多条相同数据修改多条,按照改动顺序,源端第一次修改的数据,目标端对应的那个字段也全部同时修改;之后修改的数据,按照最新数据新增

31.png

若该步骤设置了同步源表结构变化,则:

  • 字段新增:与其他 DDL 相同,目标字段新增,新增的这个字段不标记物理主键或逻辑主键

  • 字段删除:如果删除字段在目标侧对应是逻辑主键,任务将报错终止

 如果删除字段在目标侧对应是物理主键,由于此时数据同步将一直违反主键非空的规则,故将任务报错中止

注:在同步时,优先使用目标端已存在的物理主键,当目标表不存在物理主键时、再使用配置表内的逻辑主键;

当配置任务时,任务中配置了逻辑主键,而用户在某个时间点将目标端新增了物理主键,则在用户查看映射配置时展示目标端的物理主键、而非先前配置的逻辑主键。

目标端表类型判断目标表主键状态来源端表目标端表

自动建表

目标端数据库支持设置物理主键

来源端有物理主键

来源端物理主键自动配置至目标端物理主

32.png

来源端没有物理主键用户可自行设置物理主键用户配置了物理主键

1)自动建表时,将用户指定的字段设为目标表物理主键

2)同步时,使用目标表物理主键作为更新和删除时的比对字段

用户没有配置物理主键,配置了逻辑主键

1)自动建表时,不会设物理主键

2)数据同步时,使用目标表所有可用字段作为逻辑主键并配置到任务中,使用逻辑主键作为更新和删除时的比对字段

目标端数据库不支持设置物理主键,仅能设置逻辑主键


来源端有物理主键来源端物理主键自动配置至目标端逻辑主键

用户配置了逻辑主键

对于不支持物理主键的数据源,勾选逻辑主键的时候,同时勾选NotNULL,但是用户可以手动取消勾选。

自动建表时,不会设物理主键

同步时,使用配置的逻辑主键作为更新和删除时的比对字段

来源端没有物理主键用户必须配置逻辑主键

自动建表时,不会设物理主键

同步时,使用逻辑主键作为更新和删除时的比对字段

已存在表

目标端数据库已经存在物理主键

不允许调整物理主键配置

-
默认使用已存在物理主键,不能修改

同步时,使用目标表物理主键作为更新和删除时的比对字段

目标端数据库不存在物理主键

不允许目标端逻辑主键为空

来源端有物理主键来源端物理主键自动配置至目标端逻辑主键
来源端没有物理主键用户必须设置逻辑主键用户配置了基于逻辑主键同步同步时,使用配置的逻辑主键作为更新和删除时的比对字段

3.3 设置分区键

管道任务自动建表支持指定分区(PostgreSQL、Greenplum、Gauss200、YMatrix)和分布(Greenplum、Gauss200、YMatrix)逻辑,详情参见:读取、创建、写入分区表

3.4 设置字段映射

可以调整字段映射方式、目标数据库数据表的字段类型、字段名称、字段顺序;还可以取消映射、筛选已映射、未映射字段。如下图所示:

26.png

3.5 批量操作

1)若需要给同步的数据表批量增加前缀或者后缀,可以点击右上角的「批量修改」,选中需要修改的表,然后增加前后缀即可,如下图所示: 

28.png


被修改的表名增加了 ods_ 前缀,如下图所示:

27.png

2)可批量修改表建立方式。如下图所示:

注:仅支持对未同步过的表进行批量修改。

29.png

3)支持批量删除来源表。如下图所示:

30.png

4)支持批量修改同步方式。详情请参见本文 2.2 节内容。

3.6 筛选按钮介绍

1)点击数据库展示侧的筛选标志,即可对设置需要进行同步的来源数据表进行筛选,筛选条件为:目标表配置是否有异常、目标表是否有主键、表建立方式。

31.png

2)点击字段映射上方的筛选标志,可筛选出是否已映射的字段、是否有异常的字段。如下图所示:

有异常字段示例:例如目标表字段名称为空、类型为空等。

32.png

3.7 表描述、字段注释

可将来源表的表备注、字段备注同步到目标表中;若目标表为自动建表,可自定义表描述、字段注释。

1)来源表的字段映射中支持读取来源表的字段注释、表描述。如下图所示:

1761120953642638.png

2)目标表选择自动建表时,可自定义字段注释、表描述。如下图所示:

34.png

自动建表时从源表获取到表描述后自动填充到目标端,如下图所示:

36.png

3)目标表选择已存在表时,显示表描述、字段注释。如下图所示:

23.png

需注意:

1)不支持表描述的数据库:ClickHouse、Hive、Impala、TRANSWARP INCEPTOR、Informix、MaxCompute、SQLite、StarRocks。

2)不支持字段备注的数据库:Hive、Impala、TRANSWARP INCEPTOR、Informix、MaxCompute、SQLite、StarRocks。

3)表描述、字段注释后续变化:

  • 若未开启DDL:

只在第一次同步时,同步字段的注释,之后源表字段注释的变化不会同步到目标表。

  • 若开启DDL:

源表字段注释的变化(增删改)会同步到目标表中;新增字段的注释也会同步过去。

  • 不论是否开启DDL,只在第一次同步时,同步表描述,后续源表的表描述发生变化,不会同步到目标表。

3.8 分组表和普通表不同

本文的 2.1-2.7 节内容同样适用于分组表,本节介绍分组表和普通表的不同之处。

4.png

1)分组表中,如果多张来源表的字段类型不一样,向上取能兼容所有来源字段的类型作为分组表中该字段的类型。

2)分组表的目标表中,将自动新增「_fdl_src_schema_table」字段,标识来源的数据表,采用「schema.table_name」的形式记录源表模式名和表名。

3)分组表的物理主键Not Null配置说明:仅在所有分组内的子表都有 NOTNULL 配置或主键配置时,分组表采用相同配置,否则不配置。

4. 写入方式编辑

1)3.2 节设置的物理主键,会自动显示在「主键映射处。如下图所示:

1761121423703888.png

2)主键映射处支持设置逻辑主键,详细说明请参见本文 3.2 节内容。

5. 后续步骤编辑

1)点击最下方的「保存按钮后,界面如下图所示:

38.png

2)此时可点击右上角的「任务控制按钮,设置容错机制、结果通知、任务属性。如下图所示:

详情请参见:配置实时管道任务-管道控制

1761121992544896.png