Quando as atualizações de tabelas dinâmicas compartilham computação com outras consultas, a contenção de recursos em horários de pico pode atrasar as atualizações de dados. O parâmetro computing_resource permite atribuir computação dedicada às atualizações de tabelas dinâmicas — seja de forma agendada ou durante atualizações manuais — para controlar o isolamento de recursos, o custo e o throughput independentemente. Esta página descreve os tipos de recursos disponíveis, como defini-los e como o comportamento muda entre as versões do Hologres.
Escolha um tipo de recurso
|
Tipo de recurso |
Funcionamento |
Mais indicado para |
|
|
Utiliza um pool de recursos de Serverless Computing remoto e totalmente gerenciado. O mecanismo determina os recursos necessários por consulta, oferecendo isolamento no nível da consulta e dimensionamento elástico. Não requer capacidade reservada. |
A maioria das cargas de trabalho. Padrão na V4.0.1 e posteriores. |
|
|
Usa os recursos da instância atual (instância de uso geral) ou o warehouse associado à conexão atual (instância de virtual warehouse na V4.0.7+). Os recursos são compartilhados com outras consultas; pode haver contenção em horários de pico. |
Cargas de trabalho que precisam permanecer nos recursos reservados da instância. |
|
|
Executa a atualização em um virtual warehouse específico, proporcionando isolamento de recursos no nível do warehouse. Suportado apenas em instâncias de virtual warehouse (V4.0.7+). |
Cargas de trabalho que exigem computação dedicada e isolada em um warehouse específico. |
Para obter detalhes sobre o Serverless Computing, consulte Visão geral do Serverless Computing. Para obter detalhes sobre virtual warehouses, consulte Introdução aos virtual warehouses.
Referência de parâmetros
O parâmetro computing_resource é opcional. Defina-o na cláusula WITH ao criar uma tabela dinâmica ou passe-o explicitamente durante uma atualização manual.
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
Exemplo |
|
|
Não |
|
Tipo de recurso para atualizar a tabela dinâmica. Valores aceitos: |
|
Sintaxe
V4.0.7 e posteriores
A versão V4.0.7 introduziu warehouse_name como valor válido, permitindo isolamento de recursos no nível do warehouse em instâncias de virtual warehouse. O significado de local também mudou: agora refere-se ao warehouse conectado atualmente, em vez do warehouse líder do grupo de tabelas (TG).
Crie uma tabela dinâmica com um recurso especificado:
-- Specify refresh resources when creating the table.
CREATE [EXTERNAL] DYNAMIC TABLE [ IF NOT EXISTS ] [<schema_name>.]<table_name>
[ (<col_name> [, ...] ) ]
[LOGICAL PARTITION BY LIST(<partition_key>)]
WITH (
freshness = '<num> {minutes | hours}', -- Required.
[computing_resource = {'local' | 'serverless' | '<warehouse_name>'},] -- Optional.
)
AS
<query>; -- Definition of the query.
Atualize manualmente com um recurso especificado:
-- Specify refresh resources during a manual refresh.
REFRESH DYNAMIC TABLE [<schema_name>.]<table_name>
WITH (computing_resource = 'local' | 'serverless' | '<warehouse_name>');
V4.0.1 a V4.0.6
A versão V4.0.1 alterou o recurso de atualização padrão de local para serverless. O valor warehouse_name não é suportado neste intervalo.
Crie uma tabela dinâmica:
CREATE [EXTERNAL] DYNAMIC TABLE [ IF NOT EXISTS ] [<schema_name>.]<table_name>
[ (<col_name> [, ...] ) ]
[LOGICAL PARTITION BY LIST(<partition_key>)]
WITH (
freshness = '<num> {minutes | hours}', -- Required.
[computing_resource = {'local' | 'serverless'},] -- Optional.
)
AS
<query>; -- Definition of the query.
Atualize manualmente:
REFRESH DYNAMIC TABLE [<schema_name>.]<table_name>
WITH ([computing_resource = 'local' | 'serverless']);
V3.1 a V3.2
A sintaxe e os padrões são os mesmos da V4.0.1–V4.0.6. O valor warehouse_name não é suportado.
Crie uma tabela dinâmica:
CREATE [EXTERNAL] DYNAMIC TABLE [ IF NOT EXISTS ] [<schema_name>.]<table_name>
[ (<col_name> [, ...] ) ]
[LOGICAL PARTITION BY LIST(<partition_key>)]
WITH (
freshness = '<num> {minutes | hours}', -- Required.
[computing_resource = {'local' | 'serverless'},] -- Optional.
)
AS
<query>; -- Definition of the query.
Atualize manualmente:
REFRESH DYNAMIC TABLE [<schema_name>.]<table_name>
WITH ([computing_resource = 'local' | 'serverless']);
V3.0
A V3.0 usa uma sintaxe diferente com parâmetros separados para atualizações incrementais e completas, e tem como padrão os recursos local.
Crie uma tabela dinâmica:
CREATE DYNAMIC TABLE [IF NOT EXISTS] <schema.tablename>(
[col_name],
[col_name]
) [PARTITION BY LIST (col_name)]
WITH (
[refresh_mode='[full|incremental]',]
[incremental_auto_refresh_schd_start_time='[immediate|<timestamptz>]',]
[incremental_auto_refresh_interval='[<num> {minute|minutes|hour|hours}]',]
[incremental_guc_hg_computing_resource='[local|serverless]',]
[full_guc_hg_computing_resource='[local|serverless]',]
)
AS
<query>; -- Definition of the query.
Atualize manualmente:
REFRESH DYNAMIC TABLE [<schema_name>.]<table_name>
WITH (
[incremental_guc_hg_computing_resource = 'local' | 'serverless',]
[full_guc_hg_computing_resource = 'local' | 'serverless']
);
Recursos de atualização padrão por versão
Padrões de atualização automática
V4.0.7 e posteriores
|
Tipo de tabela |
Instância sem virtual warehouse |
Instância de virtual warehouse |
|
Tabela dinâmica |
Serverless por padrão. É possível especificar |
Serverless por padrão. É possível especificar |
|
Tabela dinâmica externa |
Serverless por padrão. É possível especificar |
Serverless por padrão. É possível especificar |
V4.0.1 a V4.0.6
|
Tipo de tabela |
Instância sem virtual warehouse |
Instância de virtual warehouse |
|
Tabela dinâmica |
Serverless por padrão. É possível especificar |
Serverless por padrão. |
|
Tabela dinâmica externa |
Serverless por padrão. É possível especificar |
Serverless por padrão. |
V3.1 a V3.2
|
Tipo de tabela |
Instância sem virtual warehouse |
Instância de virtual warehouse |
|
Tabela dinâmica |
Serverless por padrão. É possível especificar |
Serverless por padrão. |
V3.0
|
Tipo de tabela |
Instância sem virtual warehouse |
Instância de virtual warehouse |
|
Tabela dinâmica |
|
|
Prioridade de recursos na atualização manual
Ao acionar uma atualização manual, o recurso utilizado segue esta ordem de prioridade:
Valor definido explicitamente: Se você passar
computing_resourcena instruçãoREFRESH, esse valor terá efeito independentemente da Linguagem de Definição de Dados (DDL) da tabela.Valor da DDL: Caso não passe
computing_resourcena instruçãoREFRESH, o sistema usará o valor da DDL da tabela.
Valores aceitos por tipo de instância (V4.0.7+):
Instância de virtual warehouse:
local(warehouse conectado atualmente),serverlessou<warehouse_name>Instância sem virtual warehouse:
local(recursos da instância) ouserverless
Valores aceitos por tipo de instância (V4.0.1–V4.0.6 e V3.1–V3.2):
Instância de virtual warehouse:
localouserverless.localusa o warehouse líder do TG da tabela base e o warehouse líder do TG da tabela dinâmica — vários warehouses podem estar envolvidos.Instância sem virtual warehouse:
local(recursos da instância) ouserverless
V3.0:
Instância de virtual warehouse:
local(warehouse líder do TG da tabela dinâmica) ouserverlessInstância sem virtual warehouse:
local(recursos da instância) ouserverless
Observações de uso
Se você definir
computing_resourcecomo umwarehouse_namee depois excluir esse virtual warehouse, a atualização falhará.Se você definir
computing_resourcecomo umwarehouse_namee depois renomear esse warehouse, a atualização continuará normalmente. O novo nome do warehouse aparecerá na DDL.-
Se você definir
computing_resourcecomoserverless, mas a consulta da tabela dinâmica não atender às condições para execução serverless, a atualização retornará automaticamente aos recursoslocal: A DDL (visível viahg_dump_script) ainda mostrarácomputing_resource = 'serverless'após o fallback. Se a consulta posteriormente atender às condições de execução serverless, as atualizações seguintes usarão recursos serverless. Para verificar quais recursos foram realmente usados em uma atualização específica, consulte o log de consultas lentas.Em uma instância de virtual warehouse:
localrefere-se ao warehouse líder do TG onde a tabela dinâmica reside. Para uma tabela dinâmica externa,localrefere-se ao warehouse padrão da instância.Em uma instância sem virtual warehouse:
localrefere-se aos recursos reservados da instância.
Observações sobre atualização de versão
As tabelas a seguir resumem como o comportamento dos recursos de atualização muda ao atualizar o Hologres. A principal diferença está entre as tabelas criadas com a nova sintaxe (V3.1+) e as tabelas que ainda usam a sintaxe legada da V3.0.
Alterações nos recursos de atualização automática ao atualizar
|
Versão de source |
Versão de destino |
Tipo de tabela |
Instância sem virtual warehouse |
Instância de virtual warehouse |
|
3.0 |
3.1, 3.2 ou 4.0.1–4.0.6 |
Tabela dinâmica |
Novas tabelas: O padrão muda de Legacy V3.0 tables: O padrão permanece |
Novas tabelas: O padrão muda de Tabelas legadas da V3.0: O padrão permanece |
|
3.0 |
4.0.7 e posteriores |
Tabela dinâmica |
Novas tabelas: O padrão muda de Legacy V3.0 tables: O padrão permanece |
Novas tabelas: O padrão muda de Tabelas legadas da V3.0: O padrão permanece |
|
3.1, 3.2 ou 4.0.1–4.0.6 |
4.0.7 e posteriores |
Tabela dinâmica |
Novas tabelas: O padrão permanece Legacy V3.0 tables: O padrão permanece |
Novas tabelas: O padrão permanece Tabelas legadas da V3.0: O padrão permanece |
|
4.0.1–4.0.6 |
4.0.7 e posteriores |
Tabela dinâmica externa |
Novas tabelas: O padrão permanece |
Novas tabelas: O padrão permanece Tabelas antigas (criadas na V4.0.1–4.0.6): O padrão permanece |
Alterações nos recursos de atualização manual ao atualizar
|
Versão de source |
Versão de destino |
Tipo de tabela |
Instância sem virtual warehouse |
Instância de virtual warehouse |
|
3.0 |
3.1, 3.2 ou 4.0.1–4.0.6 |
Tabela dinâmica |
O recurso explícito tem precedência. Sem configuração explícita, o valor da DDL é usado. |
O recurso explícito tem precedência. Sem configuração explícita, o valor da DDL é usado. Para tabelas com nova sintaxe: |
|
3.0 |
4.0.7 e posteriores |
Tabela dinâmica |
O recurso explícito tem precedência. Sem configuração explícita, o valor da DDL é usado. É possível especificar |
O recurso explícito tem precedência. Sem configuração explícita, o valor da DDL é usado. É possível especificar |
|
3.1, 3.2 ou 4.0.1–4.0.6 |
4.0.7 e posteriores |
Tabela dinâmica |
O recurso explícito tem precedência. Sem configuração explícita, o valor da DDL é usado. É possível especificar |
O recurso explícito tem precedência. Sem configuração explícita, o valor da DDL é usado. É possível especificar |
|
4.0.1–4.0.6 |
4.0.7 e posteriores |
Tabela dinâmica externa |
O recurso explícito tem precedência. Sem configuração explícita, o valor da DDL é usado. É possível especificar |
O recurso explícito tem precedência. Sem configuração explícita, o valor da DDL é usado. É possível especificar |