本文為您介紹Hologres中查看計算組訪問Table Group權限、計算組加載Table Group、設置Table Group的主計算組等計算組Table Group授權相關命令。
注意事項
開啟計算組實例需要后臺配置,如需使用,請您使用實例升級或加入Hologres釘釘交流群反饋,詳情請參見如何獲取更多的在線支持?。
設置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操作,因此會出現報錯。