ETL工具之Streamsets实战系列(三) -- Mysql Binlog数据变更同步到目标库

1、业务背景

上一篇文章中,我们介绍了如何利用streamsets的组件实时采集https接口数据并入库的实现方案,本文我们将继续探讨streamsets的Mysql Binlog组件实现数据实时同步的强大功能。

日常开发中,我们经常会遇到数据同步的问题,比如两个不同的数据库实现数据的增量同步问题,对某张表的数据实时同步到另一个库的相同表;或者库中表的数据变更实时同步到redis中间件或者es( elasticsearch)服务,实现数据的实时同步,以便redis或es服务的数据不需要一行代码实现和数据库的实时同步等。

其实以上两种情况,对于库与库之间的数据同步,通过开启Mysql Binlog日志,加上一些中间件,比如阿里巴巴开源的的Canal增量订阅和消费组件也可以实现数据库的同步;另外对于和redis、es服务的同步问题,我们可以通过业务代码的形式,当数据变更时,同时更新数据到redis或者es服务,抑或通过消息中间件的发布订阅模式,通过监听方法,实现redis和es的数据同步。但是该方案一方面可能增加业务耦合或者需要编码方可实现,但是通过streamsets可以不用写一行业务代码实现数据同步的过程。

本文介绍下库与库之间的数据同步,下篇文章介绍下库与消息中间件之间的同步问题。

2、流程实现

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

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

2.1 创建管道任务

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

2.2 选择源并添加配置信息

Mysql Binlog组件的配置如下:

数据库用户名密码配置

2.3 流程选择器配置

该配置的作用是改变数据的目录结构,以便可以直接将数据写入下一个组件

2.4 目标源配置

配置数据库连接信息、库名和表名,此处表名位置使用了动态获取表名的方法。高级部分的配置使用默认值即可

配置目标源的数据库和密码

2.5 启动任务并测试

测试流程比较简单,我们只需要对源数据库的数据进行增删改操作,观察目标库的数据变化即可,此处不再具体演示,大家自行验证。

3、总结

在本文中,我们详细介绍了StreamSets组件实现数据实时同步的功能。作为一款强大的数据集成工具,StreamSets可以帮助企业快速、高效地实现数据的采集、处理和分析。如果这篇文章对你有所帮助的话,希望可以一键三连哦,您的认可和鼓励就是我创作的最大动力!

相关推荐
艾派森5 分钟前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
杜杜的man39 分钟前
【go从零单排】go中的结构体struct和method
开发语言·后端·golang
幼儿园老大*39 分钟前
走进 Go 语言基础语法
开发语言·后端·学习·golang·go
llllinuuu41 分钟前
Go语言结构体、方法与接口
开发语言·后端·golang
cookies_s_s42 分钟前
Golang--协程和管道
开发语言·后端·golang
为什么这亚子44 分钟前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
拓端研究室TRL1 小时前
【梯度提升专题】XGBoost、Adaboost、CatBoost预测合集:抗乳腺癌药物优化、信贷风控、比特币应用|附数据代码...
大数据
黄焖鸡能干四碗1 小时前
信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)
大数据·人工智能·软件需求·设计规范·规格说明书
想进大厂的小王1 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识
redis·分布式·后端·spring cloud·微服务·架构
编码小袁1 小时前
探索数据科学与大数据技术专业本科生的广阔就业前景
大数据