[mysql&flink]关于同步数据,binlog怎么做增量

8 篇文章 0 订阅

目录

前言

解决方案

方案1. 可以使用flink cdc进行消费

方案2:三个时间点,T0开始订阅,T1是做初始化,T2是进行增量merge(第一次merge)


前言

之前探讨的,整理一下简单的思路

mysql -> hive 进行同步。

主要的问题点在于,订阅增量 以及初始化,之间是有时间间隔的。

怎么做才能保证数据的准确性

前提:都是通过canal 读取binlog。

canal进行抽数。弄到kafka 然后flink进行消费。

解决方案

方案1. 可以使用flink cdc进行消费

https://blog.csdn.net/u011532105/article/details/109644444

作者:收数佬

大概就是这么个新东西,在1.11之后才出现的。不过没有仔细调研,后面可以读读看。 

  1. mysql开启binlog

  2. canal同步binlog数据写入到kafka

  3. flink读取kakfa中的binlog数据进行相关的业务处理。

Apache Flink CDC可以直接从数据库获取到binlog供下游进行业务计算分析。简单来说链路会变成这样

这个还是很酷的,相当于直接处理binlog,不再通过canal与kafka进行同步,而flink直接进行处理mysql的数据。节省了canal与kafka的过程。

出问题的情况就会变少。

Flink 1.11中实现了mysql-cdc与postgre-CDC,也就是说在Flink 1.11中我们可以直接通过Flink来直接消费mysql,postgresql的数据进行业务的处理。

使用场景

数据库数据的增量同步

数据库表之上的物理化视图

维表join

其他业务处理

但是我觉得还是会有一些坑的,比如长事务问题,直接读取binlog,那么处理语义上面怎么去区分 insert 和update等等 还有dml。

是否足够成熟什么的

方案2:三个时间点,T0开始订阅,T1是做初始化,T2是进行增量merge(第一次merge)

我们的做法,先进行数据初始化。

三个时间点:

T0  T1  T2 

T0开始订阅,T1是做初始化,T2是进行增量merge(第一次merge)

所以其实是冗余,多订阅了一部分数据,那么进行数据merge也不会有什么问题。

关于binlog怎么看:

我们可以show master status 可以知道binlog的文件名,

然后知道对应的点位,

mysql 其实也会把binlog 弄到OSS上面。

(我们mysql的binlog会同步到oss上面,但是本地文件是放了几个小时,根据文件大小不同,放得时间也不一样,所以找数据是可以找到的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flink CDC 是一个用于从MySQL binlog中获取数据变动的工具。通过引入Flink CDC的jar包,并编写一个main方法,我们可以实现从指定位置拉取消息的功能。具体而言,可以使用.startupOptions(StartupOptions.specificOffset("mysql-bin.000013", 1260))这句代码来指定binlog日志的位置开始读取数据。 需要注意的是,Flink CDC 1.4.0版本支持使用specificOffset方式指定binlog日志的位置开始读取数据,而新版本测试还未支持该功能。 Java是一种全球排名第一的编程语言,在大数据平台中广泛使用,主要包括Hadoop、Spark、Flink等工具,这些工具都是使用Java或Scala开发的。因此,使用Java编写Flink CDC的代码可以很好地与大数据生态系统进行集成,实现对MySQL binlog的获取。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [FlinkCdc从Mysql指定的binlog日志offsetPos位置开始读取数据](https://blog.csdn.net/shy_snow/article/details/122879590)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Java + 数组 + 初始化](https://download.csdn.net/download/weixin_51202460/88254379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值