数据库到 CKafka 使用 DTS 方案

最近更新时间:2025-12-03 11:48:12

我的收藏

一、迁移场景

目标:数据库数据同步到 CKafka。
存量迁移方案:平滑迁移,采用双写到单写的迁移模式。
新增的同步链路请直接参考本文档第四部分

二、迁移步骤

简述:先双写后单写,完成平滑迁移。具体迁移步骤如下:
1. 双写:先在 DTS 平台建立和 CKafka 连接器功能一样的数据同步任务,都同步到相同的 topic(可以在 CKafka 控制台查询 topic 信息)。
2. 数据库的增量数据会同时经过2个链路写到 CKafka,数据会有少量重复。
3. 单写:DTS 的数据同步任务正常运行后,停止 CKafka 的连接器任务,实现单写。
4. CKafka 控制台停止连接器任务,只用 DTS 的数据同步任务,topic 数据不再重复生产。



风险:topic 数据会有少量重复。
建议:在业务低峰期操作,减少影响。

三、迁移方案

3.1. 方案对比

方案
方案1:主动迁移,提前规避风险。
方案2:被动迁移,防止二次故障。
思路
低峰期启动 DTS 数据同步,下线连接器。
在连接器故障后,启动 DTS 数据同步任务。
把 DTS 数据同步任务提前建立好,让其处于暂停状态,不启动;
连接器故障或者异常后,再开启 DTS 数据同步任务。
优点
主动行为,低峰期操作,风险可控。
现有任务不动,业务不受影响。
缺点
导入 CKafka 的数据会有少量重复。
故障后的止损预案,时效性低,故障影响面不可控;
CKafka 可能缺少故障期间的数据。
其他
-
回滚方案
双写阶段:如果遇到 DTS 数据同步任务不符合预期,可以直接在 DTS 平台暂停或者删除任务;
单写阶段:如果发现数据不符合预期,可以把连接器再次启动,同时把 DTS 数据同步任务暂停。
兜底预案:
DTS 同步数据任务暂停或者删除;
CKafka 连接器任务重启。

3.2. 注意事项

数据库 mongoDB 只能采用 DTS 自建的 Kafka 集群,有很多限制,业务改造成本高。主要如下:
topic 和消费组不能自定义。
CKafka server 地址需更换。
业务需要改配置,发布上线。
解法:需要向 DTS 提需求单 - mongoDB 支持数据同步到 Kafka 功能。

四、POC 验证

使用数据传输服务 DTS 将 MySQL/MariaDB/Percona/TDSQL-C MySQL 数据同步至腾讯云数据库 CKafka 的过程。
源数据库支持的部署类型如下:
自建 MySQL、第三方云厂商 MySQL、腾讯云数据库 MySQL。
自建 MariaDB、腾讯云数据库 MariaDB。
自建 Percona。
腾讯云数据库 TDSQL-C MySQL。
详细操作请参见 数据同步操作指导
MongoDB 使用 DTS 数据订阅的方式。
暂时不能同步到 CKafka 实例,可以同步到 DTS 的 Kafka集群。
详细操作请参见 MongoDB数据订阅

4.1. MySQL/MariaDB/Percona/TDSQL-C MySQL 连接器迁移 DTS SOP

这几类数据库(MySQL/MariaDB/Percona/TDSQL-C MySQL)操作类似,下面以 MySQL 为例。
步骤1:在 消息队列 CKafka 版控制台单击连接器 > 任务列表并单击需要同步的数据库表和 topic 信息。

步骤2:DTS 平台新建同步任务。
在云数据库 TencentDB 控制台中,单击数据传输服务 > 数据同步 > 新建同步任务

选择同步的实例类型:选定好源实例类型目标实例类型

创建后,在列表中单击配置,然后根据提示配置数据库信息和 Kafka topic 信息。

选择源库实例 ID 和目标库 Kafka 的实例 ID,并按需要配置其他选项。

同步任务校验通过后,可以启动任务。

回到数据同步列表,可以看到任务正常运行。

观察任务状态是否正常。

步骤3:回到 CKafka 控制台,停止连接器任务。


4.2. MongoDB 连接器迁移 DTS SOP

数据传输服务类型选择“数据订阅”,数据库选择 MongoDB。

进入云数据库 TencentDB 控制台,左侧导航栏单击数据订阅并找到列表中的订阅,单击配置订阅

按提示配置订阅。

在订阅详情中,可以获取到 Kafka 的 订阅 topic内网地址(server 地址)。