全部產品
Search
文件中心

Hologres:計算群組資料訪問授權

更新時間:Nov 06, 2025

本文為您介紹Hologres中如何為計算群組授予資料的存取權限。

注意事項

  • 使用計算群組A建立Table Group時,Table Group的主計算群組預設為計算群組A。

  • 計算群組之間記憶體狀態為毫秒級的自動即時同步。當使用主計算群組寫入時,系統會自動將主計算群組記憶體中的資料同步給從計算群組,從計算群組的CPU和記憶體也會有少量開銷。同時建議不同計算群組的規格配置差異不要太過明顯,通常不建議超過4倍。

  • 僅執行個體的預設計算群組支援將資料寫入外部表格。

  • Hologres V2.0版本,計算群組對資料讀寫任務的支援情況為:

    • 載入了Table Group的計算群組(Follower計算群組),僅可對Table Group中的表執行資料讀任務,不支援寫。

    • 被設定為Table Group的主計算群組(Leader計算群組),可對Table Group中的表執行資料讀寫任務。

    • 未載入Table Group的計算群組,不可讀寫對應Table Group中的資料。

  • Hologres V4.0版本升級計算群組執行個體架構,對資料讀寫任務的支援情況如下:

    • 需開啟GUC hg_warehouse_enable_use_local_resource,詳見GUC參數

    • 針對不經Fixed Plan最佳化的讀寫任務,無需計算群組載入Table Group,即可執行。

    • 可經Fixed Plan最佳化的讀寫任務請參見Fixed Plan加速SQL執行

    • 所有寫入任務(即時寫入、批量寫入)仍支援通過DML自動路由功能,路由到Leader計算群組中執行。

任務類型/計算群組類型

Leader計算群組

Follower計算群組
(載入Table Group)

其他計算群組
(未載入Table Group)

即時寫入
(經Fixed Plan最佳化的寫入任務)

支援

不支援

不支援

批量寫入
(未經Fixed Plan最佳化的寫入任務)

支援

支援
(4.0能力,需開啟GUC)

支援
(4.0能力,需開啟GUC)

Key/Value點查、Prefixscan
(經Fixed Plan最佳化的讀任務)

支援

支援

不支援

其他讀任務
(未經Fixed Plan最佳化的讀任務)

支援

支援

支援
(4.0能力,需開啟GUC)

查看計算群組訪問Table Group許可權

  • 命令格式

    您可以使用如下SQL查看當前執行個體下所有計算群組的Table Group許可權資訊。

    SELECT * FROM hologres.hg_warehouse_table_groups;
  • 參數說明

    hg_warehouse_table_groups表包含的欄位資訊如下:

    欄位

    欄位類型

    說明

    樣本

    warehouse_name

    TEXT

    計算群組名稱。

    init_warehouse

    warehouse_id

    INTEGER

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

    1

    database_name

    TEXT

    資料庫名稱。

    wh_demo

    tablegroup_name

    TEXT

    Table Group名稱。

    wh_demo_tg_default

    leader

    BOOLEAN

    該計算群組是否為該Table Group的主計算群組。

    t

    replica_count

    INTEGER

    Replica數。

    1

計算群組載入Table Group(設定Table Group的Follower計算群組)

計算群組載入Table Group,即將計算群組設為Table Group的Follower計算群組。

  • 計算群組載入了Table Group之後,才能使用計算群組操作Table Group中的表。

  • 計算群組載入Table Group需要具備執行個體的Superuser許可權。

  • 命令格式:

    CALL hg_table_group_load_to_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>', <replica_count>);
  • 參數說明:

    參數

    類型

    說明

    database_name

    TEXT

    資料庫名稱。

    table_group_name

    TEXT

    Table Group名稱。

    warehouse_name

    TEXT

    需要載入Table Group的計算群組名稱。

    replica_count

    INTEGER

    Replica數量,預設值1,非必填。

  • 使用樣本:

    -- 為計算群組warehouse_1載入資料庫db1中的table_group_1,replica數為1
    CALL hg_table_group_load_to_warehouse ('db1.table_group_1', 'warehouse_1');
    -- 為計算群組warehouse_1載入資料庫db1中的table_group_1,replica數為2
    CALL hg_table_group_load_to_warehouse ('db1.table_group_1', 'warehouse_1',2);

設定Table Group的主(Leader)計算群組

  • 注意事項

    • 只有設定為主計算群組,才能對Table Group中的表做DML操作(包括寫入資料等)。

    • 一個Table Group只能有一個主計算群組,修改Table Group的主計算群組時,主計算群組需要重啟,請注意業務影響。

    • 設定Table Group的主計算群組需要具備執行個體的Superuser許可權。

  • 命令格式

    CALL hg_table_group_set_leader_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>');
  • 參數說明

    參數

    類型

    說明

    database_name

    TEXT

    資料庫名稱。

    table_group_name

    TEXT

    Table Group名稱。

    warehouse_name

    TEXT

    需要設定為主計算群組的名稱。

計算群組卸載Table Group

  • 注意事項

    • 計算群組卸載Table Group需要具備執行個體的Superuser許可權

    • 不能卸載設定為Table Group的主計算群組的計算群組,需要先轉換主計算群組。

  • 命令格式

    CALL hg_table_group_unload_from_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>');
  • 參數說明

    參數

    類型

    說明

    database_name

    TEXT

    資料庫名稱。

    table_group_name

    TEXT

    Table Group名稱。

    warehouse_name

    TEXT

    需要卸載Table Group的計算群組名稱。

修改計算群組載入Table Group的Replica數

  • 注意事項:修改計算群組載入Table Group的Replica數需要具備執行個體的Superuser許可權。

  • 命令格式

    CALL hg_table_group_set_warehouse_replica_count ('<database_name>.<table_group_name>', <replica_count>,'<warehouse_name>');
  • 參數說明

    參數

    類型

    說明

    database_name

    TEXT

    資料庫名稱。

    table_group_name

    TEXT

    Table Group名稱。

    replica_count

    INTEGER

    Replica數量。

    warehouse_name

    TEXT

    需要修改載入Table Group的Replica數的計算群組名稱。

計算群組DML自動路由(Beta)

  • 注意事項

    由於一個Table Group僅支援一個主計算群組,僅主計算群組支援對Table Group執行DML操作。從Hologres V2.2版本起,支援將DML自動路由到Table Group的主計算群組執行。使用該功能後,寫入任務會自動使用主計算群組的資源執行,但寫入任務的QPS等指標仍統計在從計算群組上。

    說明

    開啟多條DML混合事務功能後,無法使用計算群組DML自動路由功能。多條DML混合事務功能詳情,請參見SQL事務能力

  • 開啟或關閉計算群組DML自動路由

    您可以使用如下GUC(Grand Unified Configuration)參數,控制Session層級或資料庫層級計算群組DML自動路由是否開啟。

    說明

    計算群組DML自動路由GUC參數hg_experimental_enable_warehouse_dml_auto_routing預設開啟。

    • Session層級

      -- 開啟計算群組 DML 自動路由
      SET hg_experimental_enable_warehouse_dml_auto_routing = ON;
      
      -- 關閉計算群組 DML 自動路由
      SET hg_experimental_enable_warehouse_dml_auto_routing = OFF;
    • 資料庫層級

      -- 開啟計算群組 DML 自動路由
      ALTER DATABASE <database_name> SET hg_experimental_enable_warehouse_dml_auto_routing = ON;
      
      -- 關閉計算群組 DML 自動路由
      ALTER DATABASE <database_name> SET hg_experimental_enable_warehouse_dml_auto_routing = OFF;

      參數說明

      參數

      類型

      說明

      database_name

      TEXT

      資料庫名稱。

  • 使用樣本

    1. 進入HoloWeb開發頁面,詳情請參見串連HoloWeb並執行查詢

    2. 在HoloWeb開發頁面頂部功能表列,單擊資訊安全中心

    3. 在資訊安全中心頁面,單擊左側導覽列的計算群組管理

    4. 計算群組資源管理頁簽,單擊新增計算群組,新增名稱為read_wh1的計算群組。

      說明

      每個執行個體最多可以建立10個計算群組,每個計算群組資源最小32CU,最大512CU。若您未分配的計算資源小於32 CU,將不支援建立計算群組,如需擴容請參見計算群組縱向擴容(Scale up)

      image

    5. 計算群組 Table Group 授權管理頁簽,單擊新增計算群組授權,設定計算群組read_wh1為目標Table Group的從計算群組(follower)。

      說明

      建立Table Group請參見Table Group管理

      image

    6. SQL編輯器中,設定當前計算群組為read_wh1,分別在開啟或關閉計算群組DML自動路由時執行DML語句。

      • 當開啟計算群組DML自動路由時,DML語句會自動路由到Table Group的主計算群組(init_warehouse)執行。

        image

      • 當關閉計算群組DML自動路由時,DML語句不會自動路由到Table Group的主計算群組(init_warehouse)執行,而是使用當前計算群組(read_wh1)執行。由於只有主計算群組才能對Table Group中的表做DML操作,因此會出現報錯。

        image