1. 概述
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.0.5 | - |
4.1.11.2 | 管道任务自动建表支持指定分区(YMatrix )和分布(YMatrix)逻辑,详情参见:读取、创建、写入分区表 |
4.1.11.5 | 自动建表时从源表获取到表描述后自动填充到目标端,详情参见本文 2.7 节 |
4.1.12.3 | 「表字段映射」步骤中,若去向选择「自动建表」,管道任务运行成功后,仍为「自动建表」 |
查看历史版本更新 | ||||||||||||||||||||||||||
|
1.2 功能简介
在「表字段映射」步骤中,建立「来源端-目标端」的字段对应关系。如下图所示:
2. 操作步骤
2.1 目标表建立方式
目标表名称中不能包含中文、特殊字符。用户可新建表/选择已存在表作为目标表。
2.1.1 自动建表
1)使用「自动建表」,在目标数据库新建管道任务目标表。
注:新建表不支持和数据库已存在表重名;其中 4.1.6.1 之前版本表名支持包含英文、数字、下划线,4.1.6.1 及之后版本,表名支持包含英文、中文、数字、下划线
2)「手动建表」按钮说明:
场景一:若用户想要使用语句在目标数据库中新建表,可以复制「手动建表」中的语句并在数据库执行。
场景二:点击「手动建表」按钮后,用户可修改字段名、字段类型,以及去定义各种表的特性。具体请参见:手动建表
3)不同数据库对功能的支持说明:
若数据去向选择了「Doris」数据源,则设置去向端表时,需要选择表类型,详情参见:Doris 数据源使用说明、StarRocks数据源使用说明
若数据去向选择了「StarRocks」数据源,则设置去向端表时,需要选择表类型,详情参见:Doris 数据源使用说明、StarRocks数据源使用说明
2.1.2 选择已存在表
选择「已存在表」,可将管道任务数据实时同步至已有数据表。如下图所示:
需注意:
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)选择「自动建表」时,可自动识别来源端数据表已有的物理主键。如下图所示:
2)选择「已存在表」时,可自动识别已存在表的主键。如下图所示:
3)支持手动设置目标表的主键。如下图所示:
2.3 设置分区键
管道任务自动建表支持指定分区(PostgreSQL、Greenplum、Gauss200、YMatrix)和分布(Greenplum、Gauss200、YMatrix)逻辑,详情参见:读取、创建、写入分区表
2.4 设置字段映射
可以调整字段映射方式、目标数据库数据表的字段类型、字段名称、字段顺序;还可以取消映射、筛选已映射、未映射字段。如下图所示:
2.5 批量修改表名、表建立方式
1)若需要给同步的数据表批量增加前缀或者后缀,可以点击右上角的「批量修改」,选中需要修改的表,然后增加前后缀即可,如下图所示:
被修改的表名增加了 ods_ 前缀,如下图所示:
2)可批量修改表建立方式。如下图所示:
注:仅支持对未同步过的表进行批量修改。
2.6 筛选按钮介绍
1)点击数据库展示侧的筛选标志,即可对设置需要进行同步的来源数据表进行筛选,筛选条件为:目标表配置是否有异常、目标表是否有主键、表建立方式。
如果用户没有选择主键,且在「选择去向」处配置了无主键同步,则任务运行时,系统将自动将这些表的所有可用字段配置为逻辑主键。
2)点击字段映射上方的筛选标志,可筛选出是否已映射的字段、是否有异常的字段。如下图所示:
有异常字段示例:例如目标表字段名称为空、类型为空等。
2.7 表描述、字段注释
可将来源表的表备注、字段备注同步到目标表中;若目标表为自动建表,可自定义表描述、字段注释。
1)来源表的字段映射中支持读取来源表的字段注释、表描述。如下图所示:
2)目标表选择自动建表时,可自定义字段注释、表描述。如下图所示:
自动建表时从源表获取到表描述后自动填充到目标端,如下图所示:
3)目标表选择已存在表时,显示表描述、字段注释。如下图所示:
需注意:
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 节内容同样适用于分组表,本节介绍分组表和普通表的不同之处。
1)分组表中,如果多张来源表的字段类型不一样,向上取能兼容所有来源字段的类型作为分组表中该字段的类型。
2)分组表的目标表中,将自动新增「_fdl_src_schema_table」字段,标识来源的数据表,采用「schema.table_name」的形式记录源表模式名和表名。
3)分组表的「物理主键」和「Not Null」配置说明:仅在所有分组内的子表都有 NOTNULL 配置或主键配置时,分组表采用相同配置,否则不配置。
3. 注意事项
1)ClickHouse 作为写入端时字段映射说明
当向目标表写入数据时,按照 CollapsingMergeTree 表引擎进行写入,详情参见:ClickHouse数据源使用说明
2)FineDataLink 管道任务对于 Oracle 数据源,字段类型限制详情参见:Oracle数据源使用说明