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.xRDS MySQL: 5.6, 5.7, 8.0.xPolarDB MySQL: 5.6, 5.7, 8.0.xAurora MySQL: 5.6, 5.7, 8.0.xMariaDB: 10.xPolarDB 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 |
快速上手 — CDC Connectors for Apache Flink® documentation
- Flink的操作者和SQL模块都比较成熟且易于使用Flink的作业可以通过调整运算器的并行度来完成,易于扩展处理能力Flink支持先进的状态后端(State Backends),允许访问大量的状态数据Flink提供更多的Source和Sink等。Flink拥有更大的用户群和活跃的支持社区,问题更容易解决Flink开源协议允许云厂商进行全托管深度定制,而Kafka Streams则只能由其自己部署和运营和Flink Table/SQL模块集成了数据库表和变化记录流(例如CDC的数据流)。作为同一事物的两面,结果是Upsert Message结构(+I表示新增、-U表示记录更新前的值、+U表示记录的更新值、-D表示删除)。



