日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hologres揭秘:高性能原生加速MaxCompute核心原理

發布時間:2024/9/3 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hologres揭秘:高性能原生加速MaxCompute核心原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介:Hologres技術揭秘系列持續更新中,本期我們將帶來Hologres高性能原生加速查詢MaxCompute的技術原理解析。

Hologres(中文名交互式分析)是阿里云自研的一站式實時數倉,這個云原生系統融合了實時服務和分析大數據的場景,全面兼容PostgreSQL協議并與大數據生態無縫打通,能用同一套數據架構同時支持實時寫入實時查詢以及實時離線聯邦分析。它的出現簡化了業務的架構,與此同時為業務提供實時決策的能力,讓大數據發揮出更大的商業價值。從阿里集團誕生到云上商業化,隨著業務的發展和技術的演進,Hologres也在持續不斷優化核心技術競爭力,為了讓大家更加了解Hologres,我們計劃持續推出Hologres底層技術原理揭秘系列,從高性能存儲引擎到高效率查詢引擎,高吞吐寫入到高QPS查詢等,全方位解讀Hologres,請大家持續關注!

往期精彩內容:

  • 2020年VLDB的論文《Alibaba Hologres: A cloud-Native Service for Hybrid Serving/Analytical Processing》
  • Hologres揭秘:首次公開!阿里巴巴云原生實時數倉核心技術揭秘
  • Hologres揭秘:首次揭秘云原生Hologres存儲引擎
  • Hologres揭秘:Hologres高效率分布式查詢引擎


本期我們將帶來Hologres高性能原生加速查詢MaxCompute的技術原理解析。


隨著數據收集手段不斷豐富,行業數據大量積累,數據規模已增長到了傳統軟件行業無法承載的海量數據(TB、PB、EB)級別,MaxCompute(原名ODPS)也因此應運而生,致力于批量結構化數據的存儲和計算,提供海量數據倉庫的解決方案及分析建模服務,是一種快速、完全托管的EB級數據倉庫解決方案。


Hologres在離線大數據場景上與MaxCompute天然無縫融合,無需數據導入導出就能實現加速查詢MaxCompute,全兼容訪問各種MaxCompute文件格式,實現對PB級離線數據的毫秒級交互式分析。而這一切的背后,都離不開Hologres背后的執行器SQE(S Query Engine),通過SQE實現對MaxCompute的Native訪問,然后再結合Hologres高性能分布式執行引擎HQE的處理,達到極致性能。


Hologres加速查詢MaxCompute主要有以下幾個優勢:

  • 高性能:可以直接對MaxCompute數據加速查詢,具有亞秒級響應的查詢性能,在OLAP場景可以直接即席查詢,滿足絕大多數報表分析場景。
  • 低成本:MaxCompute經過數年的發展,用戶在MaxCompute上存儲了大量數據,不需要冗余一份存儲可直接進行訪問;另一方面用戶可以只需將部分高性能場景的數據遷移到SSD上,報表等分析場景的數據可以存儲在MaxCompute進一步降低成本。
  • 更高效:實現對MaxCompute的Native訪問,無需遷移和導入數據,就可以高性能和全兼容的訪問各種MaxCompute文件格式,以及Hash/Range Clustered Table等復雜表,降低用戶的使用成本。

SQE 架構介紹

如上圖所示是SQE的整體架構,可以看出整個架構也是非常簡單。MaxCompute的數據統一存儲在Pangu,當Hologres執行一條Query去加速查詢MaxCompute的數據時,在Hologres端:

  • Hologres Frontend通過RPC向SQE Master請求獲取Meta等相關信息。
  • Hologres Blackhole 通過 RPC 向 SQEExecutor 請求獲取具體的數據相關信息。
  • SQE由兩種角色的進程組成:
  • SQE Master負責處理Meta相關的請求,主要負責獲取表、分區元數據、鑒權以及文件分片等功能。
  • SQE Executor作為SQE的核心,負責具體讀取數據請求,涉及Block Cache、預讀取、UDF 處理、表達式下推處理、索引處理、Metric、Meter等等功能。

MaxCompute外表引擎核心技術創新

基于SQE的架構,能做到對MaxCompute的數據高性能加速查詢,主要是基于以下技術創新優勢:

1)抽象分布式外表

結合MaxCompute的分布式特性,Hologres抽象了一個分布式的外表,來支持訪問MaxCompute分布式數據。目前可支持訪問跨集群的MaxCompute分布式盤古文件,并按MaxCompute計算集群就近讀取。


2)和 MaxCompute Meta無縫互通,支持帶版本的元數據緩存

SQE和MaxCompute 的 Meta 無縫互通,可以做到 Meta 和 Data 實時獲取,支持通過Import Foreign Schema命令,自動同步MaxCompute的元數據到Hologres的外表,實現外表的自動創建,結構自動更新。


3)支持UDF/表達式下推

SQE 通過支持 UDF/表達式下推,來實現用戶自定義的UDF計算;將表達式下推可以減少無用的數據傳輸帶來的開銷,進一步提升性能。


4)異步ORC Reader,異步prefetch

目前MaxCompute大部分數據為ORC格式,在Hologres V0.10及以上版本,Hologres更新了執行引擎,使用異步 Reader 進行更高效的異步讀取,還支持異步prefetch,進一步降低讀取延遲;此外Hologres支持了 IO 合并、LazyRead、Lazy Decoding 等一些列的優化技術手段,來降低在 IO 在整個查詢上的延遲,以帶來極致性能。


5)支持Block Cache

為了避免每次讀數據都用IO到文件中取,SQE同樣使用BlockCache把常用和最近用的數據放在內存中,減少不必要的IO,加快讀的性能。在同一個節點內,通過一致性Hash實現將相同訪問的數據共享一個Block Cache。 比如在Scan 場景可帶來2倍以上的性能提升,大大提升查詢性能。


6)常駐進程,減少調度開銷

傳統的進程模型等架構需要動態實時的創建進程等調度操作,帶來了較大的調度開銷。SQE 采用常駐進程模式,避免不必要的調度開銷,此外還可以大大提升Block Cache的命中率和有效使用率。


7)Network Shuffle,減少落盤開銷

Network Shuffle需要提供一種快速且穩定的容錯機制。由于Network Shuffle必須保證發送端和接收端進程同時alive才能完成數據shuffle。同樣的,如果采用傳統落盤的方式來進行Network Shuffle的Retry,雖然能夠保證穩定性,但是可能會在Retry過程中由于磁盤IO引入比較大的性能overhead。為了解決這個問題,我們優化了分階段調度來解決快速穩定的容錯問題。

MaxCompute外表引擎升級到HQE

上面提到了我們通過SQE進行加速查詢MaxCompute外表,通過SQE查詢時性能可以做到很好,但是和Hologres交互時中間會有一層RPC 交互,在數據量較大時網絡會存在一定瓶頸。

因此我們基于Hologres已有的能力,在Hologres V0.10及以上版本我們對執行引擎進行了優化,支持Hologres HQE查詢引擎直讀MaxCompute 表,在性能上得到進一步的提升,較SQE方式讀取有 30%以上的性能提升。

這主要得益于以下幾個方面:

1) 節省了 SQE 和 Hologres中間 RPC 的交互,相當于節省一次數據的序列化和反序列化,在性能上得到進一步的提升。

2) 可以復用Hologres的Block Cache,這樣第二次查詢時無需訪問存儲,避免存儲IO,直接從內存訪問數據,更好的加速查詢。

3) 可以復用已有的Filter 下推能力,減少需要處理的數據量。

4) 在底層的IO層實現了預讀和Cache,更進一步加速Scan時的性能。


以下是某客戶某實際在線業務查詢的性能數據:

E2E運行時間

SQL Num

SQE查詢性能(平均響應)

HQE查詢性能(平均響應)

性能提升

2-10s

547

4,956 ms

2,609 ms

+47.34%

10-30s

207

16,757 ms

5,457 ms

+67.43%

30s以上

63

78,686 ms

12,666 ms

+83.90%

Total

817

13,631 ms

4,106 ms

+69.87%

執行817個SQL,總體性能提升70%,其中長 Query 提升80%以上。

說明:該優化目前已在Hologres V0.10上線,歡迎點擊查看文檔使用。

MaxCompute加速場景選擇

在Hologres中加速查詢MaxCompute有兩種方式:

1)創建外表(數據還是存儲在MaxCompute中),性能相比在MaxCompute中查詢會有2-5倍的提升

2)導入內表,性能相比外表約有10-100倍的提升

創建外表的方式其原理就是PostgreSQL中的Foreign Data Wrappers,通過外部訪問接口,來訪問存儲在外部的數據。建議您使用更方便的IMPORT FOREIGN SCHEMA 方式來創建外表,可以更好的簡化元數據的同步,無需關注字段類型映射等。

直接建外表并的方式實際上是利用查詢引擎的優化能力來提高效率的,但是沒有利用到Hologres的索引能力。所以當把外表導到內表的時候,可以根據查詢的方式指定內表的索引結構,通過這些索引能力帶來更高的查詢性能。這就是外表導入內表,內表的性能更好的原因,可以充分發揮數倉的索引優化能力。


目前這兩種方式主要對比如下:

場景/維度

性能

存儲成本

數據量

索引

便捷性

Hologres 內表

非常好

(SSD)

可支持PB級

可支持位圖、聚簇等多種索引

需要導入數據

Hologres 外表

較好

(HDD)

單次Query查詢200GB限制

只支持ODPS索引

無需遷移和導入數據

從上面對比可以看出:

  • 如果您是數據量很大、對性能有很高的要求時(比如100ms內等),對查詢延遲敏感,對查詢有SLA要求時,建議您將數據導入Hologres內表,進行查詢訪問。
  • 如果是臨時性的探索性分析,或者對延遲不敏感的內部業務,可以使用MaxCompute外表方式,減少數據移動。
  • 除上述場景外,您可以根據具體業務情況選擇合適的使用場景。

MaxCompute與Hologres的組合關系

上面介紹了很多Hologres外表查詢引擎如何加速查詢MaxCompute的場景,但并不是說所有類型的查詢都適合在Hologres的外表引擎上執行。

Hologres是針對交互式分析場景設計的同步的查詢引擎,面向的是大數據進,小數據出的場景,典型用在Serving和Analytics的場景。而MaxCompute是針對海量數據加工處理處理場景設計的異步的數據加工引擎,面向的是大數據進,大數據出的場景,典型用在ETL的場景。在ETL的場景,作業異步提交,IO接口針對Scan優化,計算過程需要節點的冗余設計支撐高可用,需要計算狀態落盤從而可以在失敗時自動重試,而這些都是Hologres不具備的能力。因此MaxCompute+Hologres組合在一起,形成了數據加工+服務的一站式體驗,減少了數據的隔離和冗余,可以為大數據數倉提供合理的解決方案架構,支撐實時離線一體化的開發體驗。

總結

Hologres通過SQE與MaxCompute深度整合,充分利用Hologres和MaxCompute的優勢,以極致性能為目標,直接就能加速查詢MaxCompute數據,讓用戶更方便高效的進行交互式分析,同時也降低了極大的分析成本,實現離線數倉服務一體化。


作者簡介:王奇(花名慧青),阿里巴巴技術專家,現從事交互式分析引擎Hologres研發工作。


后續我們將會陸續推出有關Hologres的技術底層原理揭秘系列,具體規劃如下,敬請持續關注!


  • Hologres揭秘:首次公開!阿里巴巴云原生實時數倉核心技術揭秘
  • Hologres揭秘:首次揭秘云原生Hologres存儲引擎
  • Hologres揭秘:深度解析高效率分布式查詢引擎
  • Hologres揭秘:高性能原生加速MaxCompute核心原理(本文)
  • Hologres揭秘:如何實現MaxCompute與Hologres數據同步速度快百倍
  • Hologres揭秘:如何支持高吞吐Upsert
  • Hologres揭秘:如何支持在線服務場景的超高QPS
  • Hologres揭秘:如何支持高并發查詢
  • Hologres揭秘:如何支持高可用架構
  • Hologres揭秘:如何支持資源隔離,支持多種負載
  • Hologres揭秘:向量檢索引擎Proxima原理與使用實踐
  • Hologres揭秘:讀懂執行計劃,查詢性能翻十倍
  • Hologres揭秘:分布式系統如何設計Shard與Table Group
  • Hologres揭秘:如何支持更多Postgres生態擴展包
  • Hologres揭秘:高吞吐寫入Hologres的N種姿勢
  • ......

原文鏈接:https://developer.aliyun.com/article/784755?

版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。

總結

以上是生活随笔為你收集整理的Hologres揭秘:高性能原生加速MaxCompute核心原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。