ETL工具之Streamsets实战系列(四) -- Mysql Binlog数据变更同步到Kafka

1、业务背景

上一篇文章中,我们介绍了如何实现数据库之间数据实时同步的问题,本文我们将继续探讨streamsets的Mysql Binlog组件将数据同步到消息中间件的流程。

日常开发中,我们的系统通常会使用redis服务作为缓存使用,抑或使用消息中间件进行数据存储,以便其他服务调用然后进行业务处理。

本文针对如上场景介绍下数据库与消息中间价kafka之间的数据同步问题,实现数据变更实时同步到kafka服务供其他服务调用消费。

注意:使用kafka进行存储时,需要安装好kafka服务,并提前创建好主题,以便kafka组件配置使用,此处不作详细介绍,自行实现。

2、流程实现

数据变更实时同步时,流程的完整管道示意图如下所示:

具体实现按照以下步骤进行操作:

2.1 创建管道任务

在SDC中创建一个新的Pipeline,创建过程如下图

2.2 选择源并添加配置信息

Mysql Binlog组件的配置如下:图中的server id要唯一,不能和已启动的Mysql binlog组件有冲突,否则启动报错

数据库用户名密码配置

2.3 目标源配置

kafka组件配置:Broker URI配置组件的ip和端口信息,比如ip:9092,Topic为消息主题,即将变更的数据记录到该主题以便消费

kafka高级部分的配置如下:此处配置kafka消息的key值

数据格式配置:此处采用默认数据格式即可,及json格式

2.4 启动任务并测试

测试流程比较简单,我们只需要对源数据库的数据进行增删改操作,观察kafka服务对应主题上的数据变化即可。

由于我的kafka服务是使用docker-compose安装的,服务启动的情况下,可以先进入容器,然后进入bin目录,如图所示

执行kafka-topics -list --zookeeper ip:2181命令查看当前有哪些主题

查看主题推送的信息,命令如下

kafka-console-consumer --bootstrap-server ip:9092 --topic 消息主题名称 --from-beginning

此时,我们往数据库新增一条数据,看下kafka中对应主题的消息推送情况

新增的数据如下:

主题实时推送的情况如下:

同理,我们也可以编辑或删除一些数据,查看主题的实时推送情况。

3、总结

在本文中,我们详细介绍了StreamSets组件实现数据实时同步到消息中间件的功能。如果这篇文章对你有所帮助的话,希望可以一键三连,您的认可和鼓励就是我创作的最大动力!

相关推荐
zzzll111128 分钟前
Spring Boot 实现数据脱敏:自定义注解 + Jackson 序列化器
java·spring boot·后端
金融小师妹2 小时前
AI趋势识别:黄仁勋宣布“AGI时代”到来,Astra能力跃迁背后的AI安全边界
大数据·python·深度学习·重构·逻辑回归
vx-Biye_Design5 小时前
SSM伴侣动物伴护星小程序06330-计算机课程设计、毕业设计
spring boot·后端·elasticsearch·小程序·架构·课程设计·idea
IT研究室6 小时前
最新大数据毕业设计选题推荐-基于大数据的城市交通流量数据可视化分析-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·课程设计
2分钟速写快排7 小时前
什么是 RAG?如何用 RAG 实现一个用户记忆?
前端·后端·ai编程
面向Google编程7 小时前
Apache Iceberg Variant 类型:v3 半结构化数据不再「二选一」
大数据·后端
大大大大晴天8 小时前
从数仓建模到 AI 数据底座:重新理解数据治理的位置
大数据
jason成都8 小时前
Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动
java·后端·spring
hqyjzsb8 小时前
零 AI 项目经验,学 Python 转型 AI 的正确顺序是什么?
开发语言·人工智能·python·算法·职场和发展·数据挖掘·数据分析
不会写代码的女程序猿8 小时前
中小康养门店选型参考|明理 AI 四诊仪场景适配与投入回报分析
大数据·人工智能·科技·ai·健康医疗