全部產品
Search
文件中心

Hologres:計算群組管理

更新時間:Nov 11, 2025

本文為您介紹查看、建立、刪除以及擴縮容計算群組等管理命令。

注意事項

  • 僅Hologres V2.0.4及以上版本的執行個體支援使用計算群組模式,如果您的執行個體是V2.0.4以下版本,請聯絡支援人員升級執行個體。

  • 每個執行個體最多可以建立10個計算群組,每個計算群組資源最小32 CU,最大512 CU。

    • 自V3.0.10版本起,計算群組的最大規格調整至1024 CU。

    • 自V3.0.27版本起,取消計算群組的最大規格限制。

  • 新購執行個體時,系統預設會有一個名稱為init_warehouse的預設計算群組。一個執行個體只有一個預設計算群組,且預設計算群組無法刪除,但是可以修改。不支援使用SQL命令進行預設計算群組的停止或恢複操作。預設情況下,所有使用者都有使用預設計算群組的許可權。

  • 所有計算群組都可以執行DDL。

  • 計算群組型執行個體不支援配置資源群組(即將下線),資源群組詳情請參見資源群組管理。推薦通過劃分多個計算群組以實現資源隔離。

  • 計算群組執行個體計費相關資訊請參見計費概述

建立計算群組

注意事項

  • 僅支援使用阿里雲帳號或者RAM使用者建立計算群組,需要具備執行個體的Superuser許可權。

  • 由於建立計算群組的過程是非同步,執行建立計算群組SQL後,並不代表計算群組建立完成,需要您使用hg_get_warehouse_status函數查詢計算群組的狀態。

操作方式

(推薦)介面操作

  1. 登入Hologres管理主控台,在頂部功能表列左側,選擇相應的地區。

  2. 在左側導覽列選擇執行個體列表,單擊目標執行個體ID進入執行個體詳情頁。

  3. 在執行個體詳情頁的左側導覽列單擊計算群組管理,切換至計算群組資源管理頁簽。

  4. 單擊新增計算群組,在新增計算群組對話方塊中配置如下參數,並單擊確認

    參數名

    說明

    計算群組名稱

    待建立的計算群組名稱。

    計算群組單Cluster規格

    計算群組中,每個Cluster的預留資源量。

    計算群組預留Cluster數

    計算群組初始狀態下的Cluster數,預留Cluster的計算資源需要從執行個體預留資源中擷取。

    更多資訊請參見資源彈性概述

SQL命令

  • 命令格式

    CALL hg_create_warehouse ('<warehouse_name>', <cu>);
  • 參數說明

    參數

    類型

    說明

    warehouse_name

    TEXT

    建立的計算群組名稱,命名要求:

    • 僅支援數字、英文字母和底線的組合。

    • 最長支援127個字元。

    cu

    INTEGER

    計算群組的CU數。

    • 最大值:512。

    • 最小值:32。

    • 步長:16。

刪除計算群組

注意事項

  • 僅支援使用阿里雲帳號或者RAM使用者刪除計算群組,需要具備執行個體的Superuser許可權。

  • 執行個體的預設計算群組不支援刪除。

  • Table Group的主計算群組不支援使用SQL命令刪除。

  • 由於刪除計算群組的過程是非同步,執行SQL後,並不代表計算群組刪除完成,需要您使用hg_get_warehouse_status函數查詢計算群組的狀態。

操作方式

(推薦)介面操作

  1. 登入Hologres管理主控台,在頂部功能表列左側,選擇相應的地區。

  2. 在左側導覽列選擇執行個體列表,單擊目標執行個體ID進入執行個體詳情頁。

  3. 在執行個體詳情頁的左側導覽列單擊計算群組管理,切換至計算群組資源管理頁簽。

  4. 在目標計算群組的操作列單擊停止,確認並停止計算群組。

  5. 計算群組停止後,可單擊操作列的刪除,以刪除計算群組。

SQL命令

  • 命令格式

    CALL hg_drop_warehouse ('<warehouse_name>');
  • 參數說明

    參數

    類型

    說明

    warehouse_name

    TEXT

    需要刪除的計算群組名稱。

計算群組變更配置

許可權說明

  • V3.0.28版本前,僅支援使用阿里雲帳號或者RAM使用者執行計算群組變更配置操作。V3.0.28版本起,支援RamRole(即STS帳號)執行計算群組變更配置操作。

  • 執行計算群組變更配置操作需要具備以下許可權:

    • RAM角色許可權:AliyunHologresWarehouseFullAccess或AliyunHologresFullAccess許可權。

    • 執行個體內部的Superuser許可權。

計算群組彈性變更配置原理請參見資源彈性概述

計算群組縱向擴容(Scale up)

使用說明

  • 擴容計算群組前,需要先在管控台上擴容執行個體的資源,確保執行個體有足夠的未分配資源。當執行個體資源調整完畢後,系統會拉起新的Pod,但是此時Pod上並未載入任何Shard的中繼資料,所以擴容出來的Pod不會參與計算,執行個體擴容的操作不會影響計算群組的查詢和寫入。

  • 執行個體擴容完成,且有足夠的未分配資源後,可以繼續使用該部分未分配資源,擴容計算群組資源。如果執行個體未分配資源不足,則無法完成計算群組擴容。

    • 自Hologres V2.2版本起,如果計算群組有空Pod,系統會自動執行Rebalance操作,使新的Pod載入Shard的中繼資料。在Rebalance完成後,才能使用新擴容的資源,Rebalance時查詢和寫入會中斷15秒。因此,如果您的執行個體為V2.2及以上版本,擴容計算群組後,無需手動執行Rebalance操作。如果您的執行個體版本低於V2.2,則需手動執行Rebalance操作。

    • Hologres V3.0.28版本起,計算群組擴容期間,計算群組的查詢和寫入不會中斷,但Flink任務可能失敗重試。

    說明

    擴容期間,多行DML事務仍會中斷,包括顯式開啟hg_experimental_enable_transaction參數的DML事務、原生INSERT OVERWRITE文法,以及Dynamic Table增量重新整理等。

操作方式

(推薦)介面操作

  1. 登入Hologres管理主控台,在頂部功能表列左側,選擇相應的地區。

  2. 在左側導覽列選擇執行個體列表,單擊目標執行個體ID進入執行個體詳情頁。

  3. 在執行個體詳情頁的左側導覽列單擊計算群組管理,切換至計算群組資源管理頁簽。

  4. 單擊目標計算群組操作列的調整配置,增加計算群組單Cluster規格至目標資源量,並單擊確認,即可完成縱向擴容。

  5. (可選)待執行個體資源擴容完畢後,可單擊目標計算群組操作列的Rebalance,按需進行Rebalance,使Shard重新分配到增加擴容的pods上。

SQL命令

  1. 擴容計算群組資源,操作文法如下:

    CALL hg_alter_warehouse ('<warehouse_name>',<cu>);

    參數說明:

    參數

    類型

    說明

    warehouse_name

    TEXT

    需要調整的計算群組名稱。

    cu

    INTEGER

    計算群組的CU數。

    • 最大值:512。

    • 最小值:32。

    • 步長:16。

  2. 查詢計算群組的狀態。

    由於調整計算群組計算資源的過程是非同步,執行SQL後,並不代表計算群組計算資源調整完成,需要您使用hg_get_warehouse_status函數查詢計算群組的狀態。

    select hg_get_warehouse_status('<warehouse_name>');

    返回結果為Running,即計算群組在Running狀態下,繼續下面步驟。

  3. Shard重分布。

    使用如下命令讓Shard重新分配到增加擴容的計算群組上。

    SELECT hg_rebalance_warehouse ('<warehouse_name>');
  4. 查詢計算群組的狀態。

    由於rebalance的過程是非同步,執行SQL後,並不代表rebalance調整完成,需要您使用如下命令查詢計算群組的狀態。

    • hg_get_rebalance_warehouse_status函數返回當前計算群組的狀態:

      SELECT hg_get_rebalance_warehouse_status ('<warehouse_name>');

      返回DONE即表示成功。

    • hg_wait_until_rebalance_warehouse_done函數可以直到指定計算群組處於Running狀態時,再返回結果:

      select hg_wait_until_rebalance_warehouse_done('<warehouse_name>',<timeout_seconds>);

      其中timeout_seconds:非必填。代表返回逾時時間,單位為秒,類型為INTEGER。

      返回DONE即表示成功。

樣本:使用如下SQL為read_warehouse_1計算群組擴容至64CU。

-- 增加計算群組的資源
CALL hg_alter_warehouse ('read_warehouse_1',64);

-- 等待計算群組擴容完畢
SELECT wait_until_warehouse_running ('read_warehouse_1');

-- rebalance
SELECT hg_rebalance_warehouse ('read_warehouse_1');

-- 等待rebalance完畢
SELECT hg_wait_until_rebalance_warehouse_done ('read_warehouse_1');

計算群組縱向縮容(Scale down

使用說明

  • 縮容時Hologres系統會先做Shard的Rebalance,將準備下線的Pod上的Shard遷移到其他Pod上。

    • Hologres V3.1版本前,計算群組縮容期間,Rebalance中查詢和寫入會中斷15秒。Rebalance完成後,直接下線多餘的Pods。

    • (Beta)Hologres V3.1版本起,最佳化了計算群組縮容時的Pod下線邏輯。計算群組縮容期間,計算群組中主要的查詢和寫入不會中斷,Pod上的串連會隨Pod下線出現一次秒級閃斷,Flink任務可能失敗重試。但如果觸發縮容時,計算群組中正在運行某條大查詢或大寫入,並且需要繼續運行60分鐘以上,則該任務將在縮容後第60分鐘報錯。

    說明

    縮容期間,多行DML事務仍會中斷,包括顯式開啟hg_experimental_enable_transaction參數的DML事務、原生INSERT OVERWRITE文法,以及Dynamic Table增量重新整理等。

  • 縮容後,計算資源會歸屬到執行個體未分配資源中,您可以繼續使用該資源建立計算群組或擴容其他計算群組,也可以縮容執行個體以釋放該資源。

操作方式

(推薦)介面操作

操作步驟請參考計算群組縱向擴容,減少計算群組單Cluster規格至目標資源量,即可完成縱向縮容。

SQL命令

  1. 縮容計算群組資源,操作文法如下:

    CALL hg_alter_warehouse ('<warehouse_name>',<cu>);

    參數說明:

    參數

    類型

    說明

    warehouse_name

    TEXT

    需要調整的計算群組名稱。

    cu

    INTEGER

    計算群組的CU數。

    • 最大值:512。

    • 最小值:32。

    • 步長:16。

  2. 查詢計算群組的狀態。

    由於調整計算群組計算資源的過程是非同步,執行SQL後,並不代表計算群組計算資源調整完成,需要您使用hg_get_warehouse_status函數查詢計算群組的狀態。

    select hg_get_warehouse_status('<warehouse_name>');

    返回結果為running,即計算群組狀態為running狀態。

計算群組橫向增加Cluster(Scale out)

使用說明

詳情請參見Scale up使用說明

操作步驟

  1. 登入Hologres管理主控台,在頂部功能表列左側,選擇相應的地區。

  2. 在左側導覽列選擇執行個體列表,單擊目標執行個體ID進入執行個體詳情頁。

  3. 在執行個體詳情頁的左側導覽列單擊計算群組管理,切換至計算群組資源管理頁簽。

  4. 單擊目標計算群組操作列的調整配置,增加計算群組預留Cluster數至目標數量,並單擊確認,即可完成橫向增加Cluster操作。

計算群組橫向減少Cluster(Scale in)

使用說明

詳情請參見Scale down使用說明

操作步驟

  1. 登入Hologres管理主控台,在頂部功能表列左側,選擇相應的地區。

  2. 在左側導覽列選擇執行個體列表,單擊目標執行個體ID進入執行個體詳情頁。

  3. 在執行個體詳情頁的左側導覽列單擊計算群組管理,切換至計算群組資源管理頁簽。

  4. 單擊目標計算群組操作列的調整配置,減少計算群組預留Cluster數至目標數量,並單擊確認,即可完成橫向減少Cluster操作。

計算群組營運操作

查看計算群組

  • 命令格式

    • 系統資料表hologres.hg_warehouses存放了當前執行個體所有計算群組的資訊,您可以使用如下SQL查看當前執行個體下所有的計算群組的資訊。

      SELECT * FROM hologres.hg_warehouses;
    • 使用如下SQL查看當前使用的計算群組,系統將會返回當前使用的計算群組名稱。

      SELECT current_warehouse();
  • 參數說明

    系統資料表hologres.hg_warehouses中包含的欄位資訊如下:

    欄位

    欄位類型

    說明

    樣本值

    warehouse_id

    INTEGER

    計算群組ID,是計算群組的唯一ID。

    1

    warehouse_name

    TEXT

    計算群組名稱。

    init_warehouse

    cpu

    INTEGER

    計算群組的CPU(單位Core)。

    32

    mem

    INTEGER

    計算群組的記憶體(單位GB)。

    128

    cluster_min_count

    INTEGER

    計算群組的最小分區數量。

    1

    cluster_max_count

    INTEGER

    計算群組的最大分區數量。

    1

    target_status

    INTEGER

    計算群組的目標狀態,由於變更計算群組狀態是非同步,例如執行建立計算群組的SQL,系統會立即返回SQL執行結果,但返回SQL結果時,並非計算群組已經建立成功,系統會在後台非同步建立計算群組,這裡的狀態記錄了計算群組最終需要達到的狀態,有如下狀態:

    • 1:運行中。

    • 2:手動停機。

    1

    status

    INTEGER

    計算群組目前狀態,有如下狀態:

    • 0:初始化。

    • 1:運行中。

    • 2:手動停機。

    • 3:處理失敗,如果狀態為處理失敗,status_detail欄位會顯示具體的原因。

    • 4:處理中。

    1

    status_detail

    TEXT

    計算群組狀態詳情。

    is_default

    BOOLEAN

    是否是預設計算群組,有如下取值:

    • t:是預設計算群組。

    • f:不是預設計算群組。

    t

    config

    TEXT

    計算群組配置。

    comment

    TEXT

    計算群組備忘。

停止計算群組

注意事項

  • 停止計算群組需要具備執行個體的Superuser許可權。

  • 若計算群組對應的Table Group有從計算群組,那麼該計算群組無法被停止。例如計算群組A是Table Group A的主計算群組,負責向Table Group A中的表寫入資料,計算群組B是Table Group A的從計算群組。此時暫時不支援停止計算群組A。

  • 由於停止計算群組的過程是非同步,執行SQL後,並不代表計算群組停止完成,需要您使用hg_get_warehouse_status函數查詢計算群組的狀態。

操作方式

(推薦)介面操作

  1. 登入Hologres管理主控台,在頂部功能表列左側,選擇相應的地區。

  2. 在左側導覽列選擇執行個體列表,單擊目標執行個體ID進入執行個體詳情頁。

  3. 在執行個體詳情頁的左側導覽列單擊計算群組管理,切換至計算群組資源管理頁簽。

  4. 在目標計算群組的操作列單擊停止,確認並停止計算群組。

SQL命令

  • 命令格式

    CALL hg_suspend_warehouse ('<warehouse_name>');
  • 參數說明

    參數

    類型

    說明

    warehouse_name

    TEXT

    需要停止的計算群組名稱。

恢複計算群組

注意事項

  • 恢複計算群組需要具備執行個體的Superuser許可權。

  • 由於恢複計算群組的過程是非同步,執行SQL後,並不代表計算群組停止完成,需要您使用hg_get_warehouse_status函數查詢計算群組的狀態。

操作方式

(推薦)介面操作

  1. 登入Hologres管理主控台,在頂部功能表列左側,選擇相應的地區。

  2. 在左側導覽列選擇執行個體列表,單擊目標執行個體ID進入執行個體詳情頁。

  3. 在執行個體詳情頁的左側導覽列單擊計算群組管理,切換至計算群組資源管理頁簽。

  4. 在目標計算群組的操作列單擊啟動,確認並恢複計算群組。

SQL命令

  • 命令格式

    CALL hg_resume_warehouse ('<warehouse_name>');
  • 參數說明

    參數

    類型

    說明

    warehouse_name

    TEXT

    需要恢複的計算群組名稱。

重啟計算群組

注意事項

  • 重啟計算群組需要具備執行個體的Superuser許可權。

  • 由於重啟計算群組的過程是非同步,執行SQL後,並不代表計算群組重啟完成,需要您使用hg_get_warehouse_status函數查詢計算群組的狀態。

操作方式

(推薦)介面操作

  1. 登入Hologres管理主控台,在頂部功能表列左側,選擇相應的地區。

  2. 在左側導覽列選擇執行個體列表,單擊目標執行個體ID進入執行個體詳情頁。

  3. 在執行個體詳情頁的左側導覽列單擊計算群組管理,切換至計算群組資源管理頁簽。

  4. 在目標計算群組的操作列單擊重啟,確認並重啟計算群組。

SQL命令

  • 命令格式

    CALL hg_restart_warehouse('<warehouse_name>');
  • 參數說明

    參數

    類型

    說明

    warehouse_name

    TEXT

    需要重啟的計算群組名稱。

擷取計算群組狀態

  • 命令格式

    • 使用如下SQL擷取計算群組的目前狀態:

      select hg_get_warehouse_status('<warehouse_name>');
    • 由於Warehouse 的建立、擴縮容等都是非同步執行的,有時候需要變更計算群組狀態後再進行一些操作。此時可以使用wait_until_warehouse_running函數,該函數可以直到指定計算群組處於Running狀態時,再返回結果,命令如下:

      select wait_until_warehouse_running('<warehouse_name>',<timeout_seconds>);
  • 參數說明

    參數

    類型

    說明

    warehouse_name

    TEXT

    需要擷取狀態的計算群組名稱。

    timeout_seconds

    INTEGER

    返回逾時時間,單位秒。非必填。

  • 使用樣本

    使用如下SQL實現每次從表org_data向表res_data匯入資料時,先擴容計算群組,再匯入資料,然後縮容計算群組:

    -- warehouse_1擴容至64CU
    CALL hg_alter_warehouse ('warehouse_1',64);
    
    -- 等待warehouse_1擴容完成
    SELECT wait_until_warehouse_running('warehouse_1');
    
    -- 寫入資料
    INSERT INTO res_data SELECT * FROM org_data;
    
    -- warehouse_1縮回32CU
    CALL hg_alter_warehouse ('warehouse_1',32);

修改計算群組名稱

注意事項

修改計算群組名稱需要具備執行個體的Superuser許可權。

操作方式

(推薦)介面操作

  1. 登入Hologres管理主控台,在頂部功能表列左側,選擇相應的地區。

  2. 在左側導覽列選擇執行個體列表,單擊目標執行個體ID進入執行個體詳情頁。

  3. 在執行個體詳情頁的左側導覽列單擊計算群組管理,切換至計算群組資源管理頁簽。

  4. 在目標計算群組的計算群組名稱列單擊image表徵圖,修改計算群組名稱。

SQL命令

  • 命令格式

    CALL hg_rename_warehouse('<org_warehouse_name>','<new_warehouse_name>');
  • 參數說明

    參數

    類型

    說明

    org_warehouse_name

    TEXT

    需要修改的計算群組名稱。

    new_warehouse_name

    TEXT

    計算群組的新名稱。

進階操作

計算群組均衡分區(Rebalance)

Hologres執行個體在運行時,每個計算群組的Worker節點會均勻地載入資料分區(Shard)的中繼資料。但是在某些情境下(例如觸發了快速恢複、擴容等),資料分區在Worker節點上分布不均,此時就需要觸發均衡分區操作,使系統主動的重新分配資料分區,最終讓計算群組的Worker節點均勻載入Shard的中繼資料。

  • 許可權說明

    觸發均衡分區操作需要具備執行個體的Superuser許可權。

  • 注意事項

    • Hologres從 V2.1版本開始,如果計算群組內發現有空的Worker節點(未載入任何Shard),計算群組會自動觸發Rebalance。

    • Hologres從 V2.2版本開始,系統支援對計算群組Rebalance期間執行的查詢(SELECT)自動重試,使得查詢能在適當延長執行時間後順利完成,不會出現如ERROR: fail to execute query internal error: Get rundown is not allowed in recovering state.異常報錯。

  • 命令格式

    SELECT hg_rebalance_warehouse ('<warehouse_name>');
  • 參數說明

    參數

    類型

    說明

    warehouse_name

    TEXT

    需要觸發均衡分區的計算群組名稱。

  • 返回結果

    觸發均衡分區操作後,有如下返回結果:

    • true:表示Rebalance觸發成功,系統開始進行Rebalance操作。

    • false:表示無需Rebalance。

    • 報錯:表示Rebalance觸發失敗。例如存在Pod故障時,觸發Rebalance操作會報錯。

    說明
    • 執行Rebalance過程中,系統會計算是否需要Rebalance,最終達到均衡狀態,即每個Worker載入的Shard數量差異小於等於1。例如:

      • 如果有2個Worker,2個Shard,那麼最終每個Worker都會分到1個Shard。

      • 如果有2個Worker,3個Shard,那麼最終其中1個Worker會分到1個Shard,另一個Worker會分到2個Shard。

    • Rebalance操作通常需要2~3分鐘,執行時間長度和計算群組中Table Group的數量有關,Table Group越多,Rebalance耗時越長。Rebalance過程中您的寫入大約會中斷15秒。

    • 由於Rebalance是非同步執行,您可以使用如下SQL查看執行進度:

      SELECT hg_get_rebalance_warehouse_status('<warehouse_name>');

      返回結果為DOING表示正在執行Rebalance操作;返回結果為DONE表示Rebalance操作已完成。

設定計算群組的逾時時間長度

您可以通過設定statement_timeout參數,實現Session層級或資料庫層級的逾時時間長度設定,詳情請參見GUC參數

針對計算群組,可以執行如下命令,為計算群組設定逾時時間長度。該配置優先順序低於上述Session層級和資料庫層級配置,因此需要先取消資料庫層級的配置。

-- 取消資料庫層級設定
ALTER DATABASE <db_name> RESET statement_timeout;

-- 設定計算群組的逾時時間長度為600s
CALL hg_alter_warehouse ('<warehouse_name>', <cu>, '{"configs":{"gucs":{"statement_timeout":"600000"}}}');