全部產品
Search
文件中心

Hologres:計算群組Table Group授權管理

更新時間:Aug 13, 2024

本文為您介紹Hologres中查看計算群組訪問Table Group許可權、計算群組載入Table Group、設定Table Group的主計算群組等計算群組Table Group授權相關命令。

注意事項

  • 開啟計算群組執行個體需要後台配置,如需使用,請您使用執行個體升級或加入HologresDingTalk交流群反饋,詳情請參見如何擷取更多的線上支援?

  • 設定Table Group的主計算群組後會觸發計算群組的重啟,目前建議主Table Group都建在預設計算群組裡,即使用讀寫分離的情境。

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

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

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

查看計算群組訪問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之後,才能使用計算群組操作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 Warehouse)

  • 注意事項

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

    • 一個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自動路由

    您可以使用如下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,將不支援建立計算群組,如需擴容請參見擴容計算群組計算資源

      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