Todos os produtos
Search
Central de documentação

Hologres:Gerenciar virtual warehouses

Última atualização: Jun 28, 2026

Gerencie virtual warehouses para isolar recursos de computação, controlar a concorrência e otimizar o desempenho de consultas em diferentes cargas de trabalho. Use o console do Hologres ou comandos SQL para criar, dimensionar, parar e excluir virtual warehouses.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma instância do Hologres executando a versão V2.0.4 ou posterior. Se sua instância for anterior à V2.0.4, atualize-a.

  • As permissões necessárias para a operação. Consulte a seção Permissões abaixo.

Permissões

Operação

Permissões necessárias

Criar, excluir, parar, retomar, reiniciar, renomear

Conta Alibaba Cloud ou usuário RAM com a função Superuser na instância

Dimensionamento (antes da V3.0.28)

Conta Alibaba Cloud ou usuário RAM com a função Superuser na instância

Dimensionamento (V3.0.28 e posterior)

Conta Alibaba Cloud, usuário RAM (Superuser) ou função RAM (conta STS) com a política AliyunHologresWarehouseFullAccess ou AliyunHologresFullAccess e privilégios de Superuser na instância

Observações de uso

  • Limite de virtual warehouses: Cada instância suporta no máximo 10 virtual warehouses.

  • Faixa de CUs por virtual warehouse: mínimo de 32 CUs, máximo de 512 CUs (incremento de 16). A partir da V3.0.10, o máximo aumenta para 1024 CUs. A partir da V3.0.27, não há mais limite máximo de especificação.

  • Warehouse inicial: Ao adquirir uma instância de virtual warehouse, o Hologres cria automaticamente uma virtual warehouse padrão chamada init_warehouse. Cada instância possui apenas uma virtual warehouse padrão. Não é possível excluir, parar ou retomar a virtual warehouse padrão via comandos SQL, mas você pode modificá-la. Todos os usuários têm permissão para usar a virtual warehouse padrão.

  • Suporte a DDL: É possível executar comandos DDL em qualquer virtual warehouse.

  • Grupo de recursos: Instâncias de virtual warehouse não suportam grupos de recursos, pois esse mecanismo está sendo descontinuado. Para obter isolamento de recursos, crie múltiplas virtual warehouses. Para mais informações, consulte Gerenciamento de Recursos.

  • Faturamento: Consulte Faturamento.

Criar uma virtual warehouse

A criação de uma virtual warehouse é assíncrona. Após executar o comando SQL, use hg_get_warehouse_status para verificar se a warehouse está em execução antes de usá-la.

Use the console (recommended)

  1. Acesse o console do Hologres e selecione a região onde sua instância está localizada.

  2. No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.

  3. No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.

  4. Clique em Create Virtual Warehouse. Na caixa de diálogo, configure os parâmetros a seguir e clique em OK. Para mais informações, consulte Visão geral da elasticidade de recursos.

    Parâmetro

    Descrição

    Virtual Warehouse Name

    Nome da virtual warehouse a ser criada.

    Single-cluster Specs

    Quantidade de recursos reservados para cada cluster na virtual warehouse.

    Reserved Clusters

    Número inicial de clusters. Os recursos para clusters reservados provêm do pool de recursos reservados da instância.

Use SQL

Sintaxe

CALL hg_create_warehouse ('<warehouse_name>', <cu>);

Parâmetros

Parâmetro

Tipo

Descrição

warehouse_name

TEXT

Nome da nova virtual warehouse. Pode conter apenas dígitos, letras e underscores (_). Comprimento máximo: 127 caracteres.

cu

INTEGER

Número de CUs.

Excluir uma virtual warehouse

Não é possível excluir a virtual warehouse padrão (init_warehouse) nem uma virtual warehouse que atue como líder de um grupo de tabelas. Pare a virtual warehouse antes de excluí-la.

A exclusão é assíncrona. Após executar o comando SQL, use hg_get_warehouse_status para confirmar que a exclusão foi concluída.

Use the console (recommended)

  1. Acesse o console do Hologres e selecione a região onde sua instância está localizada.

  2. No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.

  3. No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.

  4. Na coluna Actions da virtual warehouse alvo, clique em Stop. Confirme a ação e aguarde a parada da warehouse.

  5. Clique em Delete na coluna Actions para excluir a virtual warehouse.

Use SQL

Sintaxe

CALL hg_drop_warehouse ('<warehouse_name>');

Parâmetros

Parâmetro

Tipo

Descrição

warehouse_name

TEXT

Nome da virtual warehouse a ser excluída.

Dimensionar uma virtual warehouse

As operações de dimensionamento são assíncronas. Verifique a conclusão com hg_get_warehouse_status antes de prosseguir com as próximas operações.

Para mais detalhes sobre o funcionamento do dimensionamento elástico, consulte Visão geral da elasticidade de recursos.

Scale up (dimensionamento vertical)

O scale up aumenta a alocação de CUs por virtual warehouse. A instância deve ter recursos não alocados suficientes antes de realizar o scale up. Se necessário, dimensione a instância primeiro.

Impacto em consultas e gravações em execução

O aumento de recursos da instância não afeta consultas e gravações em execução no momento. No entanto, a alocação de recursos para virtual warehouses gera os seguintes impactos:

  • A partir da V3.0.28: consultas e gravações não são interrompidas durante o scale-up e scale-out. Tarefas do Flink podem falhar e tentar nova execução.

  • V2.2 a V3.0.28: consultas e gravações são interrompidas por cerca de 15 segundos devido ao rebalanceamento automático.

  • Antes da V2.2: consultas e gravações são interrompidas por cerca de 15 segundos após o rebalanceamento manual.

Transações DML de múltiplas linhas são interrompidas durante o scale-up, independentemente da versão. Isso inclui transações com hg_experimental_enable_transaction ativado, instruções nativas de INSERT OVERWRITE e atualizações incrementais de Dynamic Tables .

Use the console (recommended)

  1. Acesse o console do Hologres e selecione a região onde sua instância está localizada.

  2. No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.

  3. No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.

  4. Na coluna Actions da virtual warehouse alvo, clique em Modify Configuration. Aumente as Single-cluster Specs para o valor desejado e clique em OK.

  5. (Opcional) Clique em Rebalance na coluna Actions para redistribuir shards para os novos pods adicionados.

Use SQL

  1. Dimensione a virtual warehouse verticalmente:

    Parâmetro

    Tipo

    Descrição

    warehouse_name

    TEXT

    Nome da virtual warehouse a ser modificada.

    cu

    INTEGER

    Número alvo de CUs. Mínimo: 32. Máximo: 512. Incremento: 16.

    CALL hg_alter_warehouse ('<warehouse_name>', <cu>);
  2. Aguarde a conclusão do dimensionamento:

    select hg_get_warehouse_status('<warehouse_name>');

    Um valor de retorno Running indica que o dimensionamento foi concluído.

  3. Redistribua os shards para a warehouse dimensionada:

    SELECT hg_rebalance_warehouse ('<warehouse_name>');
  4. Verifique o status do rebalanceamento:

    -- Check current status (returns DONE when complete)
    SELECT hg_get_rebalance_warehouse_status ('<warehouse_name>');
    
    -- Or wait until rebalancing completes before returning
    select hg_wait_until_rebalance_warehouse_done('<warehouse_name>', <timeout_seconds>);

    timeout_seconds (INTEGER, opcional): Tempo limite em segundos.

Exemplo: Dimensionar read_warehouse_1 para 64 CUs.

-- Scale up the warehouse
CALL hg_alter_warehouse ('read_warehouse_1', 64);

-- Wait for the warehouse to be running
SELECT wait_until_warehouse_running ('read_warehouse_1');

-- Redistribute shards
SELECT hg_rebalance_warehouse ('read_warehouse_1');

-- Wait for rebalancing to complete
SELECT hg_wait_until_rebalance_warehouse_done ('read_warehouse_1');

Scale down (dimensionamento vertical)

O scale down aciona primeiro o rebalanceamento de shards, migrando-os dos pods que serão desativados e, em seguida, removendo esses pods. Os recursos liberados retornam ao pool de recursos não alocados da instância.

Impacto em consultas e gravações em execução

  • A partir da V3.1 (Beta):

    • Consultas e gravações principais não são interrompidas.

    • Conexões nos pods que estão sendo desativados sofrem uma desconexão transitória de alguns segundos.

    • Tarefas do Flink podem falhar e tentar nova execução.

    • Se uma consulta ou gravação extensa estiver em execução na virtual warehouse quando o scale-down for acionado e precisar continuar por mais de 60 minutos, ela apresentará erro 60 minutos após o início do scale-down.

  • Antes da V3.1: consultas e gravações são interrompidas por aproximadamente 15 segundos durante o rebalanceamento.

Transações DML de múltiplas linhas são interrompidas durante o scale-down, independentemente da versão. Isso inclui transações com hg_experimental_enable_transaction ativado, instruções nativas de INSERT OVERWRITE e atualizações incrementais de Dynamic Tables .

Após o scale-down, use os recursos liberados para criar novas virtual warehouses, dimensionar outras warehouses ou liberar recursos da instância.

Use the console (recommended)

Siga os mesmos passos descritos em Scale up, mas diminua as Single-cluster Specs para o valor desejado.

Use SQL

  1. Reduza a virtual warehouse verticalmente:

    Parâmetro

    Tipo

    Descrição

    warehouse_name

    TEXT

    Nome da virtual warehouse a ser modificada.

    cu

    INTEGER

    Número alvo de CUs. Mínimo: 32. Máximo: 512. Incremento: 16.

    CALL hg_alter_warehouse ('<warehouse_name>', <cu>);
  2. Verifique se a warehouse retornou ao estado de execução:

    select hg_get_warehouse_status('<warehouse_name>');

    Um valor de retorno Running confirma que o scale-down foi concluído.

Scale out (dimensionamento horizontal)

O scale out adiciona mais clusters à virtual warehouse. Aplicam-se as mesmas observações de uso do scale-up.

Use the console

  1. Acesse o console do Hologres e selecione a região onde sua instância está localizada.

  2. No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.

  3. No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.

  4. Na coluna Actions da virtual warehouse alvo, clique em Modify Configuration. Aumente os Reserved Clusters para o número desejado e clique em OK.

Scale in (dimensionamento horizontal)

O scale in reduz o número de clusters na virtual warehouse. Aplicam-se as mesmas observações de uso do scale-down.

Use the console

  1. Acesse o console do Hologres e selecione a região onde sua instância está localizada.

  2. No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.

  3. No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.

  4. Na coluna Actions da virtual warehouse alvo, clique em Modify Configuration. Diminua os Reserved Clusters para o número desejado e clique em OK.

Operações de O&M de virtual warehouses

Visualizar virtual warehouses

-- View all virtual warehouses in the current instance
SELECT * FROM hologres.hg_warehouses;

-- View the virtual warehouse currently in use
SELECT current_warehouse();

A tabela de sistema hologres.hg_warehouses contém as seguintes colunas:

Campo

Tipo de dado

Descrição

Exemplo

warehouse_id

INTEGER

ID exclusivo da virtual warehouse.

1

warehouse_name

TEXT

Nome da virtual warehouse.

init_warehouse

cpu

INTEGER

Número de núcleos de CPU.

32

mem

INTEGER

Memória em GB.

128

cluster_min_count

INTEGER

Número mínimo de shards.

1

cluster_max_count

INTEGER

Número máximo de shards.

1

target_status

INTEGER

Status alvo da virtual warehouse. Como as mudanças de status são assíncronas, este campo registra o estado final pretendido. Valores válidos: 1 (Running), 2 (Manually shut down).

1

status

INTEGER

Status atual. Valores válidos: 0 (Initialization), 1 (Running), 2 (Manually stopped), 3 (Processing failed — consulte status_detail para detalhes), 4 (Processing).

1

status_detail

TEXT

Detalhes adicionais sobre o status atual.

is_default

BOOLEAN

Indica se esta é a virtual warehouse padrão. t = padrão; f = não é padrão.

t

config

TEXT

Configuração da virtual warehouse.

comment

TEXT

Observações sobre a virtual warehouse.

Parar uma virtual warehouse

Não é possível parar a virtual warehouse padrão (init_warehouse) nem uma virtual warehouse primária cujo grupo de tabelas possua uma virtual warehouse secundária.

A parada é assíncrona. Use hg_get_warehouse_status para verificar se a warehouse parou.

Use the console (recommended)

  1. Acesse o console do Hologres e selecione a região onde sua instância está localizada.

  2. No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.

  3. No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.

  4. Na coluna Actions da virtual warehouse alvo, clique em Stop e confirme.

Use SQL

CALL hg_suspend_warehouse ('<warehouse_name>');

Parâmetro

Tipo

Descrição

warehouse_name

TEXT

Nome da virtual warehouse a ser parada.

Retomar uma virtual warehouse

A retomada de uma virtual warehouse é assíncrona. Use hg_get_warehouse_status para verificar se a warehouse está em execução antes de enviar consultas.

Use the console (recommended)

  1. Acesse o console do Hologres e selecione a região onde sua instância está localizada.

  2. No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.

  3. No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.

  4. Na coluna Actions da virtual warehouse alvo, clique em Start e confirme.

Use SQL

CALL hg_resume_warehouse ('<warehouse_name>');

Parâmetro

Tipo

Descrição

warehouse_name

TEXT

Nome da virtual warehouse a ser retomada.

Reiniciar uma virtual warehouse

A reinicialização de uma virtual warehouse é assíncrona. Use hg_get_warehouse_status para verificar se a warehouse está em execução antes de enviar consultas.

Use the console (recommended)

  1. Acesse o console do Hologres e selecione a região onde sua instância está localizada.

  2. No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.

  3. No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.

  4. Na coluna Actions da virtual warehouse alvo, clique em Restart e confirme.

Use SQL

CALL hg_restart_warehouse('<warehouse_name>');

Parâmetro

Tipo

Descrição

warehouse_name

TEXT

Nome da virtual warehouse a ser reiniciada.

Verificar o status da virtual warehouse

Todas as operações de criação, dimensionamento, parada, retomada e reinicialização são assíncronas. Use as funções a seguir para monitorar o status.

-- Get the current status of a virtual warehouse
select hg_get_warehouse_status('<warehouse_name>');

Para bloquear a execução até que uma virtual warehouse atinja o estado Running, use wait_until_warehouse_running:

select wait_until_warehouse_running('<warehouse_name>', <timeout_seconds>);

Parâmetro

Tipo

Descrição

warehouse_name

TEXT

Nome da virtual warehouse.

timeout_seconds

INTEGER

(Opcional) Tempo limite em segundos.

Exemplo: Dimensionar warehouse_1 antes de um carregamento de dados e depois reduzir sua capacidade.

-- Scale up to 64 CUs
CALL hg_alter_warehouse ('warehouse_1', 64);

-- Wait until running
SELECT wait_until_warehouse_running('warehouse_1');

-- Run the data load
INSERT INTO res_data SELECT * FROM org_data;

-- Scale back down to 32 CUs
CALL hg_alter_warehouse ('warehouse_1', 32);

Renomear uma virtual warehouse

Use the console (recommended)

  1. Acesse o console do Hologres e selecione a região onde sua instância está localizada.

  2. No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.

  3. No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.

  4. Na coluna Virtual Warehouse Name, clique no ícone image para renomear a warehouse.

Use SQL

CALL hg_rename_warehouse('<org_warehouse_name>', '<new_warehouse_name>');

Parâmetro

Tipo

Descrição

org_warehouse_name

TEXT

Nome atual da virtual warehouse.

new_warehouse_name

TEXT

Novo nome.

Operações avançadas

Rebalancear uma virtual warehouse

Em condições normais, os nós workers de uma virtual warehouse carregam metadados de shards de forma equilibrada. Após recuperação rápida, scale-up ou scale-out, os shards podem ficar distribuídos de maneira desigual. Acione um rebalanceamento para redistribuir os shards, garantindo que cada nó worker carregue uma quantidade aproximadamente igual.

  • A partir da V2.1: O Hologres aciona automaticamente o rebalanceamento quando uma warehouse possui nós workers vazios.

  • A partir da V2.2: Consultas SELECT executadas durante o rebalanceamento são tentadas novamente de forma automática, evitando erros como ERROR: fail to execute query internal error: Get rundown is not allowed in recovering state.

Uma operação de rebalanceamento geralmente leva de 2 a 3 minutos, dependendo do número de grupos de tabelas. As operações de escrita são interrompidas por aproximadamente 15 segundos durante o rebalanceamento.

Sintaxe

SELECT hg_rebalance_warehouse ('<warehouse_name>');

Parâmetro

Tipo

Descrição

warehouse_name

TEXT

Nome da virtual warehouse a ser rebalanceada.

Valores de retorno

Valor

Significado

true

Rebalanceamento acionado com sucesso.

false

Rebalanceamento desnecessário — os shards já estão equilibrados.

Erro

Falha ao acionar o rebalanceamento (por exemplo, um pod com defeito).

Quando a diferença no número de shards carregados por cada nó worker for igual ou inferior a 1, isso indica que o rebalanceamento terminou. Por exemplo:

  • 2 workers, 2 shards: cada worker carrega 1 shard.

  • 2 workers, 3 shards: um worker carrega 1 shard e o outro carrega 2 shards.

Como o rebalanceamento é assíncrono, monitore o progresso com:

SELECT hg_get_rebalance_warehouse_status('<warehouse_name>');

DOING significa que o rebalanceamento está em andamento. DONE indica que foi concluído.

Definir o tempo limite de instrução para uma virtual warehouse

O tempo limite no nível da virtual warehouse tem prioridade menor do que as configurações no nível de sessão e de banco de dados. Para tornar efetiva a configuração no nível da warehouse, redefina primeiro a configuração no nível do banco de dados.

-- Reset the database-level setting
ALTER DATABASE <db_name> RESET statement_timeout;

-- Set the timeout for the virtual warehouse (value in milliseconds)
CALL hg_alter_warehouse ('<warehouse_name>', <cu>, '{"configs":{"gucs":{"statement_timeout":"600000"}}}');

Para mais informações sobre statement_timeout e outros parâmetros GUC, consulte Parâmetros GUC.