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

2024-06-05 01:28

本文主要是介绍一图读懂:Flink CDC如何流式写入Paimon?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一图读懂: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

这篇关于一图读懂:Flink CDC如何流式写入Paimon?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1031685

相关文章

springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法

《springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法》:本文主要介绍springboot整合阿里云百炼DeepSeek实现sse流式打印,本文给大家介绍的非常详细,对大... 目录1.开通阿里云百炼,获取到key2.新建SpringBoot项目3.工具类4.启动类5.测试类6.测

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

Java 8 Stream filter流式过滤器详解

《Java8Streamfilter流式过滤器详解》本文介绍了Java8的StreamAPI中的filter方法,展示了如何使用lambda表达式根据条件过滤流式数据,通过实际代码示例,展示了f... 目录引言 一.Java 8 Stream 的过滤器(filter)二.Java 8 的 filter、fi

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

Flink任务重启策略

概述 Flink支持不同的重启策略,以在故障发生时控制作业如何重启集群在启动时会伴随一个默认的重启策略,在没有定义具体重启策略时会使用该默认策略。如果在工作提交时指定了一个重启策略,该策略会覆盖集群的默认策略默认的重启策略可以通过 Flink 的配置文件 flink-conf.yaml 指定。配置参数 restart-strategy 定义了哪个策略被使用。常用的重启策略: 固定间隔 (Fixe

Linux 云计算底层技术之一文读懂 Qemu 架构

Qemu 架构概览 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。 正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成