当前位置:   article > 正文

一图读懂:Flink CDC如何流式写入Paimon?_paimon sink commiter

paimon sink commiter

一图读懂:Flink CDC如何流式写入Paimon?

在这里插入图片描述

以Mysql CDC至Paimon为例

整体架构

在这里插入图片描述

  • MySQL CDC SourceSnapshotReader读取快照全量数据,BinlogReader读取增量数据。

  • paimon sink 实现桶级别的写入,compactManager实现异步compaction

  • comitter 单例模式负责提交和过期快照

流程

第一步:当source端读取 到全量快照数据和增量数据,发送到下游sink

在这里插入图片描述

第二步:sink端获取到数据,先在在内存LSM tree中缓存,当内存满了以后flush到磁盘中。

注意:此时并没有创建snapshot,当flink 写入checkpoint时,paimon sink会把所有缓从中的记录刷写到磁盘,并且发送一个committable 消息给下游。下游Committer Operator read during checkpoint。

在这里插入图片描述

第三步:checkpoint期间,commiter operator 会创建一个新的snapshot 和manifest关联起来,所以一个snapshot包含了一个表的所有信息。

在这里插入图片描述

第四步:这一步是被触发的。异步执行的。CompactManager 生成的committable包含previous files 和 merged files ,所以Commiter Operator可以构造相应的manifest。

这种情况下,Commiter Operator在checkpoin期间可能生成两份快照,一份是数据写入(Append类型的快照),另外一份是compact快照。如果在checkpoint期间没有写入数据文件,就只会创建Compact类型的快照。Committer Operator将检查快照是否过期,并对标记的数据文件执行物理删除。

在这里插入图片描述

参考文献:

https://paimon.apache.org/docs/0.8/learn-paimon/understand-files/#flink-stream-write

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/946830
推荐阅读
相关标签
  

闽ICP备14008679号