Todos os produtos
Search
Central de documentação

Hologres:Computação serverless adaptativa

Última atualização: Jun 28, 2026

Em ambientes de produção, algumas consultas de leitura e escrita são imprevisíveis. Não é possível saber antecipadamente se uma consulta consumirá recursos excessivos, qual usuário a executará ou como classificá-la. Análises ad hoc, cargas de trabalho com volumes de dados imprevisíveis e consultas que exigem varreduras extensas podem esgotar todos os recursos de computação de um virtual warehouse e degradar o desempenho de todas as outras consultas executadas simultaneamente.

A computação serverless adaptativa resolve esse problema ao direcionar automaticamente consultas que demandam muitos recursos para recursos serverless, sem necessidade de intervenção manual ou regras de roteamento predefinidas. O Hologres oferece dois recursos:

  • Isolamento adaptativo de tarefas grandes (disponível a partir da V3.1): identifica automaticamente consultas que ultrapassam um limiar de recursos e as executa em recursos serverless.

  • Isolamento adaptativo de carga (Beta, disponível a partir da V4.1): ajusta dinamicamente o limiar com base na carga atual e direciona consultas pesadas para recursos serverless apenas quando a instância estiver sob alta carga.

Como funciona

O Hologres estima os Required Cores de cada instrução SQL com base na complexidade e no volume de dados das tabelas envolvidas. Essa estimativa determina a quantidade de recursos de computação necessários para a instrução.

Uma instrução é executada automaticamente em recursos serverless quando seus Required Cores estimados excedem ambos os limiares configurados:

Required Cores > max(ratio threshold, absolute threshold)

Dois parâmetros controlam os limiares. Para o recurso de isolamento adaptativo de tarefas grandes, modifique estes dois limiares:

Parâmetro

Descrição

Padrão

hg_adaptive_serverless_computing_min_resource_ratio_threshold

Coeficiente do limiar de proporção. Para instâncias de virtual warehouse, o limiar de proporção equivale a este coeficiente multiplicado pelos recursos de computação do virtual warehouse. Para instâncias de uso geral, o limiar de proporção equivale a este coeficiente multiplicado pelos recursos de computação da instância.

0.3

hg_adaptive_serverless_computing_min_cores_threshold

Limiar absoluto, em CUs.

256

A quantidade total de recursos serverless para uma instrução corresponde ao menor valor entre Quota, Max Cores e Required Cores. Para mais detalhes, consulte A quantidade de recursos serverless usada por uma instrução SQL .

Ative o isolamento adaptativo de tarefas grandes

O isolamento adaptativo de tarefas grandes direciona todas as instruções que excedem os limiares configurados para recursos serverless, independentemente do nível de carga atual.

Os parâmetros e seus escopos variam conforme a versão:

  • Antes da V4.1: ative tanto hg_enable_adaptive_serverless_computing quanto hg_adaptive_serverless_computing_enable_big_query_isolation.

  • A partir da V4.1: hg_enable_adaptive_serverless_computing foi descontinuado. Ative apenas hg_adaptive_serverless_computing_enable_big_query_isolation.

Ative o recurso no nível de sessão, usuário ou banco de dados:

-- Session level
SET hg_enable_adaptive_serverless_computing = on;
SET hg_adaptive_serverless_computing_enable_big_query_isolation = on;

-- User level
ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_enable_adaptive_serverless_computing = on;
ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_adaptive_serverless_computing_enable_big_query_isolation = on;

-- DB level
ALTER DATABASE <db_name> SET hg_enable_adaptive_serverless_computing = on;
ALTER DATABASE <db_name> SET hg_adaptive_serverless_computing_enable_big_query_isolation = on;

Para ajustar os limiares, modifique os parâmetros de limiar no nível de sessão, usuário ou banco de dados:

-- Session level
SET hg_adaptive_serverless_computing_min_resource_ratio_threshold = 0.3;
SET hg_adaptive_serverless_computing_min_cores_threshold = 256;

-- User level
ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_adaptive_serverless_computing_min_resource_ratio_threshold = 0.3;
ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_adaptive_serverless_computing_min_cores_threshold = 256;

-- DB level
ALTER DATABASE <db_name> SET hg_adaptive_serverless_computing_min_resource_ratio_threshold = 0.3;
ALTER DATABASE <db_name> SET hg_adaptive_serverless_computing_min_cores_threshold = 256;

Ative o isolamento adaptativo de carga (Beta)

O isolamento adaptativo de carga ajusta dinamicamente o limiar de recursos com base na carga atual. Consultas pesadas são direcionadas para recursos serverless somente quando a instância está sob alta carga, mantendo os limiares efetivamente inativos durante períodos de baixa carga.

Ative este recurso no nível de banco de dados:

-- DB level
ALTER DATABASE <db_name> SET hg_adaptive_serverless_computing_enable_load_isolation = on;

O sistema determina automaticamente se deve ativar o roteamento com base nas condições de carga em tempo real. Nenhuma configuração adicional é necessária.

Verifique se uma instrução aciona a computação serverless adaptativa

Use a função hg_estimate_adaptive_serverless_computing para verificar se uma instrução SQL específica seria direcionada para recursos serverless com as configurações de parâmetros atuais.

Para instruções sem aspas simples:

SELECT * FROM hologres.hg_estimate_adaptive_serverless_computing('select * from tbl;');

Para instruções que contêm aspas simples, use dollar-quoting para evitar escape:

SELECT * FROM hologres.hg_estimate_adaptive_serverless_computing($$insert into test_tbl_dst_1 select * from test_tbl_src;$$);

A função retorna os seguintes campos:

Campo

Descrição

estimated_cores

Required Cores estimados pelo sistema para a instrução.

status

Indica se a instrução é direcionada para recursos serverless com as configurações atuais.

adaptive_serverless_computing_min_ratio_threshold

Coeficiente do limiar de proporção atualmente em vigor.

adaptive_serverless_computing_min_cores_threshold

Limiar absoluto atualmente em vigor, em CUs.

Valores de status

Valor

Significado

eligible

A instrução excede as condições de limiar e é executada em recursos serverless.

ineligible

A instrução não atende às condições de limiar e é executada nos próprios recursos da instância.

invalid

A instrução não é elegível para computação serverless e é executada nos próprios recursos da instância.