一、Flink CDC 是什么?
2020年 Flink cdc 首次在 Flink forward 大会上官宣, 由 Jark Wu & Qingsheng Ren 两位大佬 介绍,原始 blog 点击链接。
Flink CDC connector 可以捕获在一个或多个表中发生的所有变更。该模式通常有一个前记录和一个后记录。Flink CDC connector 可以直接在Flink中以非约束模式(流)使用,而不需要使用类似 kafka 之类的中间件中转数据。
另有一篇腾讯团队关于 Flink CDC 的介绍:Principle, practice and optimization of Flink CDC - 文章整合https://chowdera.com/2021/04/20210402055656576y.html
二、Flink CDC 支持的数据库?
Connector
Database
Driver
mongodb-cdc
- MongoDB: 3.6, 4.x, 5.0
MongoDB Driver: 4.3.1
mysql-cdc
- MySQL: 5.6, 5.7, 8.0.x
- RDS MySQL: 5.6, 5.7, 8.0.x
- PolarDB MySQL: 5.6, 5.7, 8.0.x
- Aurora MySQL: 5.6, 5.7, 8.0.x
- MariaDB: 10.x
- PolarDB X: 2.0.1
JDBC Driver: 8.0.21
oceanbase-cdc
- OceanBase CE: 3.1.x
JDBC Driver: 5.7.4x
oracle-cdc
- Oracle: 11, 12, 19
Oracle Driver: 19.3.0.0
postgres-cdc
- PostgreSQL: 9.6, 10, 11, 12
JDBC Driver: 42.2.12
sqlserver-cdc
- Sqlserver: 2017, 2019
JDBC Driver: 7.2.2.jre8
tidb-cdc
- TiDB: 5.1.x, 5.2.x, 5.3.x, 5.4.x
JDBC Driver: 8.0.27
三、使用 Flink CDC?
快速上手 — CDC Connectors for Apache Flink® documentation
四、相比于 Kafka Streams ,Flink CDC 的优势
- Flink的操作者和SQL模块都比较成熟且易于使用
- Flink的作业可以通过调整运算器的并行度来完成,易于扩展处理能力
- Flink支持先进的状态后端(State Backends),允许访问大量的状态数据
- Flink提供更多的Source和Sink等。
- Flink拥有更大的用户群和活跃的支持社区,问题更容易解决
- Flink开源协议允许云厂商进行全托管深度定制,而Kafka Streams则只能由其自己部署和运营
- 和Flink Table/SQL模块集成了数据库表和变化记录流(例如CDC的数据流)。作为同一事物的两面,结果是Upsert Message结构(+I表示新增、-U表示记录更新前的值、+U表示记录的更新值、-D表示删除)。
版权归原作者 highfei2011 所有, 如有侵权,请联系我们删除。