Desempenho de consulta de tabela dinâmica

Esta seção discute como projetar seu pipeline para obter um bom desempenho no momento da consulta. Seus dados assumem várias formas à medida que se movem por diferentes sistemas:

  1. Dados de origem: Inicialmente, os dados são gerados por entidades do mundo real e coletados em sistemas de linha de frente. Esses dados são então ingeridos no Snowflake via processos ETL.

  2. Dados brutos: Após a ingestão, os dados são armazenados em tabelas Snowflake, onde são transformados em uma forma mais adequada para análise.

  3. Dados modelados: Essas transformações resultam em um conjunto de modelos, que apresentam conceitos familiares aos consumidores para análise.

Seu pipeline compreende essas etapas. As tabelas dinâmicas funcionam nas etapas de transformação, mas você deve considerar o desempenho delas no contexto de seu pipeline geral.

Compreensão da materialização

O desempenho das consultas de análise é determinado pelo design e implementação das transformações de dados brutos para dados modelados. Embora definir essas transformações como um conjunto de visualizações sobre dados brutos seja tecnicamente correto, isso pode não atender às necessidades de desempenho e custo.

Para resolver isso, alguns ou todos os modelos de dados podem precisar ser materializados pré-computando seus resultados, armazenando-os para acesso rápido e mantendo-os atualizados. As tabelas dinâmicas facilitam essa materialização, mas você ainda precisa decidir qual de seus modelos materializar.

Limite de materialização

A divisão entre a parte materializada e a parte não materializada da transformação é chamada de limite de materialização. Ao decidir sobre o limite de materialização, os seguintes fatores são normalmente relevantes:

  • Atraso ou atualidade: a atualidade dos dados que você fornece, ou seja, o nível de desatualização de seus resultados. O limite de materialização normalmente não tem um efeito forte sobre esse fator.

  • Tempo de resposta: Materializar mais do pipeline reduz o tempo de resposta. A atualidade é pelo menos tão longa quanto o tempo de resposta de suas consultas, mas pode ser muito maior.

  • Custo: O custo da carga de trabalho está associado ao seguinte:

    • Custo de materialização: Esse custo é dimensionado com a quantidade de dados nas fontes e a complexidade das transformações.

    • Custo de computação de transformações não materializadas durante a análise: Esse custo aumenta com o número de consultas analíticas e sua complexidade.

    • Custo de armazenamento: Este custo inclui dados brutos e materializados.

Materializar mais dados modelados acelera os tempos de resposta e reduz o custo de análise, mas pode aumentar os custos de materialização. Encontrar o melhor limite de materialização requer o equilíbrio dos fatores acima. Normalmente, você pode obter bons resultados materializando a menor quantidade de dados que ainda atenda aos seus requisitos de tempo de resposta.

Como materializar

Após definir seu limite de materialização, você pode criar exibições e tabelas dinâmicas adequadamente. Você pode otimizar o desempenho das transformações não materializadas como qualquer outra consulta Snowflake. Após consultá-las, as tabelas regulares e dinâmicas funcionam de forma semelhante, permitindo que você use técnicas padrão como normalização, pré-agregação e clustering para aumentar o desempenho.

Para mais ideias, consulte a Lista de verificação de desempenho de consultas.