1. 概述编辑
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.0.17 | 支持Mysql 作为读取和写入数据源,设置同步源表结构变化 |
1.2 应用场景
在使用管道任务进行数据实时同步过程中,来源端结构可能因业务调整等原因发生变动,如增删表、增删字段、修改字段名称、修改字段类型等,此时,用户希望目标端可以自动同步这些来源端的调整,不需要人为的进行数据表的调整。
1.3 功能说明
数据管道任务支持同步源库DDL功能,开启相关选项后,在源库发生DDL(删除表、新增字段、删除字段、修改字段名称、修改字段类型(长度修改 & 兼容类型修改))时,管道任务可以自动同步这些来源端变化至目标端,不需人为介入修改目标表结构。
2. 操作步骤编辑
示例以 MySQL 数据同步至 MySQL 数据库为例。
将 demo1 数据库中的「出入库信息」、「DEMO_PRODUCT」、「CUSTOMER」数据表实时同步至 demo 数据库中。
DEMO_PRODUCT.xls、出入库信息.xls、CUSTOMER.xls
2.1 配置数据管道任务
1)参考:配置数据管道任务 设置数据来源以及数据去向。
同时在「选择数据去向」时,勾选「同步源表结构变化」按钮,如下图所示:
2)设置表字段的映射关系,如下图所示:
3)设置任务的脏数据阈值并选择「消息通知」,勾选「源表结构变化」,并选择通知方式,如下图所示:
此步骤可保证来源端结构因业务调整等原因发生变动,如增删表、增删字段、修改字段名称、修改字段类型后用户可即时被提醒。
2.2 来源端数据变化
在设置管道任务后「出入库信息」表中新增了「状态」字段、修改「种类」字段为「商品种类」、删除了「期初库存」字段,如下图所示:
2.3 目标端同步结果
「出入库信息」目标端数据「in_out」中,在修改字段后同步的数据中:
新增字段:同步新增字段后续新增的数据;
删除字段:被删除字段在后续同步中传NULL值;
修改字段名称:原名称字段在后续同步中传NULL值,同步新名称字段的后续新增数据。
同时在「表字段映射」中会对修改进行标记,如下图所示:
开启「同步源表结构变化」后,数据结构变化实时同步说明:
操作 | 「开启」同步源表结构变化 | 字段映射配置变化 | 目标表结构变化 | 目标表数据变化 |
---|---|---|---|---|
删除表 | 继续同步其他表。 | 标记被删除的同步表。 该表对应源表已被删除,该表将不会继续同步。 | 无变化。 | 被删除表在后续同步中将没有新数据写入。 |
重命名表 | 继续同步其他表。 | 标记原名称表为删除。 该表对应源表已被删除,该表将不会继续同步。 | 无变化。 | 原名称表在后续同步中将没有新数据写入。 |
删除字段 | 继续同步其他字段。 | 标记被删除的字段。 对应源字段已被删除,该字段在后续同步中将传NULL值。 | 无变化。 | 被删除字段在后续同步中传NULL值。 |
新增字段 | 自动同步新增字段。 同步失败时,记录日志且发送通知,任务正常运行。 | 自动在来源端和目标端添加新的映射关系。 | 同步新增字段。 | 同步新增字段的后续新增数据。 |
修改字段名称 | 原名称字段删除,新名称字段新增。 | 标记原名称字段删除。 自动在来源端和目标端添加新名称字段的映射关系。 | 同步新增新名称字段。 | 原名称字段在后续同步中传NULL值。 同步新名称字段的后续新增数据。 |
修改字段类型 | 自动同步修改字段类型,修改不成功时,记录日志,任务继续运行。修改时的字段映射逻辑和自动建表时一致。 | 来源表与目标表字段配置自动修改字段类型。 | 同步修改字段类型。 | 历史数据与后续新增数据变化为对应类型数据。 |
2.4 任务管理
由于 2.1 节中设置了源表结构变化提示,因此在平台中会出现消息提示,如下图所示:
同时「运行日志」界面会出现 DDL 的更改日志,如下图所示: