Curso
O que é Snowflake?
Se alguém me pedisse para descrever Snowflake com o mínimo de palavras possível, eu escolheria estas:
- Data Warehouses
- Dados em grande escala
- Multi-Cloud
- Separação
- Escalável
- Flexível
- Simples
Se eles quisessem que eu elaborasse, eu juntaria as palavras assim:
Snowflake é uma plataforma de nuvem de dados de IA muito popular. Ele se destaca dos concorrentes devido à sua capacidade de lidar com dados e cargas de trabalho em grande escala de forma mais rápida e eficiente. Seu desempenho superior vem de sua arquitetura exclusiva, que usa camadas separadas de armazenamento e computação, o que permite que ele seja incrivelmente flexível e dimensionável. Além disso, ele se integra nativamente a vários provedores de nuvem. Apesar desses recursos avançados, ele continua sendo simples de aprender e implementar.
Se eles solicitarem ainda mais detalhes, bem, então eu escreveria este tutorial. Se você é totalmente novo no assunto, nosso curso de Introdução ao Snowflake é um excelente lugar para começar.
Por que usar o Snowflake?
A Snowflake atende a mais de 8.900 clientes em todo o mundo e processa 3,9 bilhões de consultas todos os dias. Esse tipo de estatística de uso não é, de forma alguma, uma coincidência.
A seguir, você encontrará os melhores benefícios do Snowflake que são muito atraentes:
1. Arquitetura baseada em nuvem
O Snowflake opera nas nuvens, permitindo que as empresas aumentem e diminuam os recursos com base na demanda sem se preocupar com a infraestrutura física (hardware). A plataforma também lida com tarefas de manutenção de rotina, como atualizações de software, gerenciamento de hardware e ajuste de desempenho. Isso alivia o ônus da sobrecarga de manutenção, permitindo que as organizações se concentrem no que importa: obter valor dos dados.
2. Elasticidade e escalabilidade
O Snowflake separa as camadas de armazenamento e computação, permitindo que os usuários dimensionem seus recursos de computação independentemente de suas necessidades de armazenamento. Essa elasticidade permite o manuseio eficiente de diversas cargas de trabalho com desempenho ideal e sem custos desnecessários.
3. Concorrência e desempenho
O Snowflake lida facilmente com alta simultaneidade: vários usuários podem acessar e consultar os dados sem perda de desempenho.
4. Compartilhamento de dados
Com as proteções de segurança da Snowflake, você pode compartilhar dados com outras organizações, departamentos internos, parceiros externos, clientes ou outras partes interessadas. Não há necessidade de transferências complexas de dados.
5. Viagem no tempo
O Snowflake usa um termo sofisticado, "Time Travel", para o controle de versão de dados. Sempre que uma alteração é feita no banco de dados, o Snowflake tira um instantâneo. Isso permite que os usuários acessem dados históricos em vários pontos no tempo.
6. Eficiência de custos
O Snowflake oferece um modelo de pagamento conforme o uso, devido à sua capacidade de dimensionar os recursos dinamicamente. Você só pagará pelo que usar.
Todos esses benefícios combinados fazem do Snowflake uma plataforma de nuvem de dados de IA altamente desejável.
Agora, vamos dar uma olhada na arquitetura subjacente do Snowflake que desbloqueia esses recursos.
Torne-se um engenheiro de dados
O que é um data warehouse?
Antes de mergulharmos na arquitetura do Snowflake, vamos analisar os data warehouses para garantir que você esteja na mesma página.
Um data warehouse é um repositório centralizado que armazena grandes quantidades de dados estruturados e organizados de várias fontes para uma empresa. Diferentes personas (funcionários) nas organizações usam os dados para obter insights diferentes.
Por exemplo, os analistas de dados, em colaboração com a equipe de marketing, podem executar um teste A/B para uma nova campanha de marketing usando a tabela de vendas. Os especialistas em RH podem consultar as informações dos funcionários para programar o desempenho.
Esses são alguns dos exemplos de como as empresas em todo o mundo usam data warehouses para impulsionar o crescimento. Mas sem a implementação e o gerenciamento adequados usando ferramentas como o Snowflake, os data warehouses permanecem como conceitos elaborados.
Você pode aprender mais sobre o assunto com nosso curso Data Warehousing.
Arquitetura Snowflake
A arquitetura exclusiva do Snowflake, projetada para consultas analíticas mais rápidas, vem da separação das camadas de armazenamento e computação. Essa distinção contribui para os benefícios que mencionamos anteriormente.
Camada de armazenamento
No Snowflake, a camada de armazenamento é um componente essencial, pois armazena dados de maneira eficiente e escalonável. Aqui estão alguns dos principais recursos dessa camada:
- Cloud-based: O Snowflake se integra perfeitamente aos principais provedores de nuvem, como AWS, GCP e Microsoft Azure.
- Formato colunar: O Snowflake armazena dados em um formato colunar, otimizado para consultas analíticas. Diferentemente dos formatos tradicionais baseados em linhas usados por ferramentas como o Postgres, o formato colunar é adequado para a agregação de dados. No armazenamento em colunas, as consultas acessam apenas as colunas específicas de que precisam, o que as torna mais eficientes. Por outro lado, os formatos baseados em linhas exigem o acesso a todas as linhas na memória para operações simples, como o cálculo de médias.
- Microparticionamento: O Snowflake usa uma técnica chamada microparticionamento que armazena tabelas na memória em pequenos pedaços. Em geral, cada bloco é imutável e tem apenas alguns megabytes de tamanho, o que torna a otimização e a execução da consulta muito mais rápidas.
- Clonagem de cópia zero: O Snowflake tem um recurso exclusivo que permite que você crie clones virtuais de dados. A clonagem é instantânea e não consome memória adicional até que sejam feitas alterações na nova cópia.
- Escala e elasticidade: A camada de armazenamento é dimensionada horizontalmente, o que significa que ela pode lidar com volumes de dados cada vez maiores adicionando mais servidores para distribuir a carga. Além disso, esse dimensionamento ocorre independentemente dos recursos de computação, o que é ideal quando você deseja armazenar grandes volumes de dados, mas analisar apenas uma pequena fração.
Agora, vamos dar uma olhada na camada de computação.
Camada de computação
Como o nome sugere, a camada de computação é o mecanismo que executa suas consultas. Ele trabalha em conjunto com a camada de armazenamento para processar os dados e executar várias tarefas computacionais. A seguir, você encontrará mais detalhes sobre como essa camada funciona:
- Warehouse virtual: Você pode pensar nos Virtual Warehouses como equipes de computadores (nós de computação) projetados para lidar com o processamento de consultas. Cada membro da equipe lida com uma parte diferente da consulta, tornando a execução impressionantemente rápida e paralela. A Snowflake oferece Virtual Warehouses em tamanhos diferentes e, consequentemente, a preços diferentes (os tamanhos incluem XS, S, M, L, XL).
- Arquitetura com vários clusters e vários nós: A camada de computação usa vários clusters com vários nós para alta simultaneidade, permitindo que vários usuários acessem e consultem os dados simultaneamente.
- Otimização automática de consultas: O sistema da Snowflake analisa todas as consultas e identifica padrões para otimização usando dados históricos. As otimizações comuns incluem a eliminação de dados desnecessários, o uso de metadados e a escolha do caminho de execução mais eficiente.
- Cache de resultados: A camada de computação inclui um cache que armazena os resultados de consultas executadas com frequência. Quando a mesma consulta é executada novamente, os resultados são retornados quase instantaneamente.
Todos esses princípios de design da camada de computação contribuem para a capacidade do Snowflake de lidar com cargas de trabalho diferentes e exigentes na nuvem.
Camada de serviços em nuvem
A camada final são os serviços em nuvem. Como essa camada se integra a todos os componentes da arquitetura do Snowflake, há muitos detalhes sobre sua operação. Além dos recursos relacionados a outras camadas, ele tem as seguintes responsabilidades adicionais:
- Segurança e controle de acesso: Essa camada impõe medidas de segurança, incluindo autenticação, autorização e criptografia. Os administradores usam o RBAC (Role-Based Access Control) para definir e gerenciar as funções e permissões dos usuários.
- Compartilhamento de dados: Essa camada implementa protocolos de compartilhamento seguro de dados em diferentes contas e até mesmo em organizações de terceiros. Os consumidores de dados podem acessar os dados sem a necessidade de movimentação de dados, promovendo a colaboração e a monetização de dados.
- Suporte a dados semiestruturados: Outro benefício exclusivo do Snowflake é sua capacidade de lidar com dados semiestruturados, como JSON e Parquet, apesar de ser uma plataforma de gerenciamento de data warehouse. Com ele, você pode consultar facilmente dados semiestruturados e integrar os resultados às tabelas existentes. Essa flexibilidade não é vista em outras ferramentas de RDBMS.
Agora que temos uma imagem de alto nível da arquitetura do Snowflake, vamos escrever um pouco de SQL na plataforma.
Configurando o Snowflake SQL
O Snowflake tem sua própria versão do SQL, chamada Snowflake SQL. A diferença entre ele e outros dialetos do SQL é semelhante à diferença entre os sotaques do inglês.
Muitas das consultas analíticas que você realiza em dialetos como o PostgreSQL não mudam, mas há algumas discrepâncias nos comandos DDL (Data Definition Language).
Agora, vamos ver como executar algumas consultas!
Visão de neve: Interface da Web

Para começar a usar o Snowsight, navegue até a página de avaliação gratuita de 120 dias do Snowflake e crie uma conta. Insira suas informações pessoais e selecione qualquer provedor de nuvem listado. Isso oferece uma avaliação gratuita de 120 dias, em vez da avaliação padrão de 30 dias que você encontra em outros lugares. A avaliação também inclui créditos no valor de US$ 400.
Ao se inscrever para uma avaliação, é recomendável que os usuários escolham a AWS e a região oeste dos EUA-Oregon. Entre outros motivos, o Oregon é uma das regiões de menor custo para a infraestrutura da AWS e, como resultado, os créditos de teste duram mais.
Depois de verificar seu e-mail, você será redirecionado para a página Worksheets. As planilhas são ambientes interativos de codificação ao vivo em que você pode escrever, executar e visualizar os resultados das suas consultas SQL.

Para executar algumas consultas, precisamos de um banco de dados e de uma tabela (não usaremos os dados de amostra no Snowsight). Para começar, sugiro que você tente criar um novo banco de dados (você poderia nomeá-lo como test_db) e uma tabela nomeada usando um arquivo CSV local. Você pode fazer o download do arquivo CSV executando o código neste gist do GitHub em seu terminal.
Depois disso, você será direcionado para uma nova planilha na qual poderá executar qualquer consulta SQL que desejar. Acho que a interface da planilha é bastante simples e altamente funcional. Dedique alguns minutos para se familiarizar com os painéis, os botões e seus respectivos locais.
Conclusão e aprendizado adicional
Ufa! Começamos com alguns conceitos simples, mas, no final, realmente nos aprofundamos nos detalhes mais complicados. Bem, essa é a minha ideia de um tutorial decente.
Você provavelmente já deve ter adivinhado que há muito mais sobre o Snowflake do que o que abordamos. De fato, a documentação do Snowflake inclui guias de início rápido que, na verdade, têm 128 minutos de duração! Porém, antes de você começar a trabalhar com eles, recomendo que você use outros recursos. O que você acha disso:
- Introdução ao curso Snowflake
- Um webinar sobre a modernização da análise de vendas com Snowflake
- Análise de dados no Snowflake usando o código Python
- Guias de usuário oficiais da Snowflake
- Snowflake Northstar para que você saiba mais sobre a visão de longo prazo da Snowflake.
Obrigado a você por ler!
Obtenha a certificação para a função de engenheiro de dados dos seus sonhos
Nossos programas de certificação ajudam você a se destacar e a provar que suas habilidades estão prontas para o trabalho para possíveis empregadores.


Sou um criador de conteúdo de ciência de dados com mais de 2 anos de experiência e um dos maiores seguidores no Medium. Gosto de escrever artigos detalhados sobre IA e ML com um estilo um pouco sarcástico, porque você precisa fazer algo para torná-los um pouco menos monótonos. Produzi mais de 130 artigos e um curso DataCamp, e estou preparando outro. Meu conteúdo foi visto por mais de 5 milhões de pessoas, das quais 20 mil se tornaram seguidores no Medium e no LinkedIn.

