1. 概述
1.1 版本
| FineDataLink版本 | 功能变动 |
|---|---|
| 4.2.12.4 | 定时管道支持 DDL 检测 新增「同步源表结构变化」,支持新增字段、字段类型等变化同步修改 |
1.2 应用场景
定时管道任务同步应用数据源时,源端表结构可能因业务调整发生 DDL 变更(增删表、增删字段等)。若未及时感知处理,易导致同步异常、数据不一致,影响下游业务。
用户需快速感知该变化,且支持手动更新映射或自动同步部分 DDL 变化,灵活完成适配调整。
1.3 功能简介
源端 DDL 变化感知:若源表&源表结构发生变化,在任务详情页可提示对应的变化内容。

同步源表结构变化:对于部分源端的 DDL 变化,开启「同步源表结构变化」设置,无需手动更新映射,运行时可自动同步变更内容。

2. 源表结构变化检测内容及处理方式
可检测的源表及源表结构变化及处理方式如下表所示:
| 变化类型 | 手动更新 | 自动同步 | |
|---|---|---|---|
| 表数量&表名变化 | 源端新增表 | 需手动添加表 | 不支持自动同步 |
| 源端删除表 | 需手动删除表 | ||
| 源端修改表名 | 视为源表删除 需手动删除源表后 重新添加表 | ||
| 表结构变化 | 源端新增字段 | 支持手动更新映 射详情参见本文第 3 节 | 开启「同步源表结构变化」后,支持自动同步 详情参见本文第 4 节 |
| 源端删除字段 | |||
| 源端重命名字段 | |||
| 源端修改字段类型 | |||
| 源端修改主键字段 | 字段映射中不支持编辑源端主键,只能删除表后重新添加 | 不支持自动同步 | |
3. 手动更新
进入任务详情页,若来源表结构变化,则会提示用户有 x 张表映射可更新。点击「筛选」可筛选出表映射可以更新的表。如下图所示:

点击「编辑」按钮进入编辑界面。如下图所示:

4.1 更新字段映射
若来源表结构变化,点击「更新映射」更新来源表结构。如下图所示:

「更新映射」表会展示来源字段的变化情况,点击「更新映射与目标表」会直接进入「更新目标表」页面。更新目标表内容请参见本文 4.2 节。

点击「更新映射」后,会先更新来源表的字段映射,并在目标表中标红映射不一致的内容。需要点击「更新目标表」按钮,对目标表进行调整。更新目标表详情请参见本文 4.2 节。

4.2 更新目标表
若来源表字段相较之前有变化,则可以对目标表进行调整,可以选择已有目标表字段、也可以手动输入新字段,确认对应映射关系变化后,即可对应生成目标表执行的 DDL 语句并执行。
支持对目标表新建、删除字段、重命名字段;
支持修改目标表字段类型、长度精度;
支持为目标表配置非空、主键、注释;
支持展示更改记录、还原修改;
1)点击「更新目标表」,弹窗中展示目标表实际内容和顺序,可对字段结构进行调整。如下图所示:

2)支持「一键带入」功能。以「字段名」为唯一标识(同名映射逻辑),比对来源表和目标表结构;只要来源表与目标表结构不一致,就支持将来源表结构一键带入目标表。
更改记录内容如下:
| 更改记录 | 说明 |
|---|---|
| 新增 | 来源表有,目标表没有的字段 |
| 修改 | 目标表有同名字段,但「类型」/「描述」/「主键」/「Not Null」与来源表不一致 注:「描述」、「主键」、「Not Null」能否被带入目标表,取决于来源表能否获取到;若获取不到,不会影响到目标表现有内容 |
| 删除 | 来源表没有,目标表有的字段 |
注:点击「一键带入」后,在此界面上更改内容导致来源表与目标表结构不一致,将不会出现「一键带入」提示。

3)将根据更新内容生成更新语句,点击「执行更新语句」。如下图所示:

5. 自动同步
对于部分源端表结构变化,支持开启「同步源表结构变化」功能,开启后,无需手动更新映射,任务运行时可自动同步。如下图所示:

在任务详情页,展示是否开启「同步源表结构变化」。如下图所示:

开启后,变更点同步情况如下表所示:
| 来源表类型 | 变更类型 | 自动处理-目标表结构 | 自动处理-映射 | 自动处理-目标表数据 |
|---|---|---|---|---|
| 增量有主键 | 源端新增字段 | 在目标表新增列 | 自动增加映射 | 历史数据在新列为NULL,新写入的数据该列有值; 如需刷新历史数据,需要手动重新同步 |
| 源端删除字段 | 无变化 | 删除源端字段 | 历史数据不变,新写入数据该列为NULL; 需刷新历史数据,需要手动重新同步 | |
| 源端字段改名 | 视为旧字段删除、新增新字段 | |||
| 源端字段改类型 | 在目标表对映射的字段修改改类型,修改不成功时,记录日志,任务继续运行 | 映射两边调整字段类型,如果修改不成功,仅来源端的字段类型 | 正常情况下:历史和新写入的该列都有数据 修改不成功时:新数据依然写入已存在列,若字段类型不支持写入,记为脏数据 | |
| 源端主键字段变更 | 不做处理,运行失败,需重新配置该表 | |||
| 全量有主键表 | 表结构变更 | 目标表直接改成新表结构 | 根据新结构刷新映射 | 清空写入,无历史数据 |
| 全量无主键表 | 表结构变更 | 目标表直接改成新表结构 | 根据新结构刷新映射 | 清空写入,无历史数据 |
6. 查看日志
任务运行后,在「运行记录」中查看运行日志,查看源表结构变更内容。如下图所示:

