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 |
|
Dimensionamento (antes da V3.0.28) |
Conta Alibaba Cloud ou usuário RAM com a função |
|
Dimensionamento (V3.0.28 e posterior) |
Conta Alibaba Cloud, usuário RAM ( |
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)
Acesse o console do Hologres e selecione a região onde sua instância está localizada.
No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.
No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.
-
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 |
|
|
TEXT |
Nome da nova virtual warehouse. Pode conter apenas dígitos, letras e underscores ( |
|
|
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)
Acesse o console do Hologres e selecione a região onde sua instância está localizada.
No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.
No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.
Na coluna Actions da virtual warehouse alvo, clique em Stop. Confirme a ação e aguarde a parada da warehouse.
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 |
|
|
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)
Acesse o console do Hologres e selecione a região onde sua instância está localizada.
No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.
No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.
Na coluna Actions da virtual warehouse alvo, clique em Modify Configuration. Aumente as Single-cluster Specs para o valor desejado e clique em OK.
(Opcional) Clique em Rebalance na coluna Actions para redistribuir shards para os novos pods adicionados.
Use SQL
-
Dimensione a virtual warehouse verticalmente:
Parâmetro
Tipo
Descrição
warehouse_nameTEXT
Nome da virtual warehouse a ser modificada.
cuINTEGER
Número alvo de CUs. Mínimo: 32. Máximo: 512. Incremento: 16.
CALL hg_alter_warehouse ('<warehouse_name>', <cu>); -
Aguarde a conclusão do dimensionamento:
select hg_get_warehouse_status('<warehouse_name>');Um valor de retorno
Runningindica que o dimensionamento foi concluído. -
Redistribua os shards para a warehouse dimensionada:
SELECT hg_rebalance_warehouse ('<warehouse_name>'); -
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
-
Reduza a virtual warehouse verticalmente:
Parâmetro
Tipo
Descrição
warehouse_nameTEXT
Nome da virtual warehouse a ser modificada.
cuINTEGER
Número alvo de CUs. Mínimo: 32. Máximo: 512. Incremento: 16.
CALL hg_alter_warehouse ('<warehouse_name>', <cu>); -
Verifique se a warehouse retornou ao estado de execução:
select hg_get_warehouse_status('<warehouse_name>');Um valor de retorno
Runningconfirma 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
Acesse o console do Hologres e selecione a região onde sua instância está localizada.
No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.
No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.
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
Acesse o console do Hologres e selecione a região onde sua instância está localizada.
No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.
No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.
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 |
|
|
INTEGER |
ID exclusivo da virtual warehouse. |
|
|
|
TEXT |
Nome da virtual warehouse. |
|
|
|
INTEGER |
Número de núcleos de CPU. |
|
|
|
INTEGER |
Memória em GB. |
|
|
|
INTEGER |
Número mínimo de shards. |
|
|
|
INTEGER |
Número máximo de shards. |
|
|
|
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: |
|
|
|
INTEGER |
Status atual. Valores válidos: |
|
|
|
TEXT |
Detalhes adicionais sobre o status atual. |
— |
|
|
BOOLEAN |
Indica se esta é a virtual warehouse padrão. |
|
|
|
TEXT |
Configuração da virtual warehouse. |
— |
|
|
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)
Acesse o console do Hologres e selecione a região onde sua instância está localizada.
No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.
No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.
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 |
|
|
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)
Acesse o console do Hologres e selecione a região onde sua instância está localizada.
No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.
No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.
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 |
|
|
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)
Acesse o console do Hologres e selecione a região onde sua instância está localizada.
No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.
No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.
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 |
|
|
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 |
|
|
TEXT |
Nome da virtual warehouse. |
|
|
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)
Acesse o console do Hologres e selecione a região onde sua instância está localizada.
No painel de navegação à esquerda, clique em Instances e, em seguida, clique no Instance ID desejado.
No painel de navegação à esquerda da página do produto, clique em Virtual Warehouse Management e acesse a aba Virtual Warehouse Resource Management.
Na coluna Virtual Warehouse Name, clique no ícone
para renomear a warehouse.
Use SQL
CALL hg_rename_warehouse('<org_warehouse_name>', '<new_warehouse_name>');
|
Parâmetro |
Tipo |
Descrição |
|
|
TEXT |
Nome atual da virtual warehouse. |
|
|
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 |
|
|
TEXT |
Nome da virtual warehouse a ser rebalanceada. |
Valores de retorno
|
Valor |
Significado |
|
|
Rebalanceamento acionado com sucesso. |
|
|
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.