Flink 數(shù)據(jù)湖 助力美團數(shù)倉增量生產(chǎn)
一、美團數(shù)倉架構圖

二、美團當前 Flink 應用場景和規(guī)模
實時數(shù)倉、經(jīng)營分析、運營分析、實時營銷 推薦、搜索 風控、系統(tǒng)監(jiān)控 安全審計

三、基于 Flink 的流式數(shù)據(jù)集成
1. 數(shù)據(jù)集成 V1.0

2. 數(shù)據(jù)集成 V2.0

3. 數(shù)據(jù)集成 V3.0

4. 美團自研的 Hidi
支持增量讀取,也就是讀取當前時間到前一段時間的數(shù)據(jù), 才能做到增量; 支持基于主鍵的 Upsert/Delete。Hidi 是美團在 2,3 年前,在內(nèi)部自研的架構,此架構的特性在于: 支持 Flink 引擎讀寫; 通過 MOR 模式支持基于主鍵的 upsert/Delete; 小文件管理 Compaction; Table Schema

四、基于 Flink 的增量生產(chǎn)
1、傳統(tǒng)離線數(shù)倉特性分析

2. 增量生產(chǎn)

3. 增量計算的優(yōu)點


4. 增量生產(chǎn)架構圖

Flink SQL 能力能夠?qū)R Spark SQL; Hidi 支持 Upsert/Delete 特性(Hidi 已支持); Hidi 支持全量和增量的讀取,全量讀取用于查詢和修復數(shù)據(jù),增量讀取用來增量生產(chǎn);
五、實時數(shù)倉模型與架構


六、流式導出與 OLAP 應用
1. 異構數(shù)據(jù)源的同步

2. 第一版實現(xiàn)

工具平臺層,對接用戶,用來配置同步任務,配置調(diào)度,運維任務; 調(diào)度層,負責任務的調(diào)度,管理任務狀態(tài)管理,以及執(zhí)行機的管理,這其中有非常多的額外工作都需要自己做; 執(zhí)行層,通過 DataX 進程,以及 Task 線程從源存儲同步到目標存儲。
3. 第二版實現(xiàn)

4. 基于 Flink 的同步架構關鍵設計
避免跨 TaskManager 的 Shuffle,避免不必要的序列化成本;Source 和 Sink 盡量在同一個 TaskManager; 務必設計臟數(shù)據(jù)收集旁路和失敗反饋機制;數(shù)據(jù)同步遇到臟數(shù)據(jù)的時候,比如失敗了 1% 的時候,直接停下來; 利用 Flink 的 Accumulators 對批任務設計優(yōu)雅退出機制;數(shù)據(jù)傳輸完之后,通知下游數(shù)據(jù)同步完了; 利用 S3 統(tǒng)一管理 Reader/Writer 插件,分布式熱加載,提升部署效率;很多傳輸任務都是小任務,而作業(yè)部署時間又非常長,所以需要要提前部署插件;
5. 基于 Flink 的 OLAP 生產(chǎn)平臺

七、 未來規(guī)劃
評論
圖片
表情
