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.

Architecture overview

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.