Flink CDC和原理
CDC (Change Data Capture) 是一种用于捕捉数据库变更数据的技术,Flink 从 1.11 版本开始原生支持 CDC 数据(changelog)的处理,目前已经是非常成熟的变更数据处理方案。
Flink CDC Connectors 是 Flink 的一组 Source 连接器,是 Flink CDC 的核心组件,这些连接器负责从 MySQL、PostgreSQL、Oracle、MongoDB 等数据库读取存量历史数据和增量变更数据。在 2020 年 7 月开源,社区保持了相当高速的发展,平均两个月一个版本,在开源社区的关注度持续走高,也逐渐有越来越多的用户使用 Flink CDC 来快速构建实时数仓和数据湖。
Flink CDC 2.1的改进
Flink CDC 2.1 版本重点提升了 MySQL CDC
连接器的性能和生产稳定性,重磅推出 Oracle CDC
连接器和 MongoDB CDC
连接器。新增内容如下:
(1)MySQL CDC 支持百亿级数据的超大表,支持 MySQL 全部数据类型,通过连接池复用等优化大幅提升稳定性。同时提供支持无锁算法,并发读取的 DataStream API,用户可以借此搭建整库同步链路;
(2)新增 Oracle CDC 连接器, 支持从 Oracle 数据库获取全量历史数据和增量变更数据;
(3)新增 MongoDB CDC 连接器,支持从 MongoDB 数据库获取全量历史数据和增量变更数据;
(4)所有连接器均支持metadata column
功能, 用户通过 SQL 就可以访问库名,表名,数据变更时间等 meta 信息,这对分库分表场景的数据集成非常实用;
丰富 Flink CDC 入门文档,增加多种场景的端到端实践教程。
Flink CDC 1.x 问题点
1、加锁时间不确定,极端情况会锁住数据库
针对 一致性加锁的痛点 Flink cdc 2.x 借鉴 Netflix 的 DBlog paper 设计了全程无锁算法
2、因为 Flink CDC 底层是基于 Debezium,Debezium 架构是单节点,所以 Flink CDC 1.x 只支持单并发。在全量读取阶段,如果表非常大 (亿级别),读取时间在小时甚至天级别,用户不能通过增加资源去提升作业速度。
3、全量读取阶段不支持 checkpoint
Flink CDC 读取分为两个阶段,全量读取和增量读取,目前全量读取阶段是不支持 checkpoint 的;
因此会存在一个问题:当我们同步全量数据时,假设需要 5 个小时,当我们同步了 4 小时的时候作业失败,这时候就需要重新开始,再读取 5 个小时。
Flink cdc 2.x 中定期为源执行检查点,在故障转移的情况下,作业将从上次成功的检查点状态重新启动并恢复,并保证恰好一次语义。
Flink CDC 高频面试 13 问(万字长文吐血总结!)
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhiafefc
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22