A Dynamic Table do Hologres é uma arquitetura declarativa de processamento de dados que processa e armazena automaticamente resultados agregados de uma ou mais tabelas base. Ela inclui políticas integradas e configuráveis de atualização de dados, permitindo o encaminhamento automático de dados das tabelas base para as Dynamic Tables. Essa abordagem atende à necessidade de desenvolvimento unificado, encaminhamento automático de dados e processamento oportuno.
Quando usar a Dynamic Table
A Dynamic Table é adequada quando:
Você deseja automatizar a transformação de dados sem escrever código personalizado de agendamento.
Você quer evitar o rastreamento manual de dependências de dados e o gerenciamento de cronogramas de atualização.
É necessário encadear várias tabelas para transformação de dados em um pipeline — por exemplo, construindo automaticamente as camadas de detalhe de data warehouse (DWD) → serviço de data warehouse (DWS) → serviço de dados de aplicação (ADS).
Sua carga de trabalho não exige atualidade estrita em tempo real, sendo suficiente uma tempestividade no nível de minutos ou horas.
Você pretende consolidar uma arquitetura Lambda em um único mecanismo com uma interface SQL unificada.
Vantagens
Arquitetura de data warehouse simplificada: Os modos de atualização completa e incremental suportam tanto a transformação de dados offline quanto a transformação quase em tempo real. Com base no armazenamento unificado do Hologres, a Dynamic Table atende diretamente a vários cenários de aplicação — consultas de processamento analítico online (OLAP), serviços online e cargas de trabalho de IA — usando um único mecanismo, uma única computação e uma única instrução SQL. Isso substitui a arquitetura Lambda e reduz os custos de desenvolvimento e de operações e manutenção (O&M).
Automatic data warehouse layering: A Dynamic Table aciona automaticamente uma atualização com base na atualidade dos dados da tabela base, permitindo o encaminhamento automático de dados através das camadas operation data store (ODS) → DWD → DWS → ADS.
Maior eficiência de ETL: A atualização incremental processa apenas novos dados da tabela base em cada execução, reduzindo o volume de dados computados por ciclo de extração, transformação e carga (ETL). Os recursos não precisam ficar constantemente ativos, como ocorre na computação de fluxo. As atualizações automáticas acionadas pela atualidade dos dados reduzem os custos de computação.
Menores custos de desenvolvimento e O&M: Todos os modos de atualização utilizam uma interface SQL unificada. As Dynamic Tables gerenciam automaticamente as tarefas de atualização e as dependências hierárquicas entre as camadas, simplificando fluxos de trabalho complexos de desenvolvimento e O&M.
Conceitos principais
Tabela base: Fonte de dados para uma Dynamic Table. Pode ser uma única tabela interna ou externa, ou uma junção de várias tabelas. Os tipos de tabela base suportados variam conforme o modo de atualização. Para obter mais informações, consulte Recursos e limites suportados da Dynamic Table.
Consulta: Consulta especificada ao criar uma Dynamic Table. Define como os dados da tabela base são processados, de forma semelhante a um processo de ETL. Os tipos de consulta suportados variam conforme o modo de atualização. Para obter mais informações, consulte Recursos e limites suportados da Dynamic Table.
Atualização: Quando os dados em uma tabela base mudam, a Dynamic Table deve ser atualizada para refletir essas alterações. As Dynamic Tables executam automaticamente tarefas de atualização em segundo plano, com base no horário de início e no intervalo configurados. Para obter mais informações sobre monitoramento e gerenciamento de tarefas de atualização, consulte Gerencie tarefas de atualização da Dynamic Table.
Como funciona
Os dados de uma tabela base são gravados em uma Dynamic Table por meio de um processo de atualização, seguindo o fluxo de processamento de dados definido pela consulta da Dynamic Table. As seções a seguir descrevem os princípios técnicos da Dynamic Table, abordando modos de atualização, recursos de computação, armazenamento de dados e índices de tabela.
Modos de atualização
A Dynamic Table suporta dois modos de atualização: completa e incremental. Os princípios técnicos subjacentes diferem dependendo do modo de atualização configurado.
Atualização completa
A atualização completa processa todos os dados durante cada execução. Ela materializa os resultados agregados da tabela base e os grava na Dynamic Table. O princípio técnico é semelhante a uma operação INSERT OVERWRITE.
Atualização incremental
A atualização incremental lê apenas novos dados da tabela base em cada execução. Ela calcula o resultado final com base no estado de agregação intermediário e nos dados incrementais e, em seguida, atualiza a Dynamic Table. Em comparação com a atualização completa, a atualização incremental processa menos dados por execução, o que melhora a tempestividade e reduz o uso de recursos de computação.
Princípio técnico
Ao criar uma Dynamic Table com atualização incremental, o sistema lê dados incrementais da tabela base usando o método Stream ou Binlog. Em seguida, cria uma tabela de estado orientada a colunas em segundo plano, que armazena o estado de agregação intermediário da consulta. O mecanismo DPI otimiza a codificação e o armazenamento desse estado intermediário para acelerar a leitura e a atualização. Os dados incrementais são agregados em microlotes na memória e mesclados com a tabela de estado. Os resultados agregados mais recentes são então gravados na Dynamic Table usando o método BulkLoad.
Escolha entre Stream e Binlog
|
Método |
Princípio |
Desempenho de leitura |
Observações |
|
Stream (recomendado) |
Detecta alterações de dados no nível do arquivo para calcular os dados incrementais da tabela base. |
Mais de 10 vezes superior ao Binlog. |
Mais simples de usar. Não registra alterações incrementais separadamente — sem sobrecarga extra de armazenamento e sem necessidade de gerenciamento de ciclo de vida de log binário. Não suporta tabelas orientadas a linhas como tabelas base. |
|
Binlog |
O registro binário grava alterações de Linguagem de Manipulação de Dados (DML) na tabela base e as armazena como um log binário em segundo plano. O sistema lê o log binário para detectar alterações nos dados. |
Inferior. |
Gera sobrecarga extra de armazenamento. Exige gerenciamento do ciclo de vida de armazenamento do log binário (TTL); caso contrário, o uso de armazenamento cresce continuamente conforme os dados mudam. |
Notas de uso
Existem certos limites para as tabelas base suportadas pela atualização incremental. Para obter mais informações, consulte Recursos e limites suportados da Dynamic Table.
A tabela de estado integrada para atualização incremental ocupa algum espaço de armazenamento. O sistema define um TTL para limpar periodicamente os dados. Use a função fornecida para visualizar o tamanho de armazenamento da tabela de estado. Para obter mais informações, consulte Gerencie tabelas de estado.
Escolher um modo de atualização
Utilize os seguintes critérios para selecionar um modo de atualização:
|
Condição |
Modo recomendado |
|
A consulta usa operadores suportados e as tabelas base não são orientadas a linhas |
Incremental |
|
Uma grande porcentagem de dados muda por atualização ou a consulta inclui operadores não suportados |
Completa |
|
Carga inicial ou garantia de consistência de dados entre camadas |
Completa (única vez) |
Recursos de computação
As tarefas de atualização podem usar recursos da instância atual ou recursos Serverless:
Recursos Serverless (padrão): No Hologres V3.1 e posterior, novas Dynamic Tables usam recursos Serverless por padrão. Para consultas complexas ou grandes volumes de dados, os recursos Serverless melhoram a estabilidade da atualização e evitam contenção de recursos entre tarefas dentro da instância. Os recursos de computação para uma única tarefa de atualização podem ser ajustados independentemente.
Recursos da instância atual: A tarefa de atualização compartilha recursos com outras tarefas na instância, o que pode causar contenção de recursos durante horários de pico.
Armazenamento de dados
O armazenamento de dados de uma Dynamic Table é igual ao de uma tabela padrão, usando o modo de armazenamento quente por padrão. Para reduzir custos de armazenamento, mova dados raramente consultados para o armazenamento frio.
Índices de tabela
Consultar uma Dynamic Table diretamente equivale a consultar os resultados agregados, o que melhora significativamente o desempenho da consulta. Assim como as tabelas padrão, as Dynamic Tables suportam índices de tabela, como row store ou column store, Distribution Key e Clustering Key. O mecanismo DPI infere índices adequados com base na consulta da Dynamic Table. Defina índices adicionais para melhorar ainda mais o desempenho da consulta.

Comparação com visualizações materializadas
Dynamic Table vs. visualização materializada em tempo real do Hologres
O Hologres introduziu visualizações materializadas gerenciadas por SQL na versão V1.3. A Dynamic Table estende significativamente esses recursos.
| Recurso | Dynamic Table do Hologres | Visualização materializada em tempo real do Hologres |
|---|---|---|
| Tipo de tabela base | Tabela interna; Tabela externa (MaxCompute, Paimon, OSS); Dynamic Table; View | Única tabela interna |
| Operações na tabela base | Gravação, Atualização, Exclusão | Gravações apenas de anexação |
| Princípio de atualização | Atualização assíncrona (completa ou incremental) | Síncrona |
| Tempestividade da atualização | Nível de minutos ou horas | Tempo real |
| Tipos de consulta | Agregação de tabela única; Junção de múltiplas tabelas; JOIN de tabela de dimensão; OLAP complexo (funções de janela, CTEs, RB, etc.) Nota
Os tipos de consulta suportados variam conforme o modo de atualização. Para obter mais informações, consulte Recursos e limites suportados da Dynamic Table. |
Suporte limitado a operadores (funções AGG, RB, etc.) |
| Modo de consulta | Consultar a Dynamic Table diretamente | Consultar a visualização materializada diretamente; Reescrita de consulta |
Dynamic Table vs. visualização materializada assíncrona
Outras plataformas oferecem recursos semelhantes à Dynamic Table, como visualizações materializadas assíncronas em produtos OLAP e a Snowflake Dynamic Table.
| Recurso | Dynamic Table do Hologres | Visualização materializada assíncrona de produto OLAP | Snowflake Dynamic Table |
|---|---|---|---|
| Tipo de tabela base | Tabela interna; Tabela externa (MaxCompute, Paimon, OSS); Dynamic Table; View Nota
Os tipos de consulta suportados variam conforme o modo de atualização. Para obter mais informações, consulte Recursos e limites suportados da Dynamic Table. |
Tabela interna; Tabela externa (Hive, Hudi, Iceberg, etc.); Visualização materializada; View | Tabela interna; Dynamic Table; View |
| Modo de atualização | Completa; Incremental | Completa; Atualização por partição especificada ou intervalo de timestamp | Completa; Incremental |
| Tempestividade da atualização | Nível de minutos ou horas | Nível de horas | Nível de horas ou minutos |
| Tipos de consulta | Agregação de tabela única; Junção de múltiplas tabelas; JOIN de tabela de dimensão; OLAP complexo (funções de janela, CTEs, RB, etc.) | Agregação de tabela única; Junção de múltiplas tabelas; JOIN de tabela de dimensão; OLAP complexo (funções de janela, CTEs, etc.) | Agregação de tabela única; Junção de múltiplas tabelas; JOIN de tabela de dimensão; OLAP complexo (funções de janela, CTEs, etc.) |
| Modo de consulta | Consultar a Dynamic Table diretamente | Consultar a visualização materializada diretamente; Reescrita de consulta | Consultar a Dynamic Table diretamente |
| Monitoramento/O&M | Interfaces de visualização do DataWorks e HoloWeb; Métricas ricas de monitoramento | Métricas ricas de monitoramento | Interface de visualização |
Casos de uso
A Dynamic Table conclui automaticamente a transformação e o armazenamento de dados, oferecendo tanto aceleração de dados quanto melhoria na tempestividade dos negócios.
Atualização da arquitetura Lambda
A arquitetura Lambda usa vários componentes de produtos para atender a diferentes requisitos de tempestividade, resultando em uma arquitetura redundante, definições de dados inconsistentes, manutenção difícil e redundância de armazenamento. A Dynamic Table suporta transformação de dados em lote e processamento quase em tempo real. Combinada com o armazenamento unificado do Hologres — que suporta consultas OLAP e consultas pontuais de chave-valor (KV) — ela cobre vários cenários de aplicação dentro de um único produto, simplificando a arquitetura e reduzindo a complexidade de desenvolvimento e os custos de armazenamento.

Processamento de dados quase em tempo real
Para tabelas base grandes que exigem processamento complexo de ETL, a criação de camadas de data warehouse é a abordagem padrão. A Dynamic Table possui processamento automático de dados integrado, facilitando a implementação de camadas no Hologres.
Construa as camadas DWD → DWS → ADS no Hologres usando Dynamic Tables:
Use atualização incremental entre as camadas. Isso garante que menos dados sejam processados em cada camada, reduz cálculos repetidos e melhora a velocidade de sincronização. Envie tarefas de atualização para o Serverless Computing para aumentar ainda mais a tempestividade e a estabilidade.
Execute uma atualização completa única para garantir a consistência dos dados entre as camadas. Envie a tarefa de atualização completa também para o Serverless Computing.
Cada camada permite consultas diretas no Hologres, proporcionando camadas claras de data warehouse com visibilidade e reutilização em todos os níveis.

Aceleração de Lakehouse
As tabelas base da Dynamic Table podem vir de tabelas do Hologres, data warehouses como MaxCompute ou data lakes como OSS e Paimon. Atualizações completas ou incrementais nesses dados atendem a várias necessidades de consulta e exploração com diferentes requisitos de tempestividade.
Consultas periódicas de relatórios: Para cenários de observação periódica com pequenos volumes de dados ou consultas simples, use atualização completa ou incremental. Atualize periodicamente os resultados de agregação e análise dos dados do lakehouse para uma Dynamic Table. A camada de aplicação consulta a Dynamic Table diretamente para recuperar resultados pré-computados, acelerando as consultas de relatórios.
Painéis e relatórios em tempo real: Para cenários com maiores requisitos de tempestividade, use atualização incremental. Atualize os resultados de agregação e análise do Paimon ou de dados em tempo real para uma Dynamic Table, permitindo análises quase em tempo real.

Substituição de agendamento periódico offline
Em cenários típicos de processamento offline, o volume de dados é grande e o ciclo de computação é longo. Uma abordagem comum executa processamento T+H (por exemplo, a cada 30 minutos) de DWD para DWS e para ADS, além de um pipeline offline T+1 separado para processar os dados dos últimos dias com precisão. Isso resulta em computação redundante, desperdício de recursos e duplicação de dados. Tarefas agendadas também podem bloquear jobs downstream quando não são concluídas a tempo.
Com a Dynamic Table, use atualização incremental T+H para cada camada de DWD para DWS e para ADS. Vários jobs são mesclados em um único job de computação incremental. As Dynamic Tables lidam com o agendamento automaticamente, eliminando a necessidade de manter jobs de agendamento externos. Apenas dados incrementais são computados a cada vez, o que elimina computação redundante, acelera os cálculos, evita acúmulos de tarefas e reduz significativamente o uso de recursos de computação.