Snowflake Storage Layer Key Concepts | Micropartition | Columnar Storage | Partition pruning
Como os Dados São Armazenados no Snowflake?
Introdução ao Armazenamento de Dados
- O vídeo explora como os dados são armazenados na camada de armazenamento do Snowflake, utilizando armazenamento em colunas e micropartições.
- Este conhecimento é fundamental para entender conceitos avançados do Snowflake, como time travel, fail safe, zero-copy cloning, partition pruning e column pruning.
Tecnologia de Armazenamento
- O Snowflake utiliza armazenamento em nuvem como tecnologia subjacente, podendo ser Amazon S3, Azure Blob Storage ou Google Cloud Storage.
- Os serviços de armazenamento em nuvem oferecem benefícios como capacidade ilimitada e alta durabilidade dos dados devido à manutenção de cópias redundantes.
Prática com Objetos do Snowflake
- É comum fazer o staging de arquivos brutos antes de carregá-los nas tabelas; o comando
PUTtransfere arquivos locais para a área de staging no Snowflake.
- O comando
COPY INTOingere dados da área de staging para uma tabela no Snowflake, transformando-os em um formato otimizado para leitura rápida.
Particionamento e Desempenho
- Em sistemas tradicionais não-Snowflake, o particionamento divide grandes conjuntos de dados em segmentos menores para melhorar desempenho e escalabilidade.
- A eliminação eficiente de dados desnecessários durante a execução da consulta é chamada de partition pruning; depende da metadata específica das partições.
Implementação do Particionamento no Snowflake
- Ao contrário dos sistemas tradicionais que exigem definição manual das chaves e estratégias de particionamento, o Snowflake cria automaticamente micropartições ao carregar dados.
- As micropartições são muito menores que as partições tradicionais (50 MB a 500 MB), permitindo acesso mais eficiente aos dados.
Metadados Ricos e Eficiência
- O Snowflake armazena informações adicionais sobre cada micropartição, como intervalo de valores por coluna e número distinto de valores.
- Essa metadata rica permite decisões mais inteligentes durante o processamento das consultas, resultando em melhorias significativas no desempenho.
Formato Colunar vs. Formato Tradicional
- O formato colunar utilizado pelo Snowflake melhora significativamente o desempenho das consultas analíticas que envolvem acesso seletivo a colunas.
- Durante a execução da consulta, o Snowflake realiza primeiro o partition pruning seguido pelo column pruning, processando apenas as colunas referenciadas na consulta.
Entendendo Micro Particionamento e Armazenamento Colunar
Conceito de Micro Particionamento
- O micro particionamento é uma técnica que organiza dados em pequenas partições, cada uma contendo um número significativo de registros. Este conceito é ilustrado por um diagrama que representa a estrutura em projetos de dados do mundo real.
Estrutura das Micro Partições
- Cada micro partição pertence a uma única tabela, e cada linha está associada a uma única micro partição. Os valores das colunas são armazenados de forma contígua, permitindo que o Snowflake escolha automaticamente o método de compressão mais adequado para cada coluna com base no tipo de dado.
Imutabilidade das Micro Partições
- As micro partições são imutáveis, ou seja, uma vez escritas, não são modificadas. Quando um registro é atualizado, o Snowflake define uma data final para a micro partição existente e cria uma nova micro partição com os valores atualizados.
Funcionalidades Avançadas
- Esse mecanismo permite ao Snowflake suportar recursos avançados como "time travel" (viagem no tempo) e "fail safe" (segurança contra falhas). As micro partições com datas finais são mantidas até que o período de viagem no tempo e o período de segurança expirem, após os quais são excluídas permanentemente.
Conclusão do Vídeo
- O vídeo conclui convidando os espectadores a aguardarem o próximo conteúdo relacionado ao tema abordado.