湖倉一體,Hologres加速雲資料湖DLF技術原理解析
Hologres(中文名互動式分析)是阿里雲自研的一站式實時數倉,這個雲原生系統融合了實時服務和分析大資料的場景,全面相容PostgreSQL協議並與大資料生態無縫打通,能用同一套資料架構同時支援實時寫入實時查詢以及實時離線聯邦分析。它的出現簡化了業務的架構,為業務提供實時決策的能力,讓大資料發揮出更大的商業價值。從阿里集團誕生到雲上商業化,隨著業務的發展和技術的演進,Hologres也在持續不斷優化核心技術競爭力,為了讓大家更加了解Hologres,我們計劃持續推出Hologres底層技術原理揭祕系列,從高效能儲存引擎到高效率查詢引擎,高吞吐寫入到高QPS查詢等,全方位解讀Hologres,請大家持續關注!
往期精彩內容:
- 2020年VLDB的論文《 》
- Hologres揭祕:首次揭祕雲原生Hologres儲存引擎
- Hologres揭祕:Hologres高效率分散式查詢引擎
- Hologres揭祕:高效能原生加速MaxCompute核心原理
- Hologers揭祕:優化COPY,批量匯入效能提升5倍+
- Hologres揭祕:如何支援超高QPS線上服務(點查)場景
- Hologres揭祕:從雙11看實時數倉Hologres高可用設計與 實踐
- Hologres揭祕:Hologres如何支援超大規模部署與運維
本期我們將帶來Hologres高效能分析引擎加速查詢雲資料湖DLF的技術原理解析。
隨著雲服務被接受的程度不斷提升,雲使用者日益願意將其收集的資料儲存在低成本的物件儲存裡,比如OSS,S3等。與此同時,基於雲的資料管理方式也得到相應的推廣,後設資料也不斷儲存在阿里雲DLF(Data Lake Formation)上。OSS和DLF的結合成就了一種新的資料湖搭建方式。這種基於雲端儲存的資料湖集累的資料規模也不斷增長,相應的湖倉一體的需求也孕育而生。湖倉一體架構基於開放格式的外部儲存,以及高效能的查詢引擎,讓資料架構靈活、可擴充套件、可插拔。
Hologres在湖倉一體場景上與DLF天然無縫融合,無需資料匯入匯出就能實現加速查詢由DLF管理儲存在OSS的資料,全面相容訪問各種DLF支援檔案格式,實現對PB級離線資料的秒級和亞秒級互動式分析。而這一切的背後,都離不開Hologres的DLF-Access引擎,通過DLF-Access實現對DLF後設資料以及背後的OSS資料進行訪 問。另外,通過結合Hologres 高效能分散式執行引擎HQE 的處理,訪問DLF/OSS的效能得到進一步提高。
Hologres加速查詢DLF/OSS主要有以下幾個優勢:
- 高效能: 可以直接對DLF/OSS資料 加速查詢,具有秒級響應的查詢效能,在OLAP場景可以直接即席查詢,滿足絕大多數報表等分析場景。
- 低成本:使用者在在DLF/OSS上儲存的大量資料,無需遷移和匯入資料而由Hologres直接進行訪問。在享受雲資料湖的低成本基礎之上,也避免了資料遷移成本。
- 相容性:可以實現以高效能和全相容的方式訪問各種DLF檔案格式,支援CSV、Parquet、ORC、Hudi、Delta等格式(其中Hudi、Delta在1.3版本支援)。而這些檔案格式又是通用資料湖相容的。
湖倉一體架構介紹
如圖所示是Hologres訪問DLF/OSS的湖倉一體架構,可以看出整個架構非常簡潔:
雲資料湖裡的資料儲存在OSS,後設資料儲存在DLF。當Hologres執行一條Query去加速查詢DLF/OSS的資料時,在Hologres端:
- Frontend接收SQL請求,並對SQL進行解析轉化,然後通過RPC向DLF-Access請求獲取Meta等相關資訊。
- HQE(Hologres Engine)通過DLF-Access獲取OSS/DLF具體的資料相關資訊,再返回給Frontend。
其中DLF-Access是一個分散式的資料訪問引擎,由多個平等程式組成,具備橫向擴充套件能力。任何一個程式都可以完成兩種角色:
- 處理Meta相關的請求,主要負責獲取表、分割槽後設資料、檔案分片等功能。
- 負責具體讀取或寫入資料請求,涉及列裁剪,資料轉換,資料封裝等功能。
DLF外表引擎核心技術創新
基於DLF-Access的架構,能做到對DLF/OSS的資料高效能加速查詢,主要是基於以下技術創新優勢:
1)抽象分散式外表
結合DLF/OSS的分散式特性,Hologres抽象了一個分散式的外表,來支援訪問包括傳統或雲資料湖的資料。
2)和 DLF Meta無縫互通
DLF-Access和Data Lake Formation的 Meta 無縫互通,可以做到 Meta 和 Data 實時獲取,支援通過Import Foreign Schema命令,同步DLF的後設資料到Hologres的外表,實現外表的自動建立。
3)向量化資料讀取及轉換
DLF-Access能充分利用資料湖列存檔案的特點進行向量化的資料讀取及轉換,進一步提升效能。
4)返回共享式資料格式
DLF-Access轉換後的資料格式為共享式的Apache Arrow格式。Hologres可以直接使用返回的資料,避免額外資料序列化及反序列化的開銷。
5)Block模式IO
為了避免網路帶來的延遲及負載,DLF-Access和Hologres的內部傳輸資料單位為block,預設為8192行資料。
6)程式語言隔離
Hologres是用C/C++開發出來的雲原生OLAP引擎。DLF雲資料湖和傳統的開源資料湖高度相容,而開源資料湖大多提供的是基於Java的庫。使用獨立的DLF-Access引擎架構可以隔離不同程式設計語種,即避免了原生引擎和虛擬機器之間的高成本轉換,又保持了對資料湖靈活多樣的資料格式的支援。
DLF外表引擎升級到HQE
上面提到了Hologres通過DLF-Access進行查詢加速DLF外表,查詢時效能可以做到很好,但是和Hologres互動時中間會有一層RPC 互動,在資料量較大時網路會存在一定瓶頸。
因此基於Hologres已有的能力,Hologres V1.3版本對執行引擎進行了優化,支援 Hologres HQE查詢引擎直讀DLF 表,在效能上得到進一步的提升,較早期版本讀取有 30%以上的效能提升。
這主要得益於以下幾個方面:
1) 節省了 DLF-Access中間 RPC 的互動,節省了一次額外的資料的重分佈,在效能上得到進一步的提升。
2) 複用Hologres的Block Cache,這樣多次查詢時無需訪問儲存,避免儲存IO,直接從記憶體訪問資料,更好的加速查詢。
3) 可以複用已有的Filter Pushdown(下推)能力,減少需要處理的資料量。
4) 在底層的 IO層實現了預讀和Cache,更進一步加速Scan時的效能。
對事務資料湖(Hudi、Delta)的支援
目前DLF支援了事務資料湖所用的Hudi,Delta等表格式。Hologres利用DLF-Access直接讀取這些表中的資料,而不增添任何額外的操作,滿足了使用者對實時湖倉一體架構的設計需求。
總結
Hologres通過DLF-Access與DLF/OSS深度整合,充分利用Hologres和DLF/OSS的各自優勢,以極致效能為目標,直接加速查詢雲資料湖資料,讓使用者更方便高效的進行互動式分析,同時也極大降低了分析成本,實現湖倉一體的分析能力。
作者簡介: Xuefu Zhang,阿里巴巴資深技術專家,現從事Hologres研發工作。
後續我們將會陸續推出有關Hologres的技術底層原理揭祕系列,敬請持續關注!往期精彩內容:
- 2020年VLDB的論文《 》
- Hologres揭祕:首次揭祕雲原生Hologres儲存引擎
- Hologres揭祕:Hologres高效率分散式查詢引擎
- Hologres揭祕:高效能原生加速MaxCompute核心原理
- Hologers揭祕:優化COPY,批量匯入效能提升5倍+
- Hologres揭祕:如何支援超高QPS線上服務(點查)場景
- Hologres揭祕:從雙11看實時數倉Hologres高可用設計
瞭解Hologres:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004426/viewspace-2887900/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料倉儲、資料湖與湖倉一體的區別與聯絡
- 萬字詳解資料倉儲、資料湖、資料中臺和湖倉一體
- 資料湖 VS 資料倉儲之爭?阿里提出大資料架構新概念:湖倉一體阿里大資料架構
- 資料湖還沒玩明白,就別想著湖倉一體了!
- 資料湖+資料倉儲 = 資料湖庫架構架構
- 資料湖--架構師如何助力“湖加速”?架構
- 大資料湖倉一體架構對分散式儲存有哪些技術需求?大資料架構分散式
- 資料湖架構,為什麼需要“湖加速”?架構
- 一文讀懂:本地資料湖丨資料倉儲丨雲資料湖的利與弊
- 通用資料湖倉一體架構正當時架構
- 湖倉一體技術架構到底有什麼價值?架構
- 資料倉儲 vs 資料湖 vs 湖倉一體:如何基於自身資料策略,選擇最合適的資料管理方案?
- 劃重點!AWS的湖倉一體使用哪種資料湖格式進行銜接?
- 讀資料湖倉06資料整合
- 讀資料湖倉02資料抽象抽象
- 破解湖+倉混合架構頑疾,星環科技推出自主可控雲原生湖倉一體平臺架構
- 一句話解讀資料編織、湖倉一體、增強分析等20個最新資料技術概念
- 讀資料湖倉01讓資料可信
- 資料湖 vs 倉庫 vs 資料庫資料庫
- 資料湖會取代資料倉儲嗎?
- 談談資料湖和資料倉儲
- 資料湖是下一代資料倉儲?
- 技術內幕 | 阿里雲EMR StarRocks 極速資料湖分析阿里
- GBASE雲資料倉儲透過信通院雲原生湖倉一體基礎能力專項測評
- 資料湖 vs 資料倉儲 vs 資料庫資料庫
- 讀資料湖倉07描述性資料
- 關於資料湖、資料倉儲的想法
- 資料倉儲被淘汰了?都怪資料湖
- 離線實時一體化數倉與湖倉一體—雲原生大資料平臺的持續演進大資料
- 華為雲FusionInsight湖倉一體解決方案的前世今生
- 資料湖
- 基於 Paimon 的袋鼠雲實時湖倉入湖實戰剖析AI
- 資料湖和中央資料倉儲的設計
- 讀資料湖倉05資料需要的層次
- 讀資料湖倉03不同型別的資料型別
- 讀資料湖倉08資料架構的演化架構
- GridGain的資料湖加速器簡介AI
- Presto+Alluxio 加速 Iceberg 資料湖訪問RESTUX