Flink CDC

devtools/2024/9/29 16:50:54/

全增量一体化架构

自 2.0 版本起,Flink CDC 引入了增量快照框架,实现了数据库全量和增量数据的一体化读取,并可以在全量和增量读取之间进行无缝切换。在读取全量数据时,Flink CDC source 会首先将数据表中的已有数据根据主键分布切分成多个 chunk(如上图中的绿色方块所示),并将 chunk 分发给多个 reader 进行并发读取。

对于数据变化频繁、已有数据较多的数据库,在全量同步过程中已同步的数据可能会发生变化。一些数据集成工具的解决方案是在读取前获取表锁阻止数据变更,再进行全量数据读取,然而这种方案会对在线业务造成较大影响。为解决该问题,Flink CDC 的增量快照框架引入了水位线(watermark)的概念:在启动全量同步前,首先获取数据库当前最新的 binlog 位点,记为低水位线(low watermark),如上图中的蓝色方块所示,随后启动全量读取。

在所有全量数据读取完成后,CDC source 会再次获取最新的 binlog 位点,并记为高水位线(high watermark),如上图中第二个蓝色方块所示。位于高低水位线之间、与被捕获表相关的 binlog 事件(上图中的黄色方块)即为全量数据在读取阶段发生的数据变化,CDC source 会将这部分增量数据合并至现有快照,合并完成后即可获得与源数据库完全一致的实时快照,并且在此过程中无需对数据库进行加锁,不会影响线上业务的正常运行。


http://www.ppmy.cn/devtools/118780.html

相关文章

Oracle(145)如何进行数据库的日常维护?

数据库的日常维护是确保数据库性能稳定、数据安全可靠的关键。以下是进行数据库日常维护的几个重要步骤,包括示例代码,适用于大多数关系型数据库系统,如Oracle, MySQL, PostgreSQL等。 1. 监控数据库性能 监控数据库性能可以帮助及时发现和…

【Python快速学习笔记02】基础语法学习(变量等)

目录 1.标识符与代码书写注意点 2.变量类型 1.标识符与代码书写注意点 (1)组成:字母,下划线,数字 (2)注意点:但是不能由数字开头,区分大小写 (3&#xff…

MATLAB GUI组件全解析:构建交互式应用程序

MATLAB的图形用户界面(GUI)是一个功能强大的工具,它允许开发者创建直观且用户友好的界面。这些界面,也称为应用程序或app,提供了点击控制,使得用户无需学习编程语言或输入命令即可运行应用程序。本文将详细…

【web开发】Spring Boot 快速搭建Web项目(三)

Date: 2024.08.31 18:01:20 author: lijianzhan 简述:根据上篇原文Spring Boot 快速搭建Web项目(二),由于已经搭建好项目初始的框架,以及自动创建了一个启动类文件(TestWebApplication.java) …

RK3568笔记六十三:基于LVGL的Linux相机

若该文为原创文章,转载请注明原文出处。 记录移植韦老师的基于LVGL的Linux相机项目,主要是想学习如何在LVGL下显示摄像头数据。 此项目是基于老师的源码框架移植的,地址是lv_100ask_linux_camera: 基于LVGL的Linux相机 (gitee.com) 个人使用的是RK3568,正点原子板子,所以…

【算法——KMP】

1理解next数组定义:最长相等前后缀(不含当前字符并且不能是整体) 算法讲解100【扩展】 KMP算法原理和代码详解_哔哩哔哩_bilibili next数组的值:假设这个i出现了不匹配就从next[i]的位置开始在再匹配 2next数组生成 看一下是怎…

定制智慧科技展厅方案:哪些细节是成功的秘诀?

随着数字科技浪潮的迅猛推进,智慧科技展厅跃升为科技成果展示与技术对话的前沿阵地。其策划与实施方案因而显得尤为关键。在此过程中,精雕细琢每一环节,确保创意与技术的无缝对接,成为不可或缺的要点。现在,让我们深入…

【Python】FeinCMS:轻量级且可扩展的Django内容管理系统

在互联网飞速发展的今天,内容管理系统(CMS)成为了网站开发中的核心工具,尤其对于需要频繁更新内容的企业和个人站点而言,CMS 提供了极大的便利。市场上有许多不同的 CMS 工具可供选择,其中基于 Django 框架…