《1-3 Flink CDC 如何加速海量數據的實時集成.pdf》由會員分享,可在線閱讀,更多相關《1-3 Flink CDC 如何加速海量數據的實時集成.pdf(30頁珍藏版)》請在三個皮匠報告上搜索。
1、徐榜江(雪盡)Apache Flink Committer&Flink CDCMaintainer|Flink CDC 如何加速海量數據的實時集成01Flink CDC技術技術02海量數據集成的痛點海量數據集成的痛點03Flink CDC如何加速海量數據集成如何加速海量數據集成04開源社區發展開源社區發展目錄目錄|Flink CDC技術技術01|CDC 技術|廣義的概念上,能夠捕獲數據變更的技術,我們都可以稱為CDC(Change Data Capture)。通常我們說的 CDC 技術主要面向數據庫的變更,是一種用于捕獲數據庫中數據變更的技術。應用場景:數據同步:用于數據備份、系統容災數據采集
2、:面向數據倉庫/數據湖的 ETL 數據集成數據分發:一個數據源分發給多個下游CDC 技術|業界 CDC 的技術方案非常多,從原理上可以分為兩大類:基于查詢的 CDC 離線調度查詢作業,批處理無法保障數據一致性不保障實時性 基于日志的 CDC 實時消費日志,流式處理保障數據一致性提供實時數據Flink CDCDebeziumDataXCanalSqoopkettleOracle GoldengateCDC 機制日志日志日志日志查詢日志日志查詢查詢日志日志增量同步斷點續傳全量同步全量+增量架構分布式分布式單機單機單機分布式分布式分布式分布式分布式分布式Transformation生態常開源 CDC
3、 案對|Flink CDC 技術|?Flink CDC 技術|?Flink CDC 技術|?海量數據集成的痛點海量數據集成的痛點02|DataX/Sqoop全量同步HiveHDFS全量表影響業務穩定性天級別產出性能瓶頸明顯|傳統數據入倉架構1.0痛點痛點:影響業務,延遲過高,擴展性差:影響業務,延遲過高,擴展性差海量海量CDC數據集成的痛點數據集成的痛點HDFSDataX/Sqoop全量同步全量同步HDFSCanalCanal增量同步增量同步定時回流(小時定時回流(小時/天)天)HDFS定時合并增量表全量表最終表Hive鏈路長,組件多小時級別產出不影響業務穩定性全量+增量割裂海量海量CDC數據
4、集成的痛點數據集成的痛點|痛點痛點:延遲過高,鏈路割裂,可維護性差:延遲過高,鏈路割裂,可維護性差傳統數據入倉架構2.0采集(E)Debezium計算(T)傳輸(L)|海量海量CDC數據集成的痛點數據集成的痛點TiDBTiDBClickHouseClickHouseIcebergIcebergHudiHudi(upsert(upsert-kafka)kafka)傳統 CDC ETL 分析Debezium|海量海量CDC數據集成的痛點數據集成的痛點傳統 CDC ETL 分析痛點痛點:單并發性能差,全量增量割裂,依賴組件多:單并發性能差,全量增量割裂,依賴組件多中間件集群中間件集群?消息隊列集群消
5、息隊列集群?Canal 只能讀增量,全量需要用 DataX/SqoopDebezium 支持全量+增量,單并發模型限制吞吐Flink CDC如何加速海量數據集成如何加速海量數據集成03|Flink CDC 如何加速海量數據集成|單并發失敗重做使用鎖無鎖算法并發讀取斷點續傳DebeziumFlink CDC增量快照讀取算法算法|?Task1Task2Task3Task3Task1Task2?Flink CDC 如何加速海量數據集成全增量一體化框架|Flink CDC 如何加速海量數據集成TPC-DS 讀取測試,customer 單表數據量 6500 萬?Task1Task2Task8?Task(
6、89 分鐘)(8并發,13 分鐘)吞吐提升 6.8 倍checkpointbarriercheckpointbarriercheckpointbarriercheckpointbarrierchunk1WriterWriterstoragestorage|chunk2chunk3Flink CDC 如何加速海量數據集成存儲友好的寫入設計Flink CDC全增量實時同步Hudi|分鐘級別產出不影響業務穩定性全量+增量一體化鏈路短,組件少并發讀取,高吞吐Flink CDC 如何加速海量數據集成Flink CDC 入湖架構TiDBTiDBClickHouseClickHouseIcebergIceb
7、ergHudiHudi(upsert(upsert-kafka)kafka)|采集+計算+傳輸(ETL)Flink CDC 如何加速海量數據集成Flink CDC ETL 分析全增量一體化并發讀取鏈路短,組件少實時 ETL 加工清洗SELECTWHERENOT INGroup ByTop-NLISTAGG雙流 JOIN維表 JOINUDTF聚合打寬|TiDBTiDBClickHouseClickHouseIcebergIcebergHudiHudi(upsert(upsert-kafka)kafka)Flink CDC 如何加速海量數據集成強大的 transformation 能力全量+增量全
8、量+增量(StreamingStreaming JoinJoin)Flink CDCupsertstorage|Flink CDC 如何加速海量數據集成支持異構數據源集成|全量+增量Flink CDCupsertstorageshard1shard2shard3Flink CDC 如何加速海量數據集成支持分庫分表的集成|Flink CDC 如何加速海量數據集成支持豐富的 Flink 生態開源社區發展開源社區發展04|開源社區發展|38911151198152835050100150FLINK CDC 1.XFLINK CDC 2.0FLINK CDC 2.1FLINK CDC 2.2commi
9、tscontributors社區發版MySQL CDC 支持最新位點消費Postgres CDC 清理 WAL 文件支持標準 metricMySQL CDC 增量快照讀取MySQL CDC 支持水平擴展MySQL CDC 支持斷點續傳修復 Schema OOM 問題提供文檔網站支持 MySQL 百億級超大表支持 MySQL 全部類型支持 Oracle CDC 連接器支持 MongoDB CDC 連接器豐富社區文檔和教程新增 OceanBase,PolarDB-X,SqlServer,TiDB 四種數據源兼容 Flink 1.13 和 Flink 1.14提供增量快照讀取框架MySQL 支持 動態加表Flink CDC 社區發展|社區網站FAQ 手冊社區文檔Flink CDC 社區發展|GitHub 活動GitHub Star 年度 300%增長社區動態非常感謝您的觀看|