Todos os produtos
Search
Central de documentação

DataWorks:Usar tabelas dinâmicas do Hologres

Última atualização: Aug 25, 2026

Uma tabela dinâmica do Hologres atualiza os dados de forma automática e incremental, acelerando as consultas. Por meio do recurso Data Catalog, o DataWorks oferece uma interface visual de gerenciamento para tabelas dinâmicas do Hologres no módulo Data Directory, permitindo criar, configurar, monitorar e gerenciar essas tabelas sem escrever instruções DDL complexas. Use tabelas dinâmicas para desenvolver aplicações de dados em tempo real e near-real-time.

Limitações

  • Consultas e funções SQL — Para limites relacionados a consultas SQL, suporte a funções e outros aspectos das tabelas dinâmicas do Hologres, consulte a documentação do Hologres: Supported features and limits of dynamic tables.

Pré-requisitos

  • Um workspace do DataWorks com a opção Use Data Studio (New Version) ativada, vinculado a um grupo de recursos de computação que contenha o mecanismo do Hologres. Para obter instruções, consulte Configure a workspace e Manage computing resources.

  • Uma instância do Hologres executando a versão Hologres V3.1 ou posterior. Selecione essa versão ao criar a instância do Hologres.

  • Uma fonte de dados do Hologres no DataWorks aprovada no teste de conectividade. Para obter instruções, consulte Bind a Hologres computing resource.

  • Binlog ativado em cada tabela de source lida pela tabela dinâmica. A atualização incremental consome o Binlog da tabela de source.

  • Um nó SQL do Hologres no DataWorks ou outro cliente Hologres para executar as instruções SQL deste tópico.

Escolher o tipo de tabela dinâmica

A coluna de partição especificada durante a criação determina o tipo da tabela dinâmica. Escolha um dos caminhos abaixo. Eles são alternativos: siga aquele que corresponde à tabela dinâmica necessária.

Abrir a página de criação de tabela dinâmica

Ambos os exemplos neste tópico começam na página de criação de tabela dinâmica. Para abrir essa página, execute as etapas a seguir:

  1. Acesse o Data Studio no seu workspace do DataWorks.

    Acesse a página Workspaces no console do DataWorks. Na barra de navegação superior, selecione a região desejada. Localize o workspace desejado e escolha Shortcuts > Data Studio na coluna Actions.

  2. No painel de navegação à esquerda, clique em image para acessar o módulo Data Directory.

  3. Na seção Data Directory, localize a instância do Hologres desejada sob o tipo Hologres, expanda os diretórios em sequência e clique no ícone image ao lado de Dynamic Table.

Em um workspace no modo padrão, o Data Directory do Hologres contém duas instâncias de banco de dados: Development e Production. (Recomendado) Teste a nova tabela dinâmica do Hologres primeiro no banco de dados do ambiente de desenvolvimento e, após confirmar o resultado, crie-a no banco de dados do ambiente de produção.

Importante

Em um workspace no modo padrão, as tabelas dinâmicas criadas no banco de dados do ambiente de desenvolvimento do Hologres não são sincronizadas automaticamente com o banco de dados do ambiente de produção. Para consultar essas tabelas no banco de dados de produção, crie as tabelas dinâmicas do Hologres separadamente nesse banco.

Início rápido: criar uma tabela dinâmica não particionada

Este exemplo cria uma tabela dinâmica não particionada que agrega automaticamente e de forma incremental os dados de pedidos da tabela de source orders, mantendo os dados agregados atualizados dentro de 5 minutos.

Etapa 1: Preparar os dados de source

Prepare uma tabela de source no seu banco de dados Hologres. Execute as seguintes instruções SQL para criar uma tabela de pedidos chamada orders e inserir dados iniciais:

-- Create the source table and enable Binlog to support incremental refresh
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    user_name TEXT,
    price FLOAT,
    order_time TIMESTAMPTZ
) WITH (
    binlog_level = 'replica', -- Key setting: enable Binlog
    binlog_ttl = '86400'      -- Binlog retention period in seconds, for example, one day
);
-- Insert initial data
INSERT INTO orders VALUES 
(1, 101, 'Alice', 99.9, NOW()),
(2, 102, 'Bob', 19.5, NOW()),
(3, 101, 'Alice', 25.0, NOW());

Etapa 2: Abrir a página de criação de tabela dinâmica

Abra a página de criação de tabela dinâmica para o banco de dados Hologres desejado. Para obter instruções, consulte Open the dynamic table creation page.

Etapa 3: Definir a lógica de consulta e executar a pré-compilação

  1. Insira as informações básicas:

    • Dynamic table name: Insira um nome único para a tabela, como dt_user_orders_agg.

    • Description: Descreva a finalidade da tabela, por exemplo, "Estatísticas de pedidos agregadas por usuário".

  2. Na seção Field Information, na aba Data Generation SQL, escreva a consulta SELECT que define a lógica de dados da tabela dinâmica:

    SELECT 
        user_id,
        user_name,
        COUNT(*) AS order_count,
        SUM(price) AS total_price
    FROM public.orders
    GROUP BY user_id, user_name;
    Nota

    Insira apenas a instrução SELECT. Não é necessário incluir o comando DDL CREATE DYNAMIC TABLE. O sistema analisa a instrução DDL completa a partir da sua configuração e a exibe na área DDL à direita.

  3. Clique em Precompile acima do editor SQL.

    A pré-compilação é uma etapa obrigatória. Após o sucesso da pré-compilação, o sistema lista os modos de atualização suportados e analisa as colunas de saída da tabela dinâmica. Se a pré-compilação falhar, o sistema retorna a causa específica. Modifique a instrução SQL com base na mensagem e execute a pré-compilação novamente. Para entender o que a pré-compilação verifica e como interpretar seu resultado, consulte Appendix: configuration reference.

  4. (Opcional) Clique na aba Field Details para visualizar todas as colunas, tipos de dados e propriedades non-null analisadas pelo sistema, e adicione um comentário para cada coluna na coluna Description para facilitar a leitura dos metadados.

Neste exemplo, a aba Field Details exibe quatro colunas: user_id (integer), user_name (text), order_count (bigint) e total_price (double precision). Todas as colunas são non-null.

Este exemplo não utiliza as configurações de partição nem as configurações avançadas de parâmetros. Para descrições dos parâmetros, consulte Appendix: configuration reference.

Etapa 4: Configurar a política de atualização de dados

Após o sucesso da pré-compilação, o painel Refresh Policy no lado direito da página torna-se editável.

Selecione a política de atualização adequada ao seu cenário. Auto-Refresh é o padrão recomendado quando não há necessidade de forçar um modo específico de atualização. Incremental Refresh força apenas a atualização incremental, enquanto Full Refresh se aplica quando a tabela de source não possui chave primária ou Binlog. Este exemplo usa Incremental Refresh porque o cenário exige sincronização de dados com baixa latência.

Para a descrição completa de cada parâmetro, consulte Appendix: configuration reference e Hologres refresh modes and resources.

  • Basic Parameters:

    • Table Type: Como nenhuma coluna de partição foi selecionada, o sistema identifica a tabela como Non-Partitioned Table.

    • Refresh Policy: Selecione Incremental Refresh.

    • Refresh trigger method: Mantenha Hologres auto refresh, que é o único valor suportado.

    • Automatically Refresh Data: Mantenha o valor padrão Yes.

    • Data Freshness: Defina este parâmetro como 5 minutes. Assim, a latência da tabela dinâmica em relação à tabela de source permanecerá sempre dentro de 5 minutos.

    • Base Table Consumption Mode for Incremental Refresh: Selecione stream.

    • Hologres computing resources: Selecione Serverless resources para que as tarefas de atualização não consumam recursos da sua própria instância.

  • Advanced Parameters (opcional): Mantenha os valores padrão neste exemplo. Para definir parâmetros GUC especiais, consulte GUC parameters.

Etapa 5: Publicar a tabela dinâmica

  1. Após confirmar que todas as configurações estão corretas, clique em Publish na parte superior da página.

  2. Na caixa de diálogo de confirmação exibida, clique em Publish novamente.

A tabela dinâmica do Hologres é criada e publicada. Quando dados forem inseridos ou atualizados na tabela de source orders, a tabela dinâmica dt_user_orders_agg atualizará seus resultados agregados em aproximadamente 5 minutos.

Etapa 6: Verificar a atualização

Insira ou atualize linhas na tabela de source orders. Após o término da janela de atualização de dados configurada de 5 minutos, consulte dt_user_orders_agg. Os resultados agregados incluirão os novos dados. Para verificar se as tarefas de atualização estão sendo executadas conforme esperado, consulte View and monitor dynamic tables.

Exemplo avançado: criar uma tabela dinâmica particionada por dia

Este exemplo cria uma tabela dinâmica particionada. A tabela agrega os novos usuários diários de uma tabela de registro de usuários, criando e gerenciando partições automaticamente.

Este exemplo utiliza 2026-02-27 como a data atual. Substitua todas as ocorrências de 2026-02-27 pela data atual do seu ambiente, garantindo que os dados de amostra, o nome da partição e a consulta de verificação refiram-se ao mesmo dia.

Etapa 1: Preparar os dados de source

Crie uma tabela de source chamada users que registre informações de cadastro de usuários. A tabela deve conter uma coluna de timestamp para servir como base de particionamento.

-- Create the user registration table and enable Binlog
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    user_name TEXT,
    region TEXT,
    registration_time TIMESTAMPTZ  -- User registration time, of the TIMESTAMPTZ type
) WITH (
    binlog_level = 'replica',
    binlog_ttl = '86400'
);
-- Insert test data. Replace the dates with the current data timestamp.
INSERT INTO users VALUES 
(1, 'Alice', 'CN-Hangzhou', '2026-02-27 10:00:00+08'),
(2, 'Bob', 'CN-Shanghai', '2026-02-27 14:30:00+08'),
(3, 'Charlie', 'CN-Beijing', (NOW() - INTERVAL '1 day')::TIMESTAMPTZ);

Nestes dados de amostra, Alice e Bob foram registrados na data atual, enquanto Charlie foi registrado um dia antes. As duas datas de registro demonstram como os registros são distribuídos entre as partições diárias.

Etapa 2: Abrir a página de criação de tabela dinâmica

Abra a página de criação de tabela dinâmica para o banco de dados Hologres desejado. Para obter instruções, consulte Open the dynamic table creation page.

Etapa 3: Definir a lógica de consulta e executar a pré-compilação

  1. Insira as informações básicas:

    • Dynamic table name: dwd_user_new_user_detail_di

    • Description: Estatísticas detalhadas diárias de novos usuários

  2. Escreva uma instrução SQL que extraia todos os registros de usuários da tabela users. Não é necessário filtrar a hora manualmente na cláusula WHERE, pois o mecanismo de particionamento da tabela dinâmica lida com isso automaticamente.

    SELECT 
        user_id,
        user_name,
        region,
        registration_time, -- Keep the original precise time column for queries
        CAST(registration_time AS DATE) AS ds -- [Key] Cast the timestamp to the DATE type to use as the partition key
    FROM public.users;
  3. Clique em Precompile. Após o sucesso da pré-compilação, o sistema analisa as informações das colunas.

Etapa 4: Selecionar a coluna de partição

Selecionar uma coluna de partição é a etapa que transforma a tabela dinâmica em uma tabela particionada.

  1. Na seção Partition Field Information, clique na lista suspensa Partition Column.

  2. Selecione a nova coluna ds como coluna de partição.

Após selecionar a coluna de partição, o DataWorks identifica a tabela como particionada e exibe os itens de configuração relacionados à partição.

Etapa 5: Configurar as políticas de partição e atualização

Para a descrição completa de cada parâmetro, consulte Appendix: configuration reference e Hologres partition properties.

  • Partition Configurations:

    • Partition Properties: O sistema exibe Logical Partition automaticamente.

    • Partition Format: Selecione yyyy-mm-dd para criar partições por dia, correspondendo aos valores DATE da chave de partição ds.

    • Partition Refresh Scope: Defina este parâmetro como 7 days.

    • Partition Management > Partition Retention Period: Defina este parâmetro como 30 days.

  • Refresh Policy Configurations:

    • Refresh Policy: Selecione Auto-Refresh para permitir que o Hologres decida entre atualização incremental e completa.

    • Refresh trigger method: Mantenha Hologres auto refresh, que é o único valor suportado.

    • Data Freshness: Defina este parâmetro como 10 minutes.

    • Hologres computing resources: Selecione Serverless resources.

Etapa 6: Publicar a tabela dinâmica

Clique em Publish na parte superior da página.

Etapa 7: Visualizar as partições e verificar os dados

  1. Expanda a tabela dwd_user_new_user_detail_di. As sub-tabelas de partição criadas com base na data aparecerão, como 2026-02-27.

  2. Em um nó SQL do Hologres, insira novos dados para o dia atual na tabela users:

    INSERT INTO users VALUES (4, 'David', 'CN-Shenzhen', '2026-02-27 18:00:00+08');
  3. Aguarde cerca de 10 minutos para que a atualização automática seja executada. Para verificar o resultado imediatamente, atualize a partição manualmente:

    REFRESH DYNAMIC TABLE dwd_user_new_user_detail_di PARTITION (ds = '2026-02-27');
  4. Consulte os dados pela nova chave de partição ds, o que é mais eficiente:

    -- Efficient query: filter directly on the partition key
    SELECT * FROM dwd_user_new_user_detail_di WHERE ds = '2026-02-27';

A consulta retorna os registros cuja data de registro corresponde à data consultada, incluindo o novo usuário David (user_id=4, CN-Shenzhen). Cada registro retornado contém as colunas user_id, user_name, region, registration_time e ds, sendo que o valor ds de cada registro retornado é a data consultada. Charlie (user_id=3, CN-Beijing) foi registrado um dia antes, portanto esse registro pertence à partição do dia anterior e não é retornado pela consulta.

Visualizar e monitorar tabelas dinâmicas

Uma tabela dinâmica continua sendo atualizada após a publicação, portanto, a página de detalhes da tabela dinâmica é o local para verificar sua configuração e status de atualização. Na lista de tabelas dinâmicas no módulo Data Directory, clique na tabela dinâmica criada, como dt_user_orders_agg, para acessar a página de detalhes.

Visualizar as informações estáticas

Os seguintes itens na página de detalhes descrevem como a tabela dinâmica é definida:

  • Details: Informações de esquema da tabela, como lista de colunas, tipos de dados e chave primária.

  • Basic information: Configurações principais da tabela, como proprietário, lógica de atualização de dados (SQL) e política de atualização.

  • DDL: A instrução DDL completa que cria a tabela dinâmica. Você pode copiar a instrução para migrar ou reproduzir a tabela.

Monitorar as tarefas de atualização

Clique na aba Output information para monitorar o status de atualização da tabela dinâmica.

  • Data refresh: Se uma tarefa de atualização estiver em execução, esta área exibe informações em tempo real sobre a tarefa, como PID, ID da consulta, status e duração da execução.

  • Output History: Esta área registra o histórico de cada tarefa de atualização. A tabela a seguir descreve os campos de cada registro.

Campo

Descrição

Query ID

O ID exclusivo de uma tarefa histórica de atualização. Use o ID da consulta para troubleshooting detalhado no Hologres.

Refresh Mode

O modo de atualização da tarefa, por exemplo, Incremental Refresh.

Status

O status final da tarefa: Successful ou Failed.

Run Time (seconds)

A duração total da tarefa.

Data consumption delay (seconds)

(Apenas atualização incremental) A latência de processamento de dados da tabela dinâmica.

Compute resources

Os recursos consumidos pela tarefa. Use este campo para análise de custos e ajuste de desempenho.

Gerenciar tabelas dinâmicas

Use a aba Output information da página de detalhes para controlar como uma tabela dinâmica é atualizada, e use a lista de tabelas dinâmicas no módulo Data Directory para modificar ou excluir a tabela.

Controlar a atualização de uma tabela dinâmica

Os seguintes botões de ação estão disponíveis na aba Output information:

  • Pause Refresh / Recovery Refresh: Interrompe temporariamente ou retoma a atualização automática do Hologres.

  • Manual Refresh: Aciona uma tarefa de atualização manualmente para atualizar os dados imediatamente.

  • Convert to Full Table: Altera o modo de atualização da tabela dinâmica para Full Refresh e interrompe a atualização automática. Este botão aparece apenas quando a política de atualização da tabela dinâmica é Auto-Refresh ou Incremental Refresh.

Importante

Convert to Full Table altera permanentemente o modo de atualização da tabela dinâmica, e a tabela deixa de ser atualizada automaticamente após a conversão. Confirme se a atualização completa atende aos requisitos de atualização de dados da sua carga de trabalho antes de usar esta ação.

Modificar uma tabela dinâmica

Localize a tabela dinâmica no módulo Data Directory e clique em Edit no canto superior direito da página de detalhes para abrir a página de edição. A maioria dos itens de configuração suporta modificação. Para os parâmetros que podem ser modificados, consulte a documentação do Hologres: Modify a dynamic table.

Excluir uma tabela dinâmica

Na lista de tabelas dinâmicas no módulo Data Directory, clique com o botão direito na tabela desejada e selecione Delete.

Apêndice: referência de configuração

Esta seção serve como referência para todos os itens de configuração de uma tabela dinâmica do Hologres. As etapas dos exemplos indicam apenas qual valor cada cenário utiliza.

Informações de coluna e coluna de partição

  • Informações de coluna (SQL) — A consulta SELECT que define a fonte de dados da tabela dinâmica. A pré-compilação é uma etapa obrigatória.

  • Coluna de partição

    • Não selecionada: Cria uma tabela não particionada.

    • Uma coluna de hora ou data selecionada: Cria uma tabela particionada. O sistema muda automaticamente para o modo de configuração de tabela particionada.

Pré-compilação

A pré-compilação interage com o mecanismo do Hologres em tempo real para executar as seguintes tarefas:

  • Validar a sintaxe — Verifica se a instrução SELECT está em conformidade com as regras de sintaxe SQL.

  • Inferir o modo de atualização — Analisa a lógica da consulta e as propriedades da tabela de source para determinar quais modos de atualização são suportados: automática, incremental ou completa.

  • Analisar as colunas — Se a sintaxe estiver correta, o sistema analisa as colunas de saída e os tipos de dados da tabela dinâmica.

A pré-compilação retorna um dos seguintes resultados:

  • Sucesso — O sistema indica que a sintaxe está correta e lista os modos de atualização suportados. Você pode prosseguir com as configurações restantes.

  • Falha — Se a instrução SQL contiver um erro ou a lógica não atender aos requisitos de uma tabela dinâmica, o sistema retorna a causa específica. Modifique a instrução SQL com base na mensagem e execute a pré-compilação novamente.

Configurações de atualização de dados

Configurações comuns

  • Política de atualização

    • Auto-Refresh — (Recomendado) O Hologres decide entre atualização incremental ou completa, equilibrando desempenho e facilidade de uso.

    • Incremental Refresh — Força apenas a atualização incremental. Use esta opção quando precisar de alta atualização de dados.

    • Full Refresh — Recalcula todos os dados a cada atualização. Use esta opção quando a tabela de source não tiver chave primária ou Binlog, ou quando a lógica de consulta for complexa.

  • Modo de acionamento de atualização — Apenas Hologres auto refresh é suportado.

  • Automatically Refresh Data — A chave mestra da atualização automática.

  • Data Freshness — Define a latência máxima aceitável de dados e é a condição principal de acionamento para atualização automática. O sistema aciona atualizações dinamicamente com base nos dados recebidos, mantendo a latência da tabela dinâmica em relação à tabela de source dentro do valor configurado.

  • Base Table Consumption Mode for Incremental Refresh — Define como o Binlog é consumido. stream (streaming) é o modo padrão e recomendado, oferecendo baixa latência.

  • Hologres computing resources

    • Serverless resources — (Recomendado) Usa recursos serverless do Hologres para executar atualizações, sem consumir recursos de computação da instância, proporcionando isolamento de recursos.

    • Local Instance Resources (local) — Usa os recursos de computação da instância. Se a instância utilizar virtual warehouses (V4.0 ou posterior), você pode selecionar um virtual warehouse específico.

Configurações de partição

Os seguintes itens de configuração aparecem apenas após a seleção de uma coluna de partição. As tabelas dinâmicas da nova versão utilizam todas partições lógicas.

  • Formato de partição — (Obrigatório) Define como as partições são geradas a partir dos valores da coluna de partição. Por exemplo, se o tipo da coluna for TIMESTAMPTZ e você selecionar o formato yyyy-mm-dd, as partições serão criadas por dia.

  • Escopo de atualização de partição — Define o intervalo de partições ativas para atualização automática. Por exemplo, se você definir o intervalo para os últimos 7 dias, o Hologres atualizará automaticamente apenas as partições dos últimos 7 dias. Partições anteriores deixam de ser atualizadas automaticamente, economizando recursos.

  • Gerenciamento de partição (recolhido por padrão)

    • Período de retenção de partição — Define o tempo de vida (TTL) de uma partição. Partições expiradas são excluídas automaticamente.

    • Período de retenção de armazenamento quente para dados de partição — Funciona com armazenamento em camadas quente e frio para definir por quanto tempo os dados da partição permanecem no armazenamento quente (SSD).

Configurações avançadas (propriedades da tabela)

As seguintes propriedades físicas aplicam-se à própria tabela dinâmica e são semelhantes às configurações de uma tabela comum do Hologres.

Parâmetro

Descrição

Storage Mode

O Hologres suporta três modos de armazenamento: Column-oriented Storage, Line Deposit e Coexistence of ranks. O modo padrão é Column-oriented Storage. O armazenamento orientado a colunas é adequado para consultas complexas em cenários OLAP; o armazenamento orientado a linhas é ideal para consultas chave-valor (KV) baseadas na chave primária (PK); e a coexistência linha-coluna atende tanto a cenários orientados a colunas quanto a linhas. Para mais informações, consulte Storage modes.

Table Group

Selecione o nome do Table Group gerado ao criar uma tabela interna na fonte de dados do Hologres. Para mais informações, consulte Table groups.

Storage Policy

O Hologres oferece duas políticas de armazenamento para dados: armazenamento padrão (Thermal storage) e armazenamento de acesso pouco frequente (Cold storage). O armazenamento quente é totalmente SSD e é o armazenamento padrão do Hologres. Ele atende a requisitos de acesso a dados de baixa latência e alto desempenho, sendo a escolha mais eficaz e econômica para a maioria dos cenários. O armazenamento frio é totalmente HDD e atende aos requisitos de armazenamento de baixo custo para dados acessados raramente. É adequado para conjuntos de dados muito grandes que não são sensíveis à latência ou são raramente acessados. Para mais informações, consulte Storage policies.

Table Data Lifecycle

Personalize o ciclo de vida máximo dos dados da tabela dinâmica.

Binlog

Ative (replica) ou desative (none) a assinatura do Binlog do Hologres. Este recurso vem desativado por padrão. Para mais informações, consulte Subscribe to Hologres Binlog.

Binlog lifecycle

Após ativar (replica) a assinatura do Binlog do Hologres, defina o ciclo de vida máximo do Binlog armazenado. Para mais informações, consulte Subscribe to Hologres Binlog.

Field Properties

Configurações de propriedades de coluna. Configure a Distribution Column, Event Time Column, Clustering Key, Bitmap Column e Dictionary Encoding Columns para o Field Name correspondente, com base nas descrições na tela. Para mais informações, consulte Column properties.