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

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

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

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

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

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

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

2. 增量生產(chǎn)

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


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

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


六、流式導(dǎo)出與 OLAP 應(yīng)用
1. 異構(gòu)數(shù)據(jù)源的同步

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

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

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

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