Tabelas dinâmicas¶
As tabelas dinâmicas são tabelas que se atualizam automaticamente com base em uma consulta definida e na atualização do destino, simplificando a transformação de dados e o gerenciamento de pipeline sem exigir atualizações manuais ou agendamento personalizado.
Ao criar uma tabela dinâmica, você define uma consulta que especifica como os dados devem ser transformados a partir de objetos base. O Snowflake manipula o cronograma de atualização da tabela dinâmica e atualiza a tabela automaticamente para refletir as alterações feitas nos objetos base de acordo com a consulta.
Principais considerações e práticas recomendadas gerais¶
Restrições de imutabilidade: Use restrições de imutabilidade para poder controlar as atualizações de tabelas dinâmicas. As restrições mantêm linhas específicas estáticas enquanto permitem atualizar o restante da tabela de forma incremental. Elas impedem alterações indesejadas nos dados marcados enquanto permitem atualizações normais em outras partes da tabela. Para obter mais informações, consulte Criação de tabelas dinâmicas com restrições de imutabilidade.
Considerações sobre desempenho: as tabelas dinâmicas usam processamento incremental para cargas de trabalho compatíveis, o que pode melhorar o desempenho ao recalcular apenas os dados que foram alterados, em vez de realizar uma atualização completa. Para mais informações, consulte Práticas recomendadas para otimizar o desempenho da tabela dinâmica.
Divida tabelas dinâmicas complexas: divida seu pipeline em tabelas dinâmicas menores e focadas para melhorar o desempenho e simplificar a solução de problemas. Para obter mais informações, consulte Práticas recomendadas para criar tabelas dinâmicas.
Como funcionam as tabelas dinâmicas¶
O Snowflake executa a consulta de definição especificada na instrução CREATE DYNAMIC TABLE e suas tabelas dinâmicas são atualizadas por meio de um processo automatizado.
O diagrama a seguir mostra como esse processo calcula as alterações feitas nos objetos base e os mescla na tabela dinâmica usando recursos de computação associados a ela.
Atraso no destino¶
Use o atraso no destino para definir o nível de atualização dos seus dados. Normalmente, a atualização dos dados da tabela não estará tão atrás disso em relação à atualização dos dados da tabela base. Com o atraso no destino, você controla a frequência de atualização da tabela e o nível de atualização dos dados.
Para obter mais informações, consulte Entendendo o atraso de destino da tabela dinâmica.
Atualização de tabelas dinâmicas¶
As tabelas dinâmicas tentam atualizar dentro da meta de atraso especificada por você. Por exemplo, um atraso no destino de cinco minutos garante que os dados na tabela dinâmica não fiquem mais de cinco minutos atrasados em relação às atualizações de dados na tabela base. Você define o modo de atualização ao criar a tabela e, depois, as atualizações podem ocorrer em um cronograma ou de forma manual.
Para obter mais informações, consulte Compreensão da inicialização e atualização de tabelas dinâmicas e Atualize manualmente as tabelas dinâmicas.
Quando usar tabelas dinâmicas¶
As tabelas dinâmicas são ideais para os seguintes cenários:
Você quer materializar os resultados da consulta sem escrever um código personalizado.
Você quer evitar o rastreamento manual de dependências de dados e o gerenciamento de agendamentos de atualização. As tabelas dinâmicas permitem definir os resultados do pipeline de forma declarativa, sem gerenciar manualmente as etapas de transformação.
Você quer encadear várias tabelas para transformações de dados em um pipeline.
Você não precisa de um controle minucioso sobre os cronogramas de atualização e só quer especificar uma atualização de destino para o pipeline. O Snowflake lida com a orquestração de atualizações de dados, incluindo agendamento e execução, com base nos requisitos de atualização do destino.
Exemplos de casos de uso¶
Dimensões de alteração lenta (SCDs): as tabelas dinâmicas podem ser usadas para implementar SCDs de tipo 1 e tipo 2 lendo a partir de um fluxo de alterações e usando funções de janela sobre chaves por registro ordenadas por um carimbo de data/hora de alteração. Esse método lida com inserções, exclusões e atualizações que ocorrem fora de ordem, simplificando a criação das SCDs. Para mais informações, consulte Dimensões de alteração lenta com tabelas dinâmicas.
** Junções e agregações:** você pode usar tabelas dinâmicas para pré-computar junções e agregações lentas de forma incremental, para permitir consultas rápidas.
Transições de lote para fluxos: as tabelas dinâmicas oferecem suporte a transições contínuas de lote para fluxos com um único comando ALTER DYNAMIC TABLE. Você pode controlar a frequência de atualização em seu pipeline para equilibrar o custo e a atualização dos dados.