Streamsets实时数据同步
背景
在⼯作中,各产品线经常会有实时数据分析、跨中⼼查询的需求,⽽我们使⽤的Postgresql数据库难以实现跨库查询,所以,我们将Postgresql 的数据实时同步到Snappydata中,来实现跨中⼼查询、实时数据分析的需求。警戒
这⾥要说明的⼀点,运维Snappydata是⾮常痛苦的⼀件事,它的社区很不活跃,遇到问题,基本上都是要⾃⼰解决,并且它的语法并没有常⽤数据库那么丰富。
⽬前,我们正在考虑,将数据实时同步到Postgresql指定的库中,以schema加以区分数据库(数据来源)或产品线。
管道介绍
我们的实时同步主要是将Postgresql的数据同步到Snappydata中,⽽你也可以使⽤Streamsets实现从Mysql到Mysql的实时同步等
等,Streamsets的组件是⾮常丰富,可以说⾜以满⾜常⽤的需求。这⾥,我先介绍第⼀版实时同步管道,但它会存在⼀些问题,这⼀版只能算是完成了实时数据同步的功能。
前提条件:已经安装了wal组件来采集Postgresql数据
实时数据同步
实时数据同步管道(第⼀版)
管道组件介绍:
回qq密码1.Postgresql CDC Client
⽤途:连接数据库,采集Wal⽇志
参数配置:使⽤组件默认参数,填写必要的Replication Slot、JDBC连接、⽤户名/密码
需要指出的是,如果你想⽴刻看到数据变化,请将Max Batch Size设置为1(默认为100)
vin码是什么意思欧美抢中国箱包 订单到明年管道数据快照
4.Stream Selector
⽤途:分流
说明:由于Streamsets的JDBC Producer只能进⾏insert/update/delete其中的⼀种操作,所以,你需要三个JDBC Producer来操作数据库
分流
5.JDBC Producer
⽤途:操作数据库徒步旅行
说明:只能进⾏⼀种操作
操作数据库
⾄此,你可以简单实现实时数据同步任务,如果,你不想⾃⼰配置,这⾥,我提供了管道的json⽂件,你直接导⼊到Streamsets,修改参数就可以使⽤了
山羊奶皂百度云链接(还未上传)
这⼀版本存在以下问题:
每个管道占⽤⼀个postgresql slot,如果有其他管道使⽤该数据库的数据(如:实时宽表),则需要另外启动⼀个slot来采集数据,这样会降低
postgresql的性能
所以,我将wal⽇志采集到kafka中,可以让多个管道进⾏消费未完,后续更新
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论