Conceitos-chave e arquitetura¶
O Snowflake Data Cloud conta com uma avançada plataforma de dados fornecida como software como um serviço auto-administrado. As soluções de armazenamento de dados, processamento e análise da Snowflake são mais rápidas, fáceis de usar e muito mais flexíveis do que as ofertas tradicionais.
A plataforma de dados Snowflake não foi construída a partir de nenhuma tecnologia de banco de dados existente ou de plataformas de software de «big data», como Hadoop. Em vez disso, o Snowflake combina um mecanismo de consulta SQL completamente novo com uma arquitetura inovadora projetada de forma nativa para a nuvem. Para o usuário, o Snowflake fornece toda a funcionalidade de um banco de dados analítico empresarial, além de muitos recursos especiais adicionais e capacidades únicas.
Neste tópico:
Plataforma de dados como um serviço auto-administrado¶
O Snowflake é um verdadeiro serviço auto-administrado, o que significa:
Não há hardware (virtual ou físico) para selecionar, instalar, configurar ou gerenciar.
Não há praticamente nenhum software para instalar, configurar ou gerenciar.
A manutenção, o gerenciamento, as atualizações e os ajustes contínuos são feitos pelo Snowflake.
O Snowflake é totalmente executado em uma infraestrutura na nuvem. Todos os componentes do serviço Snowflake (exceto clientes de linha de comando, drivers e conectores opcionais) funcionam em infraestruturas de nuvem pública.
O Snowflake utiliza instâncias virtuais para suas necessidades de computação e um serviço para armazenamento persistente de dados. O Snowflake não pode ser executado em infraestruturas de nuvem privada (no local ou hospedadas).
O Snowflake não é uma oferta de software em pacote que pode ser instalado por um usuário. O Snowflake gerencia todos os aspectos da instalação e das atualizações de software.
Arquitetura do Snowflake¶
A arquitetura do Snowflake é um híbrido de arquiteturas tradicionais de banco de dados com disco compartilhado e de banco de dados sem compartilhamento. De forma similar às arquiteturas de disco compartilhado, o Snowflake usa um repositório central para dados persistentes que pode ser acessado a partir de todos os nós de computação da plataforma. Mas, assim como ocorre com arquiteturas sem compartilhamento, o Snowflake processa consultas usando clusters de computação MPP (processamento maciçamente paralelo), onde cada nó do cluster armazena localmente uma parte de todo o conjunto de dados. Essa abordagem oferece a simplicidade de gerenciamento de dados de uma arquitetura de disco compartilhado, mas com os benefícios de desempenho e escalabilidade horizontal de uma arquitetura sem compartilhamento.
A arquitetura única do Snowflake consiste em três camadas principais:
Armazenamento de banco de dados¶
Quando os dados são carregados no Snowflake, ele reorganiza esses dados em seu formato de coluna interno, otimizado e compactado. O Snowflake armazena esses dados otimizados no armazenamento em nuvem.
O Snowflake gerencia todos os aspectos de como esses dados são armazenados: a organização, tamanho do arquivo, estrutura, compressão, metadados, estatísticas e outros aspectos do armazenamento de dados são tratados pelo Snowflake. Os objetos de dados armazenados pelo Snowflake não são diretamente visíveis nem acessíveis pelos clientes; eles só são acessíveis por operações de consulta SQL executadas com o Snowflake.
Processamento de consultas¶
A execução das consultas é realizada na camada de processamento. O Snowflake processa as consultas utilizando «warehouses virtuais». Cada warehouse virtual é um cluster de computação MPP composto de múltiplos nós de computação alocados pelo Snowflake a partir de um provedor de nuvem.
Cada warehouse virtual é um cluster de computação independente que não compartilha recursos computacionais com outros warehouses virtuais. Como resultado, cada warehouse virtual não tem impacto sobre o desempenho de outros warehouses virtuais.
Para obter mais informações, consulte Warehouses virtuais.
Serviços de nuvem¶
A camada de serviços de nuvem é um conjunto de serviços que coordena atividades em todo o Snowflake. Estes serviços unem todos os diferentes componentes do Snowflake a fim de processar as solicitações dos usuários, desde o login até o despacho da consulta. A camada de serviços de nuvem também funciona em instâncias computacionais provisionadas pelo Snowflake do provedor de nuvem.
Os serviços gerenciados nesta camada incluem:
Autenticação
Gerenciamento de infraestrutura
Gerenciamento de metadados
Análise e otimização de consultas
Controle de acesso
Conexão ao Snowflake¶
O Snowflake aceita múltiplas formas de conexão com o serviço:
Uma interface de usuário baseada na web da qual todos os aspectos de gerenciamento e utilização do Snowflake podem ser acessados.
Clientes de linha de comando (por exemplo, SnowSQL) que também podem acessar todos os aspectos de gerenciamento e utilização do Snowflake.
Drivers ODBC e JDBC que podem ser usados por outros aplicativos (por exemplo, Tableau) para conexão ao Snowflake.
Conectores nativos (por exemplo, Python, Spark) que podem ser usados para desenvolver aplicativos para conexão com o Snowflake.
Conectores de terceiros que podem ser usados para conectar aplicativos como ferramentas de ETL (por exemplo, Informatica) e ferramentas de BI (por exemplo, ThoughtSpot) ao Snowflake.
Para obter mais informações, consulte Como fazer login no Snowflake.