Este tópico descreve como conceder permissões de acesso a dados para virtual warehouses no Hologres.
Observações de uso
Ao criar um Table Group com a virtual warehouse A, ela se torna a virtual warehouse líder padrão desse Table Group.
O estado da memória é sincronizado entre as virtual warehouses com latência de milissegundos. Ao gravar dados em uma virtual warehouse líder, o sistema sincroniza os dados em memória com as virtual warehouses seguidoras. Esse processo consome poucos recursos de CPU e memória nas virtual warehouses seguidoras. Recomendamos manter a diferença de especificação entre as virtual warehouses dentro de uma proporção de 4x.
Apenas a virtual warehouse padrão de uma instância pode gravar em tabelas externas.
-
No Hologres V2.0, as virtual warehouses suportam tarefas de leitura e gravação da seguinte forma:
Uma virtual warehouse seguidora (que carregou um Table Group) só pode executar tarefas de leitura nas tabelas desse Table Group. Não há suporte a tarefas de gravação.
Uma virtual warehouse líder (designada como líder de um Table Group) pode executar tarefas de leitura e gravação nas tabelas desse Table Group.
Uma virtual warehouse que não carregou um Table Group não pode ler nem gravar nele.
-
O Hologres V4.0 atualiza a arquitetura da instância para virtual warehouses. O suporte a tarefas de leitura e gravação funciona assim:
Ative o parâmetro GUC
hg_warehouse_enable_use_local_resource. Para mais informações, consulte Parâmetros GUC.Execute tarefas de leitura e gravação não otimizadas pelo Fixed Plan sem carregar um Table Group na virtual warehouse.
Para saber quais tarefas de leitura e gravação podem ser otimizadas pelo Fixed Plan, consulte Acelerar execução de SQL com Fixed Plan.
Todas as tarefas de gravação, incluindo gravações em tempo real e em lote, ainda podem ser roteadas para a virtual warehouse líder para execução por meio do recurso de roteamento automático de DML.
|
Tipo de tarefa/Tipo de virtual warehouse |
Virtual warehouse líder |
Virtual warehouse seguidora(Table group carregado) |
Outras virtual warehouses(Table group não carregado) |
|
Gravação em tempo real (tarefa de gravação otimizada pelo Fixed Plan) |
Suportado |
Não suportado |
Não suportado |
|
Gravação em lote (tarefa de gravação não otimizada pelo Fixed Plan) |
Suportado |
Suportado (recurso do V4.0; requer ativação do GUC) |
Suportado (recurso do V4.0; requer ativação do GUC) |
|
Consulta pontual Key/Value e Prefixscan (tarefa de leitura otimizada pelo Fixed Plan) |
Suportado |
Suportado |
Não suportado |
|
Outras tarefas de leitura (tarefa de leitura não otimizada pelo Fixed Plan) |
Suportado |
Suportado |
Suportado (recurso do V4.0; requer ativação do GUC) |
Visualizar permissões de acesso ao Table Group
-
Sintaxe
Para visualizar as informações de permissão do Table Group para todas as virtual warehouses na instância atual, execute a seguinte instrução SQL.
SELECT * FROM hologres.hg_warehouse_table_groups; -
Parâmetros
A tabela a seguir descreve as colunas da tabela hg_warehouse_table_groups.
Parâmetro
Tipo
Descrição
Exemplo
warehouse_name
TEXT
Nome da virtual warehouse.
init_warehouse
warehouse_id
INTEGER
ID exclusivo da virtual warehouse.
1
database_name
TEXT
Nome do banco de dados.
wh_demo
tablegroup_name
TEXT
Nome do Table Group.
wh_demo_tg_default
leader
BOOLEAN
Indica se a virtual warehouse é a líder do Table Group.
t
replica_count
INTEGER
Contagem de réplicas.
1
Carregar um Table Group em uma virtual warehouse
Carregar um Table Group em uma virtual warehouse a torna uma virtual warehouse seguidora para esse Table Group.
Após carregar um Table Group, use a virtual warehouse para operar nas tabelas desse Table Group.
Carregar um Table Group em uma virtual warehouse exige permissões de Superuser na instância.
-
Sintaxe:
CALL hg_table_group_load_to_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>', <replica_count>); -
Parâmetros:
Parâmetro
Tipo
Descrição
database_name
TEXT
Nome do banco de dados.
table_group_name
TEXT
Nome do Table Group.
warehouse_name
TEXT
Nome da virtual warehouse onde o Table Group será carregado.
replica_count
INTEGER
Contagem de réplicas. Este parâmetro é opcional. Valor padrão: 1.
-
Exemplos:
-- Load table_group_1 in the db1 database into the warehouse_1 virtual warehouse with one replica. CALL hg_table_group_load_to_warehouse ('db1.table_group_1', 'warehouse_1'); -- Load table_group_1 in the db1 database into the warehouse_1 virtual warehouse with two replicas. CALL hg_table_group_load_to_warehouse ('db1.table_group_1', 'warehouse_1',2);
Definir a virtual warehouse líder
-
Observações de uso
Somente a virtual warehouse líder pode executar operações DML, como gravação de dados, nas tabelas de um Table Group.
Um Table Group pode ter apenas uma virtual warehouse líder. Alterar a líder causa sua reinicialização; portanto, planeje-se quanto ao impacto nos negócios.
Definir a virtual warehouse líder para um Table Group exige permissões de Superuser na instância.
-
Sintaxe
CALL hg_table_group_set_leader_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>'); -
Parâmetros
Parâmetro
Tipo
Descrição
database_name
TEXT
Nome do banco de dados.
table_group_name
TEXT
Nome do Table Group.
warehouse_name
TEXT
Nome da virtual warehouse a ser definida como líder.
Descarregar um Table Group
-
Observações de uso
Descarregar um Table Group de uma virtual warehouse exige permissões de Superuser na instância.
Não é possível descarregar um Table Group de sua virtual warehouse líder. Primeiro, altere a líder.
-
Sintaxe
CALL hg_table_group_unload_from_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>'); -
Parâmetros
Parâmetro
Tipo
Descrição
database_name
TEXT
Nome do banco de dados.
table_group_name
TEXT
Nome do Table Group.
warehouse_name
TEXT
Nome da virtual warehouse da qual o Table Group será descarregado.
Alterar a contagem de réplicas
Nota: Alterar a contagem de réplicas para um Table Group carregado em uma virtual warehouse exige permissões de Superuser na instância.
-
Sintaxe
CALL hg_table_group_set_warehouse_replica_count ('<database_name>.<table_group_name>', <replica_count>,'<warehouse_name>'); -
Parâmetros
Parâmetro
Tipo
Descrição
database_name
TEXT
Nome do banco de dados.
table_group_name
TEXT
Nome do Table Group.
replica_count
INTEGER
Contagem de réplicas.
warehouse_name
TEXT
Nome da virtual warehouse cuja contagem de réplicas será alterada.
Roteamento automático de DML para virtual warehouses (Beta)
-
Observações de uso
Um Table Group possui apenas uma virtual warehouse líder, sendo esta a única capaz de executar operações DML nele. A partir do Hologres V2.2, é possível rotear automaticamente operações DML para a virtual warehouse líder de um Table Group. Após ativar esse recurso, as tarefas de gravação usam automaticamente os recursos da virtual warehouse líder para execução, mas as métricas da tarefa de gravação, como QPS, continuam registradas na virtual warehouse seguidora.
NotaApós ativar o recurso de transação mista multi-DML, não é possível usar o roteamento automático de DML para virtual warehouses. Para mais informações sobre transações mistas multi-DML, consulte Capacidades de transação SQL.
-
Ativar ou desativar o roteamento automático de DML
Use o seguinte parâmetro GUC para ativar ou desativar o roteamento automático de DML para virtual warehouses no nível de sessão ou de banco de dados.
NotaO parâmetro GUC para roteamento automático de DML para virtual warehouses,
hg_experimental_enable_warehouse_dml_auto_routing, vem ativado por padrão.-
Nível de sessão
-- Enable DML auto-routing for virtual warehouses. SET hg_experimental_enable_warehouse_dml_auto_routing = ON; -- Disable DML auto-routing for virtual warehouses. SET hg_experimental_enable_warehouse_dml_auto_routing = OFF; -
Nível de banco de dados
-- Enable DML auto-routing for virtual warehouses. ALTER DATABASE <database_name> SET hg_experimental_enable_warehouse_dml_auto_routing = ON; -- Disable DML auto-routing for virtual warehouses. ALTER DATABASE <database_name> SET hg_experimental_enable_warehouse_dml_auto_routing = OFF;Parâmetros
Parâmetro
Tipo
Descrição
database_name
TEXT
Nome do banco de dados.
-
-
Exemplo
Acesse a página de desenvolvimento do HoloWeb. Para mais informações, consulte Conectar ao HoloWeb e executar consultas.
Na barra de menu superior da página do HoloWeb, clique em Security Center uicontrol替换 修改时间:2026-02-03 01:32:43 原文:安全中心 修改后:conref="mcms_dita_holoweb.dita#holoweb/module_security" .
No painel de navegação à esquerda da página Security Center, clique em Virtual Warehouse Management uicontrol替换 修改时间:2026-02-03 01:32:43 原文:计算组管理 修改后:conref="mcms_dita_hologres-console.dita#hologres-console/warehouse_manage" .
-
Na aba Virtual Warehouse Resource Management uicontrol替换 修改时间:2026-02-03 01:32:43 原文:计算组资源管理 修改后:conref="mcms_dita_hologres-console.dita#hologres-console/warehouse.warehouse_resource_manage" , clique em Create Virtual Warehouse uicontrol替换 修改时间:2026-02-03 01:32:43 原文:新增计算组 修改后:conref="mcms_dita_hologres-console.dita#hologres-console/warehouse_addWarehouse" para criar uma virtual warehouse chamada
read_wh1.NotaUma instância pode ter no máximo 10 virtual warehouses. Os recursos para cada virtual warehouse devem ser de no mínimo 32 CU e no máximo 512 CU. Se houver menos de 32 CU de recursos de computação não alocados, não será possível criar uma nova virtual warehouse. Para fazer scale up, consulte Fazer scale up de uma virtual warehouse.
Após a criação da virtual warehouse, a aba Virtual Warehouse Resource Management exibe a virtual warehouse read_wh1 com status Running. É possível realizar operações como Scale, Restart e Stop.
-
Na aba Management on Permissions of Virtual Warehouses on Table Groups uicontrol替换 修改时间:2026-02-03 01:32:43 原文:计算组 Table Group 授权管理 修改后:conref="mcms_dita_holoweb.dita#holoweb/warehouse.table_group_auth_management" , clique em Grant Permissions to Virtual Warehouse uicontrol替换 修改时间:2026-02-03 01:32:43 原文:新增计算组授权 修改后:conref="mcms_dita_holoweb.dita#holoweb/warehouse.add_warehouse_auth" para definir a virtual warehouse
read_wh1como seguidora do Table Group alvo.NotaPara criar um Table Group, consulte Gerenciar Table Groups.
Após a concessão das permissões, a lista mostra init_warehouse como a virtual warehouse líder. Na coluna Actions referente a read_wh1, são exibidas as opções Set as Leader e Revoke Permissions.
-
No SQL Editor uicontrol替换 修改时间:2026-02-03 01:32:43 原文:SQL编辑器 修改后:conref="mcms_dita_holoweb.dita#holoweb/Header_index_-1816047924" , defina a virtual warehouse atual como
read_wh1e execute instruções DML com o roteamento automático de DML para virtual warehouses ativado e desativado.-
Com o roteamento automático de DML para virtual warehouses ativado, as instruções DML são roteadas automaticamente para a virtual warehouse líder do Table Group (init_warehouse) para execução.
Altere a current virtual warehouse para read_wh1, execute
SET hg_experimental_enable_warehouse_dml_auto_routing = ON;para ativar o roteamento automático de DML e, em seguida, execute uma instrução INSERT para gravar dados. A instrução é executada com sucesso (99 linhas, cerca de 53 ms), confirmando que as operações DML foram roteadas automaticamente para a virtual warehouse líder para execução. -
Com o roteamento automático de DML desativado, as instruções DML não são roteadas para a líder (init_warehouse). Em vez disso, a virtual warehouse atual (read_wh1) tenta executá-las. Isso falha com um erro porque apenas a virtual warehouse líder pode executar operações DML no Table Group.
O comando para desativar o roteamento automático de DML é
SET hg_experimental_enable_warehouse_dml_auto_routing = OFF;. A seguinte mensagem de erro é retornada:ERROR: Dispatch query failed: internal error: Failed to get available shards for query. A mensagem HINT sugere verificar se o Table Group (por exemplo, demo.demo_tg_default) é o líder na virtual warehouse atual.
-