1. 概述编辑
1.1 版本
| FineDataLink 版本 | 功能变动 |
|---|---|
| 4.0.18 |
|
| 4.1.11.2 | YMatrix 数据库支持该功能 |
| 4.2.2.1 | SelectDB 数据库支持该功能 该功能支持集群环境 |
| 4.2.3.3 | InterSystems IRIS 数据库支持该功能 |
| 4.2.8.5 | KingBaseES(SqlServer模式)、KingBaseES(MySQL模式)支持该功能 |
| 4.2.12.4 | KingBaseES(Oracle模式)、KingBaseES(PostgreSQL模式) 支持该功能 |
| 4.2.13.2 | 1)交互优化:使用 Tab 页分离「自动建表配置」和「字段映射规则」; 2)自动建表配置优化:
|
1.2 应用场景
场景一:
在进行数据跨库同步时,由于业务数据的复杂性,导致来源数据库大小写混用、不同来源数据库默认大小写规则不一致,导致同步到目标库后出现大小写不一致问题,管理和使用混乱。
用户希望通过 FDL 自动建表同步数据库至目标库时,能统一表名和字段名大小写,形成管理规范。
场景二:
当源表与目标表的编码格式、排序规则不一致时,需要手动修正,灵活性不足。
用户希望在向目标表同步数据的过程中,能自动完成编码配置的转换。
1.3 功能说明
「通用配置>自动建表配置」支持两种配置规则:
大小写配置:支持自动转换表名与字段名的大小写格式;
编码配置:支持自动转换目标表的编码配置。
1.4 约束限制
1)「通用配置」仅超级管理员支持设置,不支持分配其他用户使用和管理权限。
2)4.2.2.1 之前版本,该功能不支持集群环境;4.2.2.1 及之后版本,该功能支持集群环境。
2. 功能说明编辑
「自动建表配置」适配功能范围:定时任务、实时任务、实时管道、定时管道、数据服务。
点击「添加规则」,可选择:大小写配置、编码配置。如下图所示:

2.1 大小写配置
在自动建表时,支持对目标表表名、字段名自动进行大小写转换。

配置项说明如下:
| 配置项 | 说明 |
|---|---|
| 适用数据连接 | 选择当前大小写配置适用的数据连接,支持多选 支持选择的数据源类型有: ClickHouse、GaussDB 200、Greenplum、Greenplum/Greenplum(并行装载)/FineData、Hive、Hive(HDFS)、HSQL、IBM DB2、Impala、Informix、MongoDB、MySQL、Oracle、PostgreSQL、Presto、SAP HANA、SQL Server、SQLite、达梦、华为 GaussDB 200、南大通用 Gbase 8A、人大金仓 KingbaseES、YMatrix、SelectDB、InterSystems IRIS、KingBaseES(SqlServer模式)、KingBaseES(MySQL模式)、KingBaseES(Oracle模式)、KingBaseES(PostgreSQL模式) |
| 表名字段名转换 | 支持:全部转大写、全部转小写 |
2.2 编码配置
4.2.13.2 及之后版本,新增「编码配置」,支持自动转换目标表的编码格式和排序规则。

配置项说明如下表所示:
| 配置项 | 说明 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 适用数据连接 | 选择当前编码配置适用的数据连接,支持多选 仅支持 MySQL 数据源 | ||||||||||||
| 编码格式和排序规则 |
|
2.3 管理配置
在列表中,可查看所有的配置,支持编辑、删除配置。如下图所示:

3. 示例编辑
3.1 大小写转换
1)点击「管理系统>通用配置」,点击「自动建表配置>添加规则>大小写配置」,如下图所示:

2)选择指定的数据连接,来批量修改该数据连接对应数据库中的表名、字段名,如下图所示:

3)进入定时任务并新建「数据同步」节点,将数据写入已经设置自动建表表名和字段名全部转大写的「FDLDemo」数据连接。
此时自动建立目标数据表,输入表名会自动修改为通用设置中的大写模式,同时字段映射中目标表字段名称也改为大写模式,如下图所示:

定时管道任务同理,此时自动建立目标数据表,输入表名会自动修改为通用设置中的大写模式,同时字段映射中目标表字段名称也改为大写模式,如下图所示:

3.2 编码配置
1)点击「管理系统>通用配置」,点击「添加规则>编码配置」,如下图所示:

2)选择指定的数据连接,来批量修改目标表的编码格式和排序规则,如下图所示:

3)进入定时任务并新建「数据同步」节点,将数据写入已经进行编码配置的数据连接。在「手动建表」的编码语句中可以看到:
CHARACTER SET = utf8mb4,即编码配置中的编码格式;
COLLATE = utf8mb4_0900_ai_ci,即编码配置中的排序规则;
ROW_FORMAT = Dynamic;

3. 兼容说明编辑
1)数据管道-选择已存在表/自动建表时的兼容
自动建表:当用户在配置任务时如果选择了大小写转换和前后缀设置,则应先按照用户的设置进行大小写转换和前后缀设置后,再进行自动建表,如果用户在进行前后缀前,已经对表名和字段名进行了操作,则覆盖;
2)数据管道目前的同步时间戳和逻辑删除标记字段默认为小写,这两个字段与用户的其他字段保持统一规则、跟随用户的大小写设置而变化;如用户如果开启全部大写设置,则时间戳和逻辑删除标记也应为大写。
3)当任务已存在,再开启大小写选项
数据管道:
对于未运行的任务,当数据连接的大小写设定为全大写或全小写时,字段名和表名按照「通用设置」生效。
对于已经运行的任务,「通用设置」不生效;
定时任务:
完全按照用户在界面配置的表名和字段名进行自动建表,「通用配置」不生效;
在用户选择新的数据去向后(包括重新选择),按照选择的数据连接的大小写设定进行规范表名和字段名,字段映射会被清空、等同于新建节点;
当用户在字段映射界面点击重新获取后,按照选择的数据连接的大小写设定进行字段名规范;
4. 注意事项编辑
问题描述:
自动建表运行后,提示报表不存在。且自动建表运距复制出来无法执行。
原因分析:
部分类型数据库存在一些特定限制。例如 MySQL 数据库的 varchar 长度之和不能超过65535。
解决方案:
排查是否违反了对应数据库的规定,调整字段类型或长度。

