全部產品
Search
文件中心

Hologres:計算資源管理最佳實務

更新時間:Nov 11, 2025

本文為您介紹Hologres計算資源管理最佳實務,協助您更高效、更智能、更具性價比地承載業務複雜多樣的讀寫請求。

背景資訊

本文以某電商公司資料中台為例,中台團隊負責資料加工,多個業務團隊均需資料查詢。各團隊業務情境、業務特點如下。

團隊

職責

業務情境

業務特點

資料中台

負責全部業務團隊的資料寫入與加工,含即時鏈路、近即時鏈路和離線鏈路。

即時/近即時鏈路:

  • Flink/DataWorksData Integration即時寫入ODS層。

  • Flink即時加工DWD、DWS層。

  • Hologres Dynamic Table近即時加工DWD、DWS層。

離線鏈路:

  • MaxCompute T+1寫入ODS層。

  • Hologres T+1加工DWD、DWS層。

  • 每晚為即時/近即時鏈路資料加工的流量波峰時段。

  • 離線鏈路每天淩晨定時調度,存在大表、小表加工。

分析業務方

面向營運、門店和銷售等多類角色,負責公司銷售資料分析。

  • 主要分析渠道為BI資料大屏,各類角色分別需訪問不同層級的資料大屏。

  • 營運人員自助分析。

  • 通常工作時間為查詢波峰,但夜間也可能存在非預期查詢波峰。

  • 自助分析單個請求可能產生較大開銷。

  • 大屏數量多,其中有的任務開銷大,有的任務開銷小。

  • 不同角色查看大屏的效能需求有差異。

推薦業務方

面向智能推薦業務,負責商品千人千面推薦。

線上推薦:基於主鍵查詢使用者特徵,下遊推薦演算法基於使用者特徵返回推薦商品。

每晚為使用者使用電商平台流量波峰時段。

最佳化原理

如果業務請求始終穩定,則僅需購買一定數量的訂用帳戶計算資源,即可滿足業務負載需要。但大部分情況下,業務均存在高並發請求波峰,或存在極端大任務,導致計算資源持續打滿,影響執行個體穩定性。此時,可按如下決策樹選擇資源最佳化方案。

  • 極端大任務(例如:大量歷史資料回刷、無過濾條件的全表掃描、10+表的複雜關聯查詢、多層子查詢嵌套的複雜計算等)推薦開啟自適應Serverless計算,直接使用Serverless Computing解決,避免影響本執行個體資源正在執行的其他Query。

  • 經過Fixed Plan最佳化的請求不支援使用Serverless Computing資源執行,也不進入查詢隊列(即不支援限流),因此只能通過擴容計算群組解決,其中,寫入請求波峰無法通過計算群組自動彈性解決。

  • 其他請求可根據業務延時需求、波峰時段特徵、請求類型特徵來選用合適的資源最佳化方案。

  • 對於使用Serverless Computing的業務請求,可參見資源管理最佳化實踐,選取合適的使用方式。

資源管理最佳化實踐

將從以下業務痛點出發,為您推薦最優的解決方案。

痛點一:不同業務之間資源擠占,互相影響

資料中台的資料加工任務、下遊各業務方的資料查詢任務可能會互相擠占對方的計算資源,受到其他業務的影響。

推薦使用Hologres計算群組型執行個體,建立如下計算群組,以保證不同團隊之間負載隔離。計算群組型執行個體請參見計算群組執行個體架構

  • 主計算群組(init_warehouse):中台團隊使用,負責資料寫入與加工。

  • 唯讀計算群組1:分析業務方使用。

  • 唯讀計算群組2:推薦業務方使用。

痛點二:業務有固定高峰,資源擴縮容複雜

本文樣本情境中,如下業務情境可能存在該難題,可通過分時彈性(Beta)功能,對計算群組定時擴、縮容。相比於全部使用訂用帳戶計算資源的方案,分時彈性每天彈出16小時內即可降低成本。

  • 資料中台的即時寫入任務:

    • 即時寫入任務會經Fixed Plan最佳化,僅支援計算群組擴縮容的方式解決資源問題。

    • 每晚為流量波峰時段,可配置分時彈性,每晚對主計算群組定時擴縮容。

  • 分析業務方的BI分析任務:結合流量波峰時段(白天工作時間)特點,配置分時彈性,對唯讀計算群組進行定時擴縮容。

  • 推薦業務方的線上推薦任務:

    • 線上推薦任務屬於點查,會經Fixed Plan最佳化,只可選擇對計算群組擴縮容的方式解決資源問題。

    • 結合流量波峰時段(每晚),可配置分時彈性,每晚對唯讀計算群組定時擴縮容。

痛點三:大任務OOM頻率高並長期佔用資源,影響其他任務

本文樣本情境中,如下業務情境可能存在“大任務”難題:

  • 資料中台的T+1離線加工任務:單任務的計算量可能非常大,任務本身容易OOM,還可能長期佔用計算資源,阻塞其他任務。

    • 方案一(穩定性優先):所有T+1離線加工任務均使用Serverless Computing資源執行,可通過SQL層級配置,或對執行離線鏈路的使用者層級配置。詳情請參見使用Serverless Computing資源執行讀寫任務

    • 方案二(穩定性與成本兼顧):如果離線鏈路存在大小不一的表的寫入與加工任務,可以將小型任務保留在主計算群組中執行。

  • 資料中台的Dynamic Table近即時加工任務:每張表每分鐘執行一次增量重新整理任務,任務計算量與增量資料量相關,存在不穩定因素。

    • 方案一(穩定性優先):Dynamic Table近即時加工任務均使用Serverless Computing資源執行。詳情請參見CREATE DYNAMIC TABLE

    • 方案二(穩定性與成本兼顧):將Dynamic Table中大表或存在較巨量資料量波動的表的重新整理任務使用Serverless Computing執行,其餘任務保持在主計算群組中執行。

  • 分析業務方的BI分析大屏:大屏數量多,任務存在大小差異,大任務可能長期佔用計算資源,從而阻塞小任務。

    • 方案一(穩定性、成本與開發量兼顧):DB層級或使用者層級(大屏資料來源對應使用者)開啟自適應Serverless計算功能,可以將大屏中的“大任務”自動指向Serverless資源,小任務仍在本計算群組中執行。

    • 方案二(穩定性與成本兼顧):提取大屏中“大任務”的SQL指紋(具體看板的SQL指紋通常不變),形成一個查詢隊列,配置該查詢隊列的請求均使用Serverless資源執行。該方案可通過如下流程實現:

      1. 測試大屏,使Hologres執行完大屏中的全部請求。

      2. 在Hologres慢Query日誌中,按cpu_time_ms欄位篩選出“大任務”,提取對應的digest欄位,即SQL指紋。詳情請參見慢Query日誌查看與分析

      3. 將這些“大任務”的SQL指紋配置成一個單獨的查詢隊列。詳情請參見配置分類器匹配規則

      4. 配置該查詢隊列的請求均使用Serverless資源執行。詳情請參見使用Serverless Computing資源執行查詢隊列的查詢

    • 方案三(成本優先):所有請求均優先在本計算群組中執行,同時對查詢隊列開啟“大查詢自動重跑”功能,使用Serverless資源重跑逾時查詢和OOM查詢,同時使用者對逾時和OOM無感知。詳情請參見大查詢控制

痛點四:突發性大任務直接打滿資源集區,影響系統穩定性

分析業務方的營運人員自助分析任務:該類任務可能出現突發性大任務,單個請求可能產生較大開銷,影響執行個體穩定性。

  • 方案一(穩定性優先):使用者層級配置該自助分析人員的全部請求均使用Serverless Computing執行,詳情請參見使用者層級配置

  • 方案二(穩定性與成本兼顧):使用者層級開啟自適應Serverless計算功能,可以將該使用者發起的“大任務”自動指向Serverless資源,小任務仍在本計算群組中執行。

  • 方案三(成本優先):所有請求均優先在本計算群組中執行,同時對查詢隊列開啟“大查詢自動重跑”功能,使用Serverless資源重跑逾時查詢和OOM查詢,同時使用者對逾時和OOM無感知。詳情請參見大查詢控制

痛點五:不同情境資料時效性、穩定性要求不同

分析業務方的BI分析大屏:企業多類角色(資料開發人員、營運人員、銷售人員、企業高層等)均可能訪問大屏,同時訪問大屏的渠道也有差異(對客展示、內部查看等)。

  • 針對效能要求高的角色/情境:

    • 方案一(穩定性優先):如果該情境請求量穩定,可為其單獨建立計算群組以承載其請求。

    • 方案二(穩定性與成本兼顧):可使用上文方案一(穩定性優先),全部請求均通過Serverless Computing執行,或使用自適應Serverless計算功能。

  • 針對可接受一定延時的角色/情境:

    • 如果大屏的請求類型固定,比如該類角色只會訪問一個報表,可在充分壓測計算群組對該報表的承載能力後,配置手動限流(基於查詢隊列配置固定數量的並發度上限),詳情請參見建立查詢隊列

    • 如果大屏的請求類型不固定,比如該類角色數量多且報表數量也多,可開啟自動限流功能。Hologres會根據負載情況自動調整查詢隊列的並發度上限,詳情請參見自動限流(Beta)

痛點六:突發大量請求,影響計算群組穩定性

分析業務方夜間也可能存在非預期查詢波峰。該類波峰無分類特徵(使用者、表、SQL均不確定),難以分類路由到Serverless Computing中。也無分時特徵,無法通過分時彈性提前自動擴容。

  • 方案:開啟計算群組自動彈性功能,計算群組負載高時自動橫向擴充增加計算資源,負載低時自動減少計算資源,參見Multi-cluster與自動彈性(Beta)

進階操作

配置Serverless Computing中任務的優先順序

由於多個業務均需使用Serverless Computing計算資源,可以在使用者層級對不同使用者發送至Serverless Computing中的請求配置優先順序。詳情請參見設定Serverless Computing任務的優先順序。樣本如下:

  • 效能要求高的角色的查詢請求:配置優先順序為5,Serverless資源緊張時優先執行。

  • 離線T+1寫入與加工任務:配置優先順序為1,Serverless資源緊張時排隊等待。

  • 其他任務:使用預設優先順序3。

配置Serverless Computing日累計用量限制

由於多個業務均可使用Serverless Computing計算資源,可能產生額外費用。Hologres支援配置執行個體每日可用的Serverless Computing資源量限制,同時支援對不同使用者配置不同的上限,可協助使用者靈活高效地使用Serverless計算資源。詳情請參見日累計用量限制

配置唯讀計算群組的查詢高可用

針對唯讀計算群組,尤其是唯讀計算群組承載的線上推薦業務,推薦配置Shard層級多副本,可實現在有計算節點Failover時查詢無損。詳情請參見單一實例Shard級多副本