最新历史版本 :配置实时管道任务-表字段映射 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本
功能变动
4.0.5

-

4.1.11.2管道任务自动建表支持指定分区(YMatrix )和分布(YMatrix)逻辑,详情参见:读取、创建、写入分区表
4.1.11.5自动建表时从源表获取到表描述后自动填充到目标端,详情参见本文 2.7 节


查看历史版本更新
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)逻辑,详情参见:读取、创建、写入分区表

1.2 功能简介

在「表字段映射」步骤中,建立「来源端-目标端」的字段对应关系。如下图所示:

41.png

2. 操作步骤编辑

41.png

2.1 目标表建立方式

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

2.1.1 自动建表

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

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

2.png

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

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

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

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

2.1.2 选择已存在表

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

3.png

需注意:

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

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

2.2 设置主键

1)4.0.23 之前的版本目标数据库数据表物理主键不能为空,以此保证写入数据的唯一性,同时这样能使目标端拥有索引、提升性能。

2)但是对于部分列存储的数据库,对设置物理主键有限制,导致无法设置物理主键,比如:当GP使用列存储时、GaussDB(基于GP)使用列存储等,对于无法新建物理主键的这些数据库,在 4.0.23及之后 版本支持使用逻辑主键替代物理主键来实现数据实时同步。

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

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

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

自动建表

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

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

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

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

用户没有配置物理主键(勾选了无主键同步)

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

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

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


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

用户配置了逻辑主键

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

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

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

来源端没有物理主键用户可自行设置逻辑主键用户没有配置逻辑主键(勾选了无主键同步)

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

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

已存在表

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

不允许调整物理主键配置

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

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

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

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

来源端有物理主键来源端物理主键自动配置至目标端逻辑主键
来源端没有物理主键用户可自行设置逻辑主键用户配置了基于逻辑主键同步

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

用户没有配置主键(勾选了无主键同步)

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

1)选择「自动建表」时,可自动识别来源端数据表已有的物理主键。如下图所示:

10.png

2)选择「已存在表」时,可自动识别已存在表的主键。如下图所示:

13.png

3)支持手动设置目标表的主键。如下图所示:

12.png

2.3 设置分区键

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

2.4 设置字段映射

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

12.png

2.5 批量修改表名、表建立方式

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

6.png

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

7.png

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

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

8.png

2.6 筛选按钮介绍

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

如果用户没有选择主键,且在「选择去向」处配置了无主键同步,则任务运行时,系统将自动将这些表的所有可用字段配置为逻辑主键。

9.png

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

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

10.png

2.7 表描述、字段注释

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

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

21.png

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

22.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,只在第一次同步时,同步表描述,后续源表的表描述发生变化,不会同步到目标表。

2.8 分组表和普通表不同

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

4.png

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

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

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

3. 注意事项编辑

1)ClickHouse 作为写入端时字段映射说明

当向目标表写入数据时,按照 CollapsingMergeTree 表引擎进行写入,详情参见:配置ClickHouse数据源

2)FineDataLink 管道任务对于 Oracle 数据源,字段类型限制详情参见:配置Oracle数据源

4. 后续步骤编辑