【云小课】【第40课】如何通过DRS实现RDS for MySQL到Kafka的数据同步

举报
数据库的小云妹 发表于 2022/01/30 09:40:25 2022/01/30
【摘要】 数据复制服务(DRS)是一种易用、稳定、高效、用于数据同步的云服务,本节小课为您介绍,如何通过DRS将RDS for MySQL实例的增量数据同步到分布式消息服务Kafka。使用场景DRS实时同步功能一般用于建立数据同步通道,解决数据共享问题,也可以用于数据流式集成,具有数据转换能力,如库表映射,行列过滤等。本实践中的选择均为测试简化基本操作,仅做参考,实际情况请用户按业务场景选择,更多关于...

云小课必用.png

数据复制服务(DRS)是一种易用、稳定、高效、用于数据同步的云服务,本节小课为您介绍,如何通过DRS将RDS for MySQL实例的增量数据同步到分布式消息服务Kafka。

使用场景

DRS实时同步功能一般用于建立数据同步通道,解决数据共享问题,也可以用于数据流式集成,具有数据转换能力,如库表映射,行列过滤等。本实践中的选择均为测试简化基本操作,仅做参考,实际情况请用户按业务场景选择,更多关于DRS的使用场景请单击这里了解。

部署架构

本示例中,DRS源数据库为华为云RDS for MySQL,目标端为华为云同Region下的分布式消息服务Kafka,通过VPC网络,将源数据库的增量数据同步到目标端。

1.png

更多关于DRS的使用场景请单击这里了解。

源端RDS for MySQL准备

创建RDS for MySQL实例

如何创建RDS for MySQL实例,请点击这里查看详细步骤。

构造数据

1. 登录华为云控制台。

2. 单击管理控制台左上角的1.png,选择区域“华南-广州”。

3. 单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。

4. 选择RDS实例,单击实例后的“更多 > 登录”。

5. 在弹出的对话框中单击“测试连接”检查。

6. 连接成功后单击“登录”。

7. 输入实例密码,登录RDS实例。

8. 单击“新建数据库”,创建db_test测试库。

2.png

9. 在db_test库中执行如下语句,创建对应的测试表table3_。

CREATE TABLE `db_test`.`table3_` (
	`Column1` INT(11) UNSIGNED NOT NULL,
	`Column2` TIME NULL,
	`Column3` CHAR NULL,
	PRIMARY KEY (`Column1`)
)	ENGINE = InnoDB
	DEFAULT CHARACTER SET = utf8mb4
	COLLATE = utf8mb4_general_ci;

3.png

目标端Kafka准备

创建Kafka实例

1. 登录华为云控制台。

2. 单击管理控制台左上角的1.png,选择区域“华南-广州”。

3. 单击左侧的服务列表图标,选择“应用中间件 > 分布式消息服务Kafka版”。

4. 单击“购买Kafka实例”。

5. 选择实例区域和可用区。

4.png

6. 配置实例名称和实例规格等信息。

5.png

7. 选择存储空间和容量阈值策略。

6.png

8. 选择实例所属的VPC和安全组。

VPC和安全组已在创建VPC和安全组中准备好。

7.png

9. 配置实例密码。

8.png

10. 单击“立即购买”。

11. 返回实例列表。

当Kafka实例运行状态为“运行中”时,表示实例创建完成。

创建Topic

1. 在“Kafka专享版”页面,单击Kafka实例的名称。

2. 选择“Topic管理”页签,单击“创建Topic”。

3. 在弹出的“创建Topic”的对话框中,填写Topic名称和配置信息,单击“确定”,完成创建Topic。

9.png

创建DRS同步任务

本章节介绍创建DRS实例,将RDS for MySQL上的数据库增量同步到Kafka。

同步前检查

在创建任务前,需要针对同步条件进行手工自检,以确保您的同步任务更加顺畅。

本示例中,为RDS for MySQL到Kafka的出云同步,您可以参考出云同步使用须知获取相关信息。

操作步骤

介绍RDS for MySQL到Kafka增量同步任务的详细操作过程。

1. 登录华为云控制台。

2. 单击管理控制台左上角的1.png,选择区域“华南-广州”。

3. 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。

4. 选择左侧“实时同步管理”,单击“创建同步任务”。

5. 填写同步任务参数:

  • 配置同步任务名称。

10.png

选择需要同步任务的源库、目标数据库以及网络信息。这里的目标库选择源端RDS for MySQL准备创建的RDS实例。

  • 企业项目选择“default”。   

12.png

6. 单击“下一步”。

同步实例创建中,大约需要5-10分钟。

7. 配置源库信息和目标库数据库密码。

  • 配置源库信息。
  • 单击“测试连接”。当界面显示“测试成功”时表示连接成功。      

13.png

  • 选择目标库所在VPC和子网,填写Kafka的IP地址和端口。
  • 单击“测试连接”。当界面显示“测试成功”时表示连接成功。      

14.png

8. 单击“下一步”。

9. 选择同步信息、策略、消息格式和对象等,投递到Kafka的消息格式。

本次选择如下。

表1 同步设置

类别

设置

同步Topic策略

集中投递到一个Topic,Topic名称“testTopic”。

同步到Kafka partition策略

按表名+库名的hash值投递到不同Partition。

投递到Kafka的数据格式

可选择JSON格式,可参考Kafka消息格式。

同步对象

同步对象选择db_test下的table3_表。

15.png

10.单击“下一步”。

11. 选择数据加工方式。RDS for MySQL到Kafka数据同步目前只支持列加工,列加工提供列级的查询和过滤能力。

16.png

12. 单击“下一步”,等待预检查结果。

13. 当所有检查都是“通过”时,单击"下一步”。

17.png

14. 确认同步任务信息正确后,单击“启动任务”。

返回DRS实时同步管理,查看同步任务状态。

启动中状态一般需要几分钟,请耐心等待。

18.png

当状态变更为“增量同步”,表示同步任务已启动。

说明:

  • 目前RDS for MySQL到Kafka仅支持增量同步,任务启动后为增量同步状态。
  • 如果创建的任务为全量同步,任务启动后进行全量数据同步,数据同步完成后任务自动结束。
  • 如果创建的任务为全量+增量同步,任务启动后先进入全量同步,全量数据同步完成后进入增量同步状态。
  • 增量同步会持续性同步增量数据,不会自动结束。

确认同步任务执行结果

由于本次实践为增量同步模式,DRS任务会将源库的产生的增量数据持续同步至目标库中,直到手动任务结束。下面我们通过在源库RDS for MySQL中插入数据,查看Kafka的接收到的数据来验证同步结果。

操作步骤

1. 登录华为云控制台。

2. 单击管理控制台左上角的1.png,选择区域“华南-广州”。

3. 单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS””。

4. 单击RDS实例后的“更多 > 登录”。

5. 在弹出的对话框中单击“测试连接”检查。

6. 连接成功后单击“登录”。

7. 输入实例密码,登录RDS实例。

8. 在DRS同步对象的db_test.table3_表中,执行如下语句,插入数据。

INSERT INTO `db_test`.`table3_` (`Column1`,`Column2`,`Column3`) VALUES(4,'00:00:44','ddd');

19.png

9. 单击左侧的服务列表图标,选择“应用中间件 > 分布式消息服务Kafka版”。

10. 在“Kafka专享版”页面,单击Kafka实例的名称。

11. 选择“消息查询”页签,在Kafka对应的Topic中,查看接收到相应的JSON格式数据。

20.png

12. 结束同步任务。

根据业务情况,确认数据已全部同步至目标库,可以结束当前任务。

单击“操作”列的“结束”。

21.png

  • 仔细阅读提示后,单击“是”,结束任务。     

22.png

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。