本文為您介紹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
資料庫名稱。
使用樣本
進入HoloWeb開發頁面,詳情請參見串連HoloWeb並執行查詢。
在HoloWeb開發頁面頂部功能表列,單擊資訊安全中心。
在資訊安全中心頁面,單擊左側導覽列的計算群組管理。
在計算群組資源管理頁簽,單擊新增計算群組,新增名稱為
read_wh1
的計算群組。說明每個執行個體最多可以建立10個計算群組,每個計算群組資源最小32CU,最大512CU。若您未分配的計算資源小於32 CU,將不支援建立計算群組,如需擴容請參見擴容計算群組計算資源。
在計算群組 Table Group 授權管理頁簽,單擊新增計算群組授權,設定計算群組
read_wh1
為目標Table Group的從計算群組(follower)。說明建立Table Group請參見Table Group管理。
在SQL編輯器中,設定當前計算群組為
read_wh1
,分別在開啟或關閉計算群組DML自動路由時執行DML語句。當開啟計算群組DML自動路由時,DML語句會自動路由到Table Group的主計算群組(init_warehouse)執行。
當關閉計算群組DML自動路由時,DML語句不會自動路由到Table Group的主計算群組(init_warehouse)執行,而是使用當前計算群組(read_wh1)執行。由於只有主計算群組才能對Table Group中的表做DML操作,因此會出現報錯。