前言:什麼是 Flink CDC ?
Flink CDC 是一個使用 Apache License 2.0 協定的開源項目,支援從 MySQL、MariaDB、RDS MySQL、Aurora MySQL、PolarDB MySQL、PostgreSQL、Oracle、MongoDB、SqlServer、TiDB、OceanBase 等資料庫中實時地讀取存量曆史資料和增量變更資料,整個過程提供 exactly-once 語義保證。Flink CDC 同時提供了 SQL API 和 DataStream API 兩套 API,很好地滿足了不同開發者的需求。
作為新一代資料內建架構,Flink CDC 既可以替代傳統的 DataX 和 Canal 工具做實時資料同步,将資料庫的全量和增量資料一體化地同步到消息隊列和資料倉庫中;也可以做實時資料內建,将資料庫資料實時入湖入倉;同時還支援強大的資料加工能力,可以通過 SQL 對資料庫資料做實時關聯、打寬、聚合,并将物化結果寫入到各種存儲中。相對于其他資料內建架構,Flink CDC 具有全增量一體化、無鎖讀取、并發讀取、分布式架構等技術優勢,在開源社群中非常受歡迎。
Flink CDC 項目位址:
github.com/ververica/f…
一、GitHub star 超過 2000
自 2020 年 7 月份開源以來,Flink CDC 社群發展迅速,在 GitHub 的關注度持續走高。回顧 Flink CDC 項目的發展,在 2021 年 9 月初,Flink CDC 項目的 GitHub star 首次超過 1000,也是這個時候 Flink CDC 釋出了 2.0 版本,正式進入大規模生産可用階段,社群的發展速度也猶如裝上了加速引擎。

越來越多的人知道并開始使用 Flink CDC,衆多的開發者參與到 Flink CDC 的貢獻中。僅過去半年,Flink CDC 項目的 GitHub star 數就完成了翻番。截至發稿前,Flink CDC 項目的 GitHub star 數達到 2015,fork 數達到了 660,issue 數達到了 582。這就是開源的力量!
社群的發展離不開全體社群開發者的貢獻和使用者的支援,目前 Flink CDC 項目的貢獻者已增加至 34 人,貢獻者來自 Cloudera、RedHat、Vinted、阿裡巴巴、螞蟻、網易、XTransfer 等國内外公司。Flink CDC 社群使用者群發展也非常迅速,中文使用者群成立半年多便達到 3800+ 人。
根據社群使用者群和公開資料統計,目前使用 Flink CDC 的公司包括 Cloudera、Vinted、阿裡巴巴、螞蟻、網易、騰訊、哔哩哔哩、XTransfer、37 手遊、農業銀行、民生銀行、深圳市領星網絡、大健雲倉等國内外雲廠商和知名企業。通過這些雲廠商提供的流計算服務和多家企業實踐,我們發現正有越來越多的使用者借助 Flink CDC 來快速實作資料實時內建和資料湖實時建構。
二、新增 Maintainer 成員
Flink CDC 社群的快速發展離不開貢獻者們的努力,在 Flink CDC 社群高速發展的過程中,湧現了一批活躍的高品質的貢獻者。經過 Flink CDC 社群 Maintainer 小組讨論, Flink CDC 社群已經邀請 Jiabao-Sun (孫家寶) 加入 Flink CDC 社群的 Maintainer 清單。
孫家寶老師是 XTransfer 基礎架構部的資深 Java 開發工程師,負責 XTransfer 基礎設施和大資料平台建設,他長期活躍在 Flink CDC 社群,作為核心貢獻者在社群貢獻了包括 MongoDB CDC Connector 在内的多個 PR,同時在社群 issue 清單和 Flink CDC 社群群非常積極,幫助社群開發者和使用者解答了非常多的問題,為社群發展做出了極大的貢獻。
期待孫家寶老師作為 Flink CDC 項目的 Maintainer,為 Flink CDC 的發展帶來更多元的視角,幫助更多的社群貢獻者和使用者。也希望未來能有更多的貢獻者可以加入 Maintainer 清單,不斷推動社群的發展。
三、Flink CDC 2.2 版本前瞻
- 2.2 版本會新增 SqlServer CDC,TiDB CDC,OceanBase CDC 三個 Connector,支援從上三種資料庫中讀取全量和增量 CDC 資料。
- MySQL CDC 支援動态加表,如果你一個 CDC pipeline 監控了4張表,突然有天老闆想讓你加幾張表,你肯定不想另起作業 (浪費資源),那麼這個 feature 可以讓你在已有 pipeline 中增加需要監控的表,而無需重新讀取已同步的表。
- 所有 CDC Connector 都可以相容 Flink 1.13 和 Flink 1.14 版本,意味着同一個 Connector 可以跑在不同版本的叢集上。
- 增量快照讀取算法抽象成通用架構,便于其他 connector 接入。隻需額外實作少量代碼,新 connector 便能支援無鎖讀取、多并發讀取、全程斷點續傳等功能。
- MongoDB CDC 支援正規表達式過濾集合, 在 2.1 版本裡 MongoDB CDC 隻能捕獲單個集合或者 DB 下的全部集合,2.2 版本将提供正則比對集合支援。
- MySQL CDC 将支援 MySQL 5.6,這對低版本的 MySQL 使用者來講絕對是個好消息。
- 此外,2.2 版本也修複了很多使用者回報 bug 和小的改進。