已在全域数据集成 DataSail 中完成配置且正在运行的一个 MySQL > ByteHouse CDW 的实时整库同步解决方案。因业务需要,现在需要在数据源源端 MySQL 中,修改来源表的字段类型,希望目标表 ByteHouse CDW 表能够接收新增列中的数据。
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;
执行以下命令,修改 MySQL 源表修改字段类型:
alter table t_order modify o_amount float null;
在 ByteHouse CDW 控制台中,可视化形式修改目标表字段类型:
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');
源表和目标表字段类型手动更新完成后,回到 DataSail 解决方案任务列表界面。
注意
其中“修改列类型”的 DDL 处理策略,需保持为“忽略变更”状态,以保障数据准确性。
解决方案重启后,您可前往 ByteHouse CDW 控制台中,找到目标表,查看字段类型变更后的新增数据是否同步正常。