历史版本12 :数据管道-同步源表结构变化 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

 FineDataLink 版本
功能变动
4.0.17支持Mysql 设置同步源表结构变化
4.0.20.1支持SQL Server、Oracle 、GaussDB 200、PostgreSQL、Greenplum、Greenplum(并行装载)作为目标端设置同步源表结构变化
4.0.21Oracle数据源作为来源端,适配同步源表结构变化
4.0.27交互体验优化

1.2 应用场景

在使用管道任务进行数据实时同步过程中,来源端结构可能因业务调整等原因发生变动,如增删表、增删字段、修改字段名称、修改字段类型等,此时,用户希望目标端可以自动同步这些来源端的调整,不需要人为的进行数据表的调整。

1.3 功能说明

数据管道任务支持同步源库DDL功能,开启相关选项后,在源库发生DDL(删除表、新增字段、删除字段、修改字段名称、修改字段类型(长度修改 & 兼容类型修改))时,管道任务可以自动同步这些来源端变化至目标端,不需人为介入修改目标表结构。

2. 支持范围编辑

数据源
来源端目标端
MySQL 支持支持
Oracle 支持
支持
SQL Server 不支持支持
GaussDB 200 不支持支持
PostgreSQL 不支持支持
Greenplum 包括并行装载不支持支持

kafka不支持不支持(目标端暂不支持kafka)
Doris、StarRocks 不支持不支持

3. 操作步骤编辑

示例以 MySQL 数据同步至 MySQL 数据库为例。

将 test_1 数据库中的「出入库信息」、「DEMO_PRODUCT」、「CUSTOMER」数据表实时同步至 demotest 数据库中。

DEMO_PRODUCT.xls出入库信息.xlsCUSTOMER.xls

3.1 配置数据管道任务

1)参考:配置数据管道任务 设置数据来源,选择需要同步的数据表,如下图所示:

2)同时在「选择数据去向」时,勾选「同步源表结构变化」按钮,如下图所示:

3)设置表字段的映射关系,修改目标表名并设置主键,如下图所示:

4)设置任务的脏数据阈值、勾选「失败重试」,并选择「消息通知」,勾选「源表结构变化」,并选择通知方式,如下图所示:

此步骤可保证来源端结构因业务调整等原因发生变动,如增删表、增删字段、修改字段名称、修改字段类型后用户可即时被提醒。

3.2 来源端数据变化

在设置管道任务后「出入库信息」表中新增了「状态」字段、修改「种类」字段为「商品种类」、删除了「期初库存」字段,如下图所示:

3.3 目标端同步结果

查看「出入库信息」目标端数据「in_out」,例如「序号」为11的这条数据为数据结构变化后同步的数据,在修改字段后同步的数据中:

  • 新增字段:同步新增字段后续新增的数据(状态字段同步新增数据);

  • 删除字段:被删除字段在后续同步中传NULL值(期初库存字段同步NULL 值);

  • 修改字段名称:原名称字段在后续同步中传NULL值,同步新名称字段的后续新增数据(种类字段修改为商品种类后,种类字段停止同步,商品种类字段继续同步新增数据)。

同时在「表字段映射」中会对修改进行标记,如下图所示:

开启「同步源表结构变化」后,数据结构变化实时同步说明:

操作
「开启」同步源表结构变化
字段映射配置变化
目标表结构变化
目标表数据变化
删除表继续同步其他表。

标记被删除的同步表。

该表对应源表已被删除,该表将不会继续同步。

无变化。被删除表在后续同步中将没有新数据写入。
重命名表

继续同步其他表。

标记原名称表为删除。

该表对应源表已被删除,该表将不会继续同步。

无变化。

原名称表在后续同步中将没有新数据写入。

删除字段继续同步其他字段。

标记被删除的字段。

对应源字段已被删除,该字段在后续同步中将传NULL值。

无变化。被删除字段在后续同步中传NULL值。
新增字段

自动同步新增字段。

同步失败时,记录日志且发送通知,任务正常运行。

自动在来源端和目标端添加新的映射关系。

同步新增字段。

同步新增字段的后续新增数据。

修改字段名称

原名称字段删除,新名称字段新增。

标记原名称字段删除。

自动在来源端和目标端添加新名称字段的映射关系。

同步新增新名称字段。

原名称字段在后续同步中传NULL值。

同步新名称字段的后续新增数据。

修改字段类型

自动同步修改字段类型,修改不成功时,记录日志,任务继续运行。修改时的字段映射逻辑和自动建表时一致。

来源表与目标表字段配置自动修改字段类型同步修改字段类型。历史数据与后续新增数据变化为对应类型数据。

3.4 任务管理

「运行日志」界面会出现 DDL 的更改日志,如下图所示: