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

解决方案源表字段类型变更实践

最近更新时间2024.04.22 18:59:41

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

1 实践场景

已在全域数据集成 DataSail 中完成配置且正在运行的一个 MySQL > ByteHouse CDW 的实时整库同步解决方案。因业务需要,现在需要在数据源源端 MySQL 中,修改来源表的字段类型,希望目标表 ByteHouse CDW 表能够接收新增列中的数据。

2 使用前提

  1. 已开通并创建 DataLeap 项目,创建的全量增量任务均会同步到该项目下。详见新建项目
  2. 已创建合适资源规格的独享数据集成资源组,并将其绑定至创建成功的 DataLeap 项目下。购买操作详见资源组管理,项目绑定操作详见数据集成资源组
  3. 已开通全域数据集成(DataSail)产品。详见服务开通
  4. 已完成数据源来源和目标端的准备,创建源端数据源 MySQL 实例,目标端火山引擎 ByteHouse云数仓版。详见创建 MySQL 实例开通ByteHouse云数仓版服务
  5. 已创建 MySQL_to_ByteHouse CDW 的实时整库同步解决方案。详见MySQL_to_ByteHouse 云数仓版实时整库同步

3 初始表定义准备

  • MySQL源表定义

    CREATE TABLE `t_order` (
      `id` int(11) NOT NULL,
      `o_name` varchar(256) DEFAULT NULL,
      `custom_id` double DEFAULT NULL,
      `o_amount` bigint(20) DEFAULT NULL,
      `o_detail` varchar(500) DEFAULT NULL,
      `create_time` date DEFAULT NULL,
      `update_time` datetime DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    
  • ByteHouse-CDW 目标表定义

    CREATE TABLE `dts_test`.`t_order` COMMENT '' ( 
        `id` Int32,
        `o_name` String, 
        `custom_id` DOUBLE, 
        `o_amount` Int64, 
        `o_detail` String, 
        `create_time` Date, 
        `update_time` DateTime 
    ) ENGINE=CnchMergeTree 
    PRIMARY KEY id 
    ORDER BY id 
    UNIQUE KEY id 
    SETTINGS cnch_server_vw = 'server_vw_default', partition_level_unique_keys = 0;
    

4 停止增量任务

  1. 在解决方案整体列表中,找到已创建的 MySQL2ByteHouse_CDW 任务;
  2. 单击运维列中的提交停止按钮,并在弹窗中,单击“立即执行”按钮。
    图片
  3. 等待解决方案停止成功。

5 修改源端和目标端表字段

  • 执行以下命令,修改 MySQL 源表修改字段类型:

    alter table t_order modify o_amount float null;
    
  • ByteHouse CDW 控制台中,可视化形式修改目标表字段类型:

6 源表写入测试数据

insert into t_order values (416, 'aa', 3.1415, 7.7, 'bb', '2024-04-01', '2024-04-01 10:00:00');
insert into t_order values (417, 'aa', 3.1415, 8.8, 'bb', '2024-04-01', '2024-04-01 10:00:00');

7 更新解决方案

源表和目标表字段类型手动更新完成后,回到 DataSail 解决方案任务列表界面。

  1. 单击运维列中的方案编辑按钮,重新进入解决方案配置界面。
  2. 单击“下一步”,直到“数据目标配置”步骤,单击刷新源表和目标表映射,将修改的字段加入到映射关系中,可在“字段信息”中确认修改字段是否已添加成功。
    图片
  3. 修改字段确认类型变更无误后,单击下一步按钮,进入 DDL 策略配置界面,处理策略均可选为“忽略变更”策略。

    注意

    其中“修改列类型”的 DDL 处理策略,需保持为“忽略变更”状态,以保障数据准确性。

  4. 单击下一步按钮,进入到运行配置步骤中,单击提交方案按钮,并勾选“立即执行”选项,重启解决方案。
  5. 等待解决方案重启完成,您可在运维列中,单击执行详情按钮,进入查看解决方案重启详情信息。

8 验证目标表数据

解决方案重启后,您可前往 ByteHouse CDW 控制台中,找到目标表,查看字段类型变更后的新增数据是否同步正常。