天天看點

【Flink基礎】-- Flink CDC介紹

一、Flink CDC 是什麼?

      2020年 Flink cdc 首次在 Flink forward 大會上官宣, 由 ​​Jark Wu & Qingsheng Ren 兩位大佬​​​ 介紹,原始 blog 點選​​連結。​​

      Flink CDC connector 可以捕獲在一個或多個表中發生的所有變更。該模式通常有一個前記錄和一個後記錄。Flink CDC connector 可以直接在Flink中以非限制模式(流)使用,而不需要使用類似 kafka 之類的中間件中轉資料。

【Flink基礎】-- Flink CDC介紹

另有一篇騰訊團隊關于 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

三、使用 Flink CDC?

四、相比于 Kafka Streams ,Flink CDC 的優勢

  1. Flink的操作者和SQL子產品都比較成熟且易于使用
  2. Flink的作業可以通過調整運算器的并行度來完成,易于擴充處理能力
  3. Flink支援先進的狀态後端(State Backends),允許通路大量的狀态資料
  4. Flink提供更多的Source和Sink等。
  5. Flink擁有更大的使用者群和活躍的支援社群,問題更容易解決
  6. Flink開源協定允許雲廠商進行全托管深度定制,而Kafka Streams則隻能由其自己部署和營運
  7. 和Flink Table/SQL子產品內建了資料庫表和變化記錄流(例如CDC的資料流)。作為同一事物的兩面,結果是Upsert Message結構(+I表示新增、-U表示記錄更新前的值、+U表示記錄的更新值、-D表示删除)。