1. 概述
1.1 版本
| FineDataLink 版本 | 功能变动 |
|---|---|
| 4.0.17 | 支持Mysql 设置同步源表结构变化 |
| 4.2.8.5 | KingBaseES(MySQL模式)作为目标端时,支持 DDL KingBaseES(SqlServer模式)作为目标端时,支持 DDL |
| 4.2.11.3 | 「同步源表结构变化」按钮位置改变 |
| 查看历史版本更新 | ||||||||||||||||||||||||||||||||
|
1.2 应用场景
在使用管道任务进行数据实时同步过程中,来源端结构可能因业务调整等原因发生变动,如增删表、增删字段、修改字段名称、修改字段类型等,此时,用户希望目标端可以自动同步这些来源端的调整,不需要人为地进行数据表的调整。
1.3 功能说明
数据管道任务支持同步源库DDL功能,开启相关选项后,在源库发生DDL(删除表、新增字段、删除字段、修改字段名称、修改字段类型(长度修改 & 兼容类型修改))时,管道任务可以自动同步这些来源端变化至目标端,不需人为介入修改目标表结构。

2. 支持范围
管道任务的来源端和目标端,在下表中都为支持,才能正常使用 DDL 功能。
例如:管道任务来源端为 MySQL,目标端为 SQL Server ,支持使用 DDL 功能;来源端为 MySQL,目标端为 DB2 ,不支持使用 DDL 功能。
| 数据源 | 作为来源端 | 作为目标端 | 备注 |
|---|---|---|---|
| MySQL | 支持 | 支持 | |
| Oracle | 支持 | 支持 | |
| SQL Server | 支持 | 支持 | 由于 SQL Server 数据库本身特性,目前 DDL 同步不支持自动同步源端新增字段,若需要使用 DDL 进行新增字段的处理,请参见 数据管道中SQL Server DDL操作说明 |
| GaussDB 200 | 不支持 | 支持 | |
| GaussDB 100/GaussDB T | 不支持 | 支持 | |
| PostgreSQL | 支持 | 支持 | |
| Greenplum 包括并行装载 | 不支持 | 支持 | |
| kafka | 不支持 | 不支持 (目标端暂不支持kafka) | |
KingBaseES(MySQL模式) | 支持 | 支持 | |
| KingBaseES(SqlServer模式) | 支持 | 支持 | |
| TiDB | 不支持 | 支持 | |
| Amazon Redshift | 不支持 | 支持 | |
| DB2 | 支持 | 不支持 | |
| SeaboxMPP | 不支持 | 支持 | |
| SAP HANA | 不支持 | 不支持 | SAP HANA 数据源作为管道任务来源端时,程序无法感知到源表结构变化,因此需要用户手动有计划地执行表结构变更等操作,才能完成同步。详情请参见:数据管道中SAP HANA DDL操作说明 |
| 神通数据库 | 不支持 | 支持 | |
| StarRocks | 不支持 | 支持 | 源端修改列类型,StarRocks 和 Doris 存在限制,详情请参见:StarRocks数据源使用说明、Doris数据源使用说明 |
| Doris | 不支持 | 支持 | |
| YMatrix | 不支持 | 支持 | |
| PolarDB PostgreSQL | 不支持 | 支持 | |
| AnalyticDB MySQL | 不支持 | 支持 |
3. 功能说明
注:SQL Server 数据源作为管道任务来源端时,目前 DDL 同步功能不支持自动同步源端新增字段,若需要使用 DDL 进行新增字段的处理,请参见 数据管道中SQL Server DDL操作说明
注:DDL 的效果请参见:实时管道任务示例
开启「同步源表结构变化」后,数据结构变化实时同步说明:
操作 | 「开启」同步源表结构变化 | 字段映射配置变化 | 目标表结构变化 | 目标表数据变化 |
|---|---|---|---|---|
| 删除表 | 继续同步其他表。 | 标记被删除的同步表。 该表对应源表已被删除,该表将不会继续同步。 | 无变化。 | 被删除表在后续同步中将没有新数据写入。 |
重命名表 | 继续同步其他表。 注:PostgreSQL 作为来源端,不支持重命名表。 | 标记原名称表为删除。 该表对应源表已被删除,该表将不会继续同步。 | 无变化。 | 原名称表在后续同步中将没有新数据写入。 |
| 删除字段 | 继续同步其他字段。 | 标记被删除的字段。 对应源字段已被删除,该字段在后续同步中将传NULL值。 | 无变化。 | 被删除字段在后续同步中传NULL值。 对于 SQLServer 数据源作为来源端,在检测到字段删除的时刻(每次查询都会比对表结构检测),FDL 就会当做字段已经删除。 此时 CDC 表中可能还存在一部分数据带有这个字段,此时该字段的值将不会同步到目标表中。 |
| 新增字段 | 自动同步新增字段。 同步失败时,记录日志且发送通知,任务正常运行。 对于 SQLServer 数据源作为来源端,目前DDL同步不支持自动同步源端新增字段,若需要进行新增字段 DDL ,需要对数据库进行操作,详情参见 数据管道中SQL Server DDL操作说明 | 自动在来源端和目标端添加新的映射关系。 | 同步新增字段。 新增的这个字段不标记物理主键或逻辑主键 | 同步新增字段的后续新增数据。 |
| 修改字段名称 | 原名称字段删除,新名称字段新增。 对于 SQLServer 、DB2数据源作为来源端,不支持修改字段名称。 | 标记原名称字段删除。 自动在来源端和目标端添加新名称字段的映射关系。 | 同步新增新名称字段。 | 原名称字段在后续同步中传NULL值。 同步新名称字段的后续新增数据。 |
| 修改字段类型或者长度 | 自动同步修改字段类型,修改不成功时,记录日志,任务继续运行。修改时的字段映射逻辑和自动建表时一致。 | 来源表与目标表字段配置自动修改字段类型。 | 同步修改字段类型。 | 历史数据与后续新增数据变化为对应类型数据。 |
| 源表字段注释的变化(增删改) | 同步到目标表中 新增字段的注释不会同步过去 | - | - | - |
开启「同步源表结构变化」按钮后,「运行日志」界面会出现 DDL 的更改日志。如下图所示:

