網易雲音樂基於Flink實時數倉實踐
截止到今天為止,網易雲音樂實時計算平臺的機器數量有150多個,執行任務有700個,資料峰值的QPS有400萬。李涵淼透露道,“大概有180多個開發者在用這個實時計算平臺。”
在業務覆蓋層面,跟實時有關的基本是全覆蓋,包括實時報表、實時特徵、實時索引,以及實時業務等。實時計算平臺是從2018年上半年開始做的,期間經歷了兩個版本的迭代,直到2020上半年,任務增長了將近200%。
網易雲是基於1.7的版本,做的實時計算平臺version-1設計。大家都知道,Flink已經更新到1.11版本了,它整合了很多Blink的優秀特性。在被阿里收購以後,Flink從1.9版本開始,每一個版本迭代,程式碼的改動都是非常多的。
因為社群版本的Flink 1.7不支援SQL DDL,所以為了方便使用者的使用,我們基於Antlr的自定義SQL語法,包含DDL和維表JOIN。此外,實時平臺的第一版本沒有資料血緣追蹤功能,問題定位的時候比較困難。
實時平臺的第一版本沒有後設資料管控,Jar任務的遊離。它的任務監控是不健全的。當問題出現的時候,我們收集的指標不足以定位問題。現在來看,實時平臺第一版本的問題是非常多的。
二、實時數倉建設
實時數倉版本是基於Flink 1.9版本做的,它主要的特性包括:與後設資料中心的整合,使得使用者不用過多地定義資料的格式;提供SQL和SDK給使用者使用;端到端血緣收集;資料來源和任務監控完善。
▲實時數倉的架構圖
從最源頭開始看實時數倉的架構圖,SQL和SDK作為輸入,直接去走Planner。Planner和SQL打通,可以解析整體的SQL語句。接下來,會有一個Catalog的注入,它接的是MetaHub(雲資料中心)。
所有的後設資料都被管控起來,就形成了一個系統,也就是後設資料中心。它可以管理所有存在後設資料系統的儲存,並具備獨立模組管理MQ後設資料、插拔式後設資料管理、統一資料型別、後設資料檢索等功能。
數倉建設分為三個部分:統一表表示格式 (catalog.db.table) 、數倉分層,以及表許可權管理。在做實時數倉時,我們完全以現有離線的數倉模式,複製出來一個實時數倉的表。
SDK提供封裝內部SQL執行邏輯,簡易的API,以及資料血緣收集。上圖是用SDK做的一個DEMO,這是真實的一個業務程式碼。之前是用了將近190多行程式碼去實現的,在封裝之後總體不過十幾行程式碼,方便使用者使用。
從資料、資料來源、資料寫出,我們均提供細粒度任務級別指標監控和MQ資料量監控。李涵淼認為,“當平臺做到一定程度的時候,這種叢集級別的監控是必不可少的。監控做的完善,對平臺是一個很好的補充。”
三、實時數倉實踐
實時數倉第一個很典型的實踐就是ABTest,把原始資料存到HIVE裡面去,再用Spark做清洗和聚合,然後再輸到上層的表裡。值得注意的是,實時數倉和離線數倉的分層,其實是一致的。
實時數倉版ABTest擺脫了之前HIVE+Spark的處理模式,應用效果非常好。
實時數倉第二個典型的實踐是實時報表,如上圖所示,網易雲音樂直播播放量的統計表格。實時報表建立任務更容易,資料問題定位更清晰。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69986098/viewspace-2729324/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於 Flink 的實時數倉生產實踐
- 快手基於 Apache Flink 的實時數倉建設實踐Apache
- 雲音樂實時數倉建設以及任務治理實踐
- 快手基於 Flink 構建實時數倉場景化實踐
- RocketMQ 在網易雲音樂的實踐MQ
- Python爬蟲實踐-網易雲音樂Python爬蟲
- 美團點評基於 Flink 的實時數倉建設實踐
- Doris和Flink在實時數倉實踐
- 幸福裡基於 Flink & Paimon 的流式數倉實踐AI
- Python爬蟲實踐--爬取網易雲音樂Python爬蟲
- 基於Flink構建全場景實時數倉
- GaussDB(DWS)基於Flink的實時數倉構建
- 網易雲音樂網路庫跨平臺化實踐
- 基於 React + TypeScript 的網易雲音樂ReactTypeScript
- 網易雲音樂機器學習平臺實踐機器學習
- Curve 替換 Ceph 在網易雲音樂的實踐
- 基於 GraphQL 的雲音樂 BFF 建設實踐
- 上海久耶基於HBase實時數倉探索實踐
- Vue 實現網易雲音樂 WebAppVueWebAPP
- 網易雲音樂資料全鏈路基線治理實踐
- 網易雲音樂質量視覺化實踐 - 張文視覺化
- 基於 Hologres+Flink 的曹操出行實時數倉建設
- 基於Hologres+Flink的曹操出行實時數倉建設
- Electron+Vue實現仿網易雲音樂實戰Vue
- 網易雲音樂低程式碼體系建設思考與實踐
- 實現一個網易雲音樂的 BottomSheetDialog
- Vue 全家桶實現網易雲音樂 WebAppVueWebAPP
- 網易嚴選離線數倉治理實踐
- 基於 Kafka 的實時數倉在搜尋的實踐應用Kafka
- 錢大媽基於 Flink 的實時風控實踐
- Flink CDC 在大健雲倉的實踐
- 網易互娛基於 Flink 的支付環境全關聯分析實踐
- 美團基於 Flink 的實時數倉平臺建設新進展
- 網易有道成人教育數倉建設實踐
- BIGO 使用 Flink 做 OLAP 分析及實時數倉的實踐和優化Go優化
- 從探索到突破:網易雲音樂Android自動化效能測試實踐Android
- 實時數倉混沌演練實踐
- 網易雲音樂基於使用者的推薦系統