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 de base. Em seguida, o Snowflake cuida do cronograma de atualização da tabela dinâmica, atualizando-a automaticamente com as alterações feitas nos objetos de base com base na consulta.

Como funcionam as tabelas dinâmicas

As tabelas dinâmicas são atualizadas por meio de um processo de atualização automatizado que executa a consulta de transformação regularmente. Esse processo calcula as alterações feitas nos objetos de base e as mescla na tabela dinâmica usando os recursos de computação associados à tabela.

Representação visual do processo de atualização automatizada entre objetos de base e tabelas dinâmicas

A frequência de atualização e a atualização dos dados são determinadas pelo atraso de destino especificado durante a criação da tabela dinâmica, que define o quão atualizados os dados devem estar. O processo de atualização usa o atraso de destino especificado para agendar atualizações. Por exemplo, um atraso de destino de cinco minutos garante que os dados da tabela dinâmica não estejam mais do que cinco minutos atrasados em relação às atualizações da tabela base.

Atrasos de destino mais longos podem ser usados para reduzir os custos quando não são necessárias atualizações de dados quase em tempo real. Por exemplo, se os dados da tabela dinâmica precisarem estar, no máximo, uma hora atrasados em relação às atualizações das tabelas de base, você pode especificar um destino de atualização de uma hora (em vez de cinco minutos) para reduzir os custos.

Para obter mais informações, consulte Entendendo o atraso de destino da tabela dinâmica e Compreensão da inicialização e atualização de tabelas dinâmicas.

Quando usar tabelas dinâmicas

As tabelas dinâmicas são ideais para cenários em que:

  • Você deseja evitar o rastreamento manual das dependências de dados e o gerenciamento dos cronogramas de atualização.

  • Você precisa materializar os resultados de consulta de várias tabelas de base sem escrever código personalizado.

  • Você precisa criar várias tabelas para transformações de dados em um pipeline.

  • Você não precisa de um controle refinado sobre os cronogramas de atualização e só precisa especificar uma meta de atualização para o pipeline.

  • Você deseja usar uma tabela dinâmica como fonte de um fluxo.

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.

  • 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.

Principais considerações

  • SQL declarativo: as tabelas dinâmicas permitem que você defina os resultados do pipeline de forma declarativa, sem gerenciar as etapas de transformação manualmente.

  • Atualização automatizada: o Snowflake lida com a orquestração de atualizações de dados, incluindo agendamento e execução, com base em seus requisitos de atualização de destino.

  • Otimização do desempenho: as tabelas dinâmicas usam o processamento incremental para cargas de trabalho com suporte para ele, o que pode melhorar o desempenho atualizando apenas os dados que foram alterados, em vez de realizar uma atualização completa.