揭秘百度數倉融合計算引擎
本文介紹了百度數倉融合計算引擎的整體設計原理、最佳化及實踐,闡述了在網際網路產品快速迭代的趨勢下,基於一層數倉寬表模型的數倉模型如何做到數十秒級查詢的技術方案,並從網際網路業務變化特性、傳統計算引擎存在的問題、融合計算引擎的原理及優缺點、引擎應用場景和效果等角度進行了較為全面的分析,最終透過引擎設計和最佳化實現了提升查詢效能的同時節約數倉儲存的目標,降低了使用者的資料使用成本。
全文4003字,預計閱讀時間11分鐘
01
1.1 資料現狀和資料分析引擎的演進
1.1.1 資料現狀
網際網路企業往往存在多個產品線,每天源源不斷產出大量資料,數倉規模達到數百PB以上,這些資料服務於資料分析師、業務上的產品經理、運營、資料開發人員等各角色。為了滿足這些角色的各種需求,需要穩定高效的計算引擎在海量資料中快速完成分析計算。
1.1.2資料分析引擎的演進及百度數倉引擎選型
單機分析時代(數倉TB級別)->
MapReduce、Hive基於磁碟的分析時代(數倉數PB級別,分析耗時數十分鐘)-> Spark基於記憶體的分析時代(數倉數百PB,分析耗時數十秒)
百度數倉引擎選型:對比了業界常用的Adhoc查詢分析引擎,透過對比Hive生態、大規模Join、儲存引擎、列式儲存、是否支援高併發以及適用場景等,如圖1:
△圖1
最終選型Spark SQL,因為SparkSQL對Hive生態相容好,大規模Join效能好,支援大寬表列存,支援UDF等。
1.2 當前業務特性與趨勢
網際網路產品快速迭代,業務發展越來越快,跨業務分析越來越多,資料驅動業務越來越重要。數倉計算任務和資料量越來越多,adhoc場景日均參與計算的資料數十P,ETL場景日均數十P,資料服務的主要群體正在從資料研發轉向分析師、產品及運營人員,查詢計算速度需要進一步提升,使用門檻需要進一步降低。
02
2.1 在資料驅動業務越來越重要的大趨勢下,分析效率越來越重要
△圖2
△圖3
2.2 思考
那麼在生產實踐中如何解決上述面臨的問題及痛點呢,在對數倉技術深度調研和對業務線具體使用者訪談後,根據調研和訪談結論,得出以下想法:
(1)引擎層面:設計融合計算引擎、使用DataSkipping,Limit下推、Codegen和向量化,引數調優等方式加速資料查詢,快速滿足業務查詢需求,助力資料驅動業務。
(2)數倉層面:數倉不分層,節約數倉整體儲存,用更少的表滿足業務需求,比如一個主題一張寬表,明確資料表使用方式,確保口徑清晰統一,避免業務方線下拉會溝通,降低溝通成本,提高溝通效率。
03
3.1 融合計算引擎
融合計算引擎是一個百度自研的集常駐、查詢、生產於一體的數倉融合的SQL
計算引擎,它基於 Apache Spark 構建,具有快速、可擴充套件和高度可靠的特性,不僅用於在PB甚至EB級大規模資料處理和分析場景中執行 SQL 查詢,也用於例行生產的 ETL 場景。
3.1.1融合計算引擎架構
融合計算引擎架構如下:由WebServer、Master、Worker三部分組成。具體各部分功能見圖4:
△圖4
3.1.2 融合計算引擎效能最佳化
3.1.2.1 如何算的更少DataSkipping
(a)同列同質資料擁有更好的編碼及壓縮
(b)Parquet對映下推,透過對映下推只需要從每個RowGroup中讀取下推的列即可,實現檔案IO量:TB->GB級別,如圖5:
△圖5
(3)RowGroup級別統計過濾
△圖6
△圖7
3.1.2.2 如何算得更快
△圖8
△圖9
△圖10
△圖11
3.1.2.3 如何算的更穩定
3.1.3融合計算引擎例行ETL場景
△圖12
3.2 融合計算引擎優點及效能
(1)查詢引擎和ETL生產引擎統一,避免不同引擎之間的語義差距,使用成本更低
04
(1)融合計算引擎和寬表建模更適合面向快速迭代的資料驅動型業務,能夠極大的提升業務效率。
(2)基於當前的業務實踐,引擎和寬表在儲存和查詢效能方面相比於傳統數倉更優。
(3)在業務效率提升的同時,查詢越來越多,計算量越來越大,引擎壓力有所提升,寬表的建設在資料生產和維護成本有所提升,整體挑戰越來越大,還需結合引擎技術和實際場景進一步最佳化探索。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70024924/viewspace-3007768/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Tech Talk · 雲技術有話聊 | 基於多場景計算分析的融合數倉基礎架構架構
- 揭秘 | 實時數倉你不知道的那些事
- 詳解數倉的向量化執行引擎
- 圖計算引擎分析--GridGraph
- 圖計算引擎分析——Gemini
- OpenCV計算機視覺學習(2)——影像算術運算 & 掩膜mask操作(數值計算,影像融合,邊界填充)OpenCV計算機視覺
- [數倉]資料倉儲設計方案
- 騰訊燈塔融合引擎的設計與實踐
- 資料倉儲(6)數倉分層設計
- 資料倉儲(7)數倉規範設計
- 由紛爭到融合,實時數倉演繹“戰國時代”
- 數倉模型設計詳解模型
- 數倉(一)數倉概述
- 每月雲事|雲、數、智融合能力成為雲端計算廠商的硬核
- MaxCompute執行引擎核心技術DAG揭秘
- 數倉 - [04] 數倉分層
- 【ODPS新品釋出第2期】實時數倉Hologres:推出計算組例項//向量計算+大模型等新能力大模型
- 數倉建模—寬表的設計
- 深度揭秘阿里雲函式計算非同步任務能力阿里函式非同步
- “全真互聯”時代:騰訊發力數實融合四大引擎
- Apache Flink 不止於計算,數倉架構或興起新一輪變革Apache架構
- 計算機計算小數除法的陷阱計算機
- 開發者解讀:為什麼螞蟻要用融合計算這種新計算模式?模式
- 揭秘計算機奇蹟:探索I/O裝置的神秘世界!計算機
- 計算Linux天數Linux
- 計算素數【Java】Java
- 天翼雲探索雲原生、邊緣計算融合新思路
- 正向合約&反向合約倉位變化計算
- 寶鯤財經:揭秘炒匯建倉技巧有哪些
- 【雲棲2023】姜偉華:Hologres Serverless之路——揭秘彈性計算組Server
- 降價背後,函式計算規格自主選配功能揭秘函式
- 巨量引擎:2020年娛樂算數白皮書(附下載)
- 使用流式計算引擎 eKuiper 處理 Protocol Buffers 資料UIProtocol
- python計算對數值Python
- 計算機圖形學:虛擬和現實世界的融合計算機
- AI與雲端計算的深度融合會帶來什麼?AI
- [踩樓贈書] 新書上市!《隱私計算》——系統揭秘隱私計算,全面駕馭資料要素新書
- 高效能日誌結構化引擎 — GreptimeDB Piepline 設計與實現技術揭秘