You need to enable JavaScript to run this app.
导航

解决方案 DDL 策略配置

最近更新时间2024.04.29 14:48:23

首次发布时间2024.04.22 17:54:06

在实时整库 CDC、分库分表、离线整库解决方案场景中,通常会遇到较多来源端新增表、新增列等 DDL 操作场景。解决方案支持您根据实际业务场景,对来源端不同的 DDL 消息,在配置解决方案同步到目标端数据源时,可进行预设不同的处理策略。

1 注意事项

  1. 若在数据缓存配置中,若您您开启数据缓存的同步方式时,则所有源端的 DDL 消息均只能做忽略变更处理。
  2. 新增列变更消息自动处理策略目前存在以下限制:
    • 源端中主键列不支持自动加列;
    • 目标端自动增加的列,需允许存在 null 值;
    • 如配置列名映射规则,则不再支持自动加列操作。
  3. 修改列类型变更消息自动处理策略目前存在以下限制:
    • 源端中主键列不支持自动修改列类型;
    • 如目标端列已为 string 类型,则不再跟随源端类型变更;
    • 列类型的存储数据范围不支持由大改小,例如目标端列类型已为 bigint 类型,源端即使再次变更为 int,目标端将依然保持为 bigint,否则可能引起字段溢出问题。

2 支持的 DDL 策略

  • DataSail 实时整库同步、实时分库分表同步解决方案中:MySQL2StarRocks、MySQL2Doris、MySQL2ByteHouse_CDW 通道支持新建表、新增列的处理策略。
  • DataSail 离线整库同步解决方案中:PostgreSQL2Hive 通道支持新建表、新增列的处理策略。

说明

其余通道的 DDL 策略配置,目前仅支持对 DDL 消息做“忽略变更”处理,您可手动对源端表、目标表和解决方案配置进行编辑操作。详见解决方案源表字段类型变更实践

不同 DDL 消息处理策略支持情况如下:

DDL 消息

自动处理

忽略变更

日志告警

任务出错

新建表

删除表

重命名表

新增列

删除列

重命名列

修改列类型

清空表

处理策略说明如下:

  • 自动处理: 即会在来源端捕获的 DDL 消息,下发给目标数据,由目标数据来自动响应处理,包括自动加表、自动加列、自动变更列类型等。不同目标数据对 DDL 消息处理策略可能不同,平台仅执行转发操作。

    说明

    新建表的自动处理策略,仅在数据来源表选择模式为“正则”模式下时生效。来源表配置详见4.4 数据来源配置

  • 忽略变更: 即会丢弃掉此 DDL 消息,不向目标数据源发送此消息,目标端数据源不做任何响应。
  • 日志告警: 即会丢弃掉此 DDL 消息,但会在同步日志中记录 DDL 变更消息详情。
  • 任务出错: 即一旦源端出现 DDL 变更,同步任务将显示出错状态并终止运行。

3 新建方案配置 DDL 策略

在解决方案中配置 DDL 策略操作如下:

  1. 登录 DataSail 控制台
  2. 在左侧导航栏中选择数据同步方案,进入同步方案配置界面。
  3. 单击目录树中项目选择入口,选择已创建的 DataLeap 项目。
    图片
  4. 单击右上角新建数据同步解决方案按钮,根据实际业务场景选择实时整库同步、实时分库分表同步离线整库同步方案,进入解决方案配置界面。
  5. 进入配置界面后,依次完成方案的基本配置、数据来源配置、数据缓存配置、数据目标配置等前置配置操作。配置操作详见各方案操作明细说明
  6. 数据目标配置完成后,单击下一步,进入 DDL 策略配置流程。不同数据源中不同的 DDL 消息目前可能支持的处理策略不同。详见2 支持的 DDL 策略
    图片
  7. DDL 策略配置完成后,您可单击下一步按钮,继续完成解决方案后续配置操作。

4 历史方案修改 DDL 策略

如需对已创建的任务进行 DDL 策略修改,您可按以下操作步骤进行修改:

  1. 在解决方案列表界面,单击运维列中方案编辑按钮,进入解决方案编辑界面;
  2. 单击下一步按钮,到 DDL 策略配置步骤,修改相应的 DDL 消息规则。
  3. DDL 策略配置完成后,单击下一步,在运行配置步骤中,单击提交方案按钮,并勾选“立即执行”选项,修改 DDL 策略配置完成,解决方案在重启后生效。

5 后续步骤

解决方案重启成功后,您可在源端对来源表进行新增列操作,在目标表中进行验收即可。