全部產品
Search
文件中心

Hologres:MaxCompute加速

更新時間:May 22, 2025

Hologres與MaxCompute資料來源底層無縫打通,深度融合,可雙向直讀對方儲存,一鍵映射對方中繼資料,大大提升資料訪問效率。本文為您介紹Hologres加速讀寫MaxCompute資料的相關能力及使用限制。

背景資訊

  • MaxCompute(MaxCompute)是一種快速、完全託管的EB級資料倉儲,致力於批量結構化資料的儲存和計算,提供海量資料倉儲的解決方案及分析建模服務。詳情請參見什麼是MaxCompute

  • Hologres是阿里巴巴自主研發的一站式即時資料倉庫引擎(Real-Time Data Warehouse),支援海量資料的即時寫入、即時更新、即時處理和即時分析。該引擎與MaxCompute原生深度整合,支援通過建立外部資料庫和外部表格的方式實現MaxCompute中繼資料的映射及查詢加速,無需匯入資料,即可通過一份儲存快速擷取查詢結果並提供對外服務。此外,Hologres採用標準PostgreSQL協議,能夠無縫對接PostgreSQL生態系統中的所有主流BI工具,詳情請參見BI分析及可視化

  • 自Hologres V3.1版本起,Hologres直讀MaxCompute資料已全面升級為2.0版本。該版本基於MaxCompute C++ Native SDK重構了底層直讀方式,進一步提升了Hologres訪問MaxCompute資料來源的效能和使用者體驗。直讀方式相較於基於開放儲存StorageAPI方式,因直讀Apsara Distributed File System儲存,MaxCompute側沒有額外的計算成本開銷,沒有限流,且在讀取效能上,有兩倍以上的效能優勢。

    說明

    使用新鏈路訪問MaxCompute Table需要添加GUC ,建議Session層級開啟,在查詢SQL前一起執行SET hg_experimental_external_catalog_routing = 'odps:common_table';命令。

情境介紹

使用外表加速查詢MaxCompute資料

在離線即時一體化方案中,最關鍵的是資料交換的簡化,最好無需移動資料,一份儲存即可支援離線與即時兩種計算方式。外部表格查詢有效地解決了這一問題。

您可通過CREATE EXTERNAL DATABASE的方式整庫映射MaxCompute內部Project下的Schema和表,也可以通過IMPORT FOREIGN SCHEMA方式大量建立外部表格,同時對於僅需要加速查詢少量MaxCompute表或者某張表中部分欄位的情境,我們也提供了CREATE FOREIGN TABLE的方式,您可以根據業務特性和情境,選擇合適的加速方式。

說明

從Hologres V3.0 版本開始,通過外部表格查詢MaxCompute資料取消了一次查詢掃描資料量不超過200 GB、分區數不超過512個的限制,方便您更好地使用該服務。同時,放寬限制的大查詢會消耗更多的Hologres執行個體資源,請您做好資源隔離,詳情請參見計算群組執行個體快速入門,或者對於偶發的大查詢可以使用Serverless模式,詳情請參見Serverless Computing

MaxCompute資料匯入Hologres

為了擷取更好的查詢效能,您也可以將資料匯入Hologres,再進行查詢。該方式可充分利用Hologres的索引能力和儲存最佳化來進一步加速查詢,來實現BI即時分析、高並發點查、多表複雜關聯查詢等情境,詳情請參見MaxCompute資料匯入Hologres

Hologres資料匯出至MaxCompute

在實際業務情境中,我們通常需要將Hologres即時寫入的資料與經過彙總分析後的結果回寫至MaxCompute,用來實現歷史資料Archive Storage、冷熱資料分層管理以及離線數倉資料回補等情境,您可通過INSERT INTO或INSERT OVERWRITE方式回寫資料至MaxCompute。詳情請參見匯出至MaxCompute

功能詳情

Hologres加速MaxCompute外部表格支援的具體能力如下:

Hologres版本號碼

支援的能力

描述

V3.1

Hologres直讀MaxCompute資料已全面升級為2.0版本。該版本基於MaxCompute C++ Native SDK重構了底層直讀方式,進一步提升了Hologres訪問MaxCompute資料來源的效能和使用者體驗。

與通過開放儲存StorageAPI的讀取方式相比,2.0版本的直讀機制可直讀Apsara Distributed File System儲存,MaxCompute端無需額外的計算成本開銷,且不存在限流現象。此外,在讀取效能方面,直讀方式具有超過有兩倍的效能優勢。

支援直讀MaxCompute Delta Table資料,當前僅支援全量訪問Delta Table最新Snapshot。

Delta Table是MaxCompute推出的增量資料表格式,支援分鐘級資料匯入,底層使用AliORC作為檔案格式,支援UPSERT語義,並能夠提供按照CDC(Change Data Capture)格式讀寫增量資料,詳情請參見Hologres訪問MaxCompute Delta Table

支援直讀MaxCompute動態脫敏資料。

MaxCompute動態脫敏功能,協助客戶在資料訪問或展示時即時隱藏或替換敏感性資料,以防止敏感性資料泄露。詳見資料動態脫敏

支援直讀MaxCompute Schema Evolution表。

支援的操作類型包括增加列、刪除列、修改列類型、調整列順序。

支援直讀訪問MaxCompute Cluster Table,包括使用DATETIME、TIMESTAMP、DECIMAL類型作為Cluster列的Range Cluster表。

V3.0.7

支援通過CREATE EXTERNAL DATABASE的方式完整映射MaxCompute Project下的Schema和表。

CREATE EXTERNAL DATABASE 用於在Hologres執行個體中建立一個外部資料庫,來載入外部資料源的中繼資料到Hologres,方便在一個系統中同時管理內、外部資料,實現湖倉一體架構下統一的中繼資料管理。詳情請參見CREATE EXTERNAL DATABASE

取消外部表格查詢一次查詢掃描資料量不超過200GB、分區數不超過512個的限制。

取消外部表格查詢限制,便於使用者使用Hologres加速查詢更大規模MaxCompute資料,同時提供計算群組執行個體、Serverless方式以實現資源隔離,從而避免大查詢消耗過多執行個體資源,影響其他查詢和寫入作業的執行。

V2.2.1

外部表格自動載入支援MaxCompute Schema(三層模型)。

Schema是MaxCompute介於專案和表、資源、函數之間的概念,對錶、資源及函數進行進一步歸類。外部表格自動載入詳情請參見外部表格自動載入(Auto Load)

外部表格自動載入支援中繼資料自動重新整理。

外部表格自動載入支援MaxCompute外部表格Schema Evolution。

在MaxCompute側執行過刪除列、修改列順序、修改列類型等操作的表。詳情請參見外部表格自動載入(Auto Load)

支援通過SLR訪問MaxCompute資料。

服務關聯角色(ServiceLinkedRole,簡稱SLR)是一種可信實體為阿里雲服務的RAM角色,旨在解決跨雲端服務的授權訪問問題,詳情請參見Hologres服務關聯角色

V2.1

支援對MaxCompute三層模型指定Schema下的表進行資料寫入。

Schema是MaxCompute介於專案和表、資源、函數之間的概念,對錶、資源及函數進行進一步歸類。詳情請參見Schema

支援通過HoloWeb可視化訪問MaxCompute三層模型指定Schema下的表。

詳情請參見基於HoloWeb建立MaxCompute外部表格

V2.0

升級MaxCompute加速引擎為HQE,改善相容性與穩定性。

V1.3

支援通過外部表格方式查詢MaxCompute的Transactional表。

支援讀取MaxCompute Schema Evolution狀態表。

在MaxCompute側執行過刪除列、修改列順序、修改列類型操作的表。

Hologres和MaxCompute之間互動支援雙簽名認證。

詳情請參見建立Hologres外部表格(雙簽名模式)

支援訪問MaxCompute BYOK方式加密的表。

詳情請參見查詢MaxCompute加密資料(BYOK模式)

V1.1.43

支援外部表格自動載入,實現MaxCompute外部表格的按需自動載入以及全量自動載入。

詳情請參見外部表格自動載入(Auto Load)

注意事項

通過Hologres加速查詢MaxCompute資料時,您需要注意如下內容:

  • 由於跨地區查詢存在較多網路不可靠因素,查詢穩定性無法保障,請確保Hologres和MaxCompute處於同一地區。

  • Hologres只能加速查詢MaxCompute的內部表,不能查詢MaxCompute的外部表格和VIEW。

  • MaxCompute的分區與Hologres無強映射關係,映射至Hologres之後均為普通欄位,但可通過分區條件過濾查詢。

  • 暫不支援讀取MaxCompute中Map、Struct類型的資料。

  • 暫不支援讀取MaxCompute側使用DATETIME、TIMESTAMP、DECIMAL類型作為Cluster列的Range Cluster表資料。

  • 僅支援讀取MaxCompute標準儲存資料,不支援讀取低頻儲存和長期儲存資料。