Snowpark Container Services

Sobre Snowpark Container Services

A Snowflake começou fornecendo um banco de dados SQL para consultas a dados estruturados e semiestruturados, mas SQL por si só não é ideal para cálculos complexos ou aprendizado de máquina. Para resolver isso, a Snowflake introduziu o Snowpark, que permite que desenvolvedores usem linguagens como Python, Java e Scala para criar pipelines e aplicativos de dados. O Snowpark traduz esse código em SQL otimizado, combinando a flexibilidade das linguagens modernas com o desempenho e a escalabilidade do mecanismo SQL do Snowflake.

Para maior flexibilidade, oferecemos o Snowpark Container Services, uma plataforma gerenciada de orquestração de contêineres dentro do Snowflake. Você pode empacotar seu aplicativo e as dependências dele em uma imagem Open Container Initiative (OCI), que pode incluir qualquer linguagem de programação, framework ou biblioteca. Isso possibilita casos de uso que exigem tempos de execução personalizados, bibliotecas especializadas ou configurações de software específicas. Além disso, com suporte para CPUs e GPUs avançadas, você pode executar cargas de trabalho com uso intensivo de computação, como fornecimento de modelos de ML, treinamento de modelos de ML e análises de AI avançadas. O Snowflake gerencia a infraestrutura subjacente, mas você tem controle completo sobre o conteúdo do seu ambiente em contêineres.

Como um serviço totalmente gerenciado, o Snowpark Container Services simplifica as tarefas operacionais relacionadas à execução dos seus contêineres. Usando as melhores práticas, o Snowpark Container Services lida com as complexidades do gerenciamento de contêineres, incluindo segurança e configuração. Isso garante que você possa se concentrar no desenvolvimento e na implantação dos seus aplicativos sem a sobrecarga de gerenciar a infraestrutura subjacente.

Snowpark Container Services está totalmente integrado ao Snowflake. Por exemplo, seu aplicativo pode executar facilmente estas tarefas:

  • Conecte-se ao Snowflake e execute SQL em um warehouse virtual do Snowflake.

  • Acesse arquivos de dados em um estágio Snowflake.

  • Processe dados recuperados por meio de consultas SQL.

Seu aplicativo pode aproveitar a configuração existente do Snowflake, incluindo os seguintes itens:

  • Políticas de redes para entrada na rede

  • Integração de acesso externo para saída na rede

  • Controle de acesso baseado em funções para permitir comunicações entre serviços

  • Tabelas de eventos para logs, métricas e eventos

O Snowpark Container Services também está integrado a ferramentas de terceiros. Ele permite que você use clientes de terceiros, como o Docker, para carregar facilmente as imagens do seu aplicativo para o Snowflake. A integração perfeita faz com que as equipes se concentrem melhor na criação de aplicativos de dados.

Todos esses recursos vêm com os benefícios da plataforma Snowflake, principalmente recursos de facilidade de uso, segurança e governança. Você também obtém uma camada de computação escalonável e flexível ao lado da poderosa camada de dados do Snowflake, sem precisar mover os dados para fora da plataforma.

Cenários comuns para usar o Snowpark Container Services

Seu aplicativo pode ser implantado em regiões do Snowflake sem se preocupar com a plataforma de nuvem subjacente (AWS, Azure ou Google Cloud). O Snowpark Container Services também facilita o acesso do seu aplicativo aos dados do Snowflake. Além disso, o Snowflake gerencia os nós de computação subjacentes.

A lista a seguir mostra as cargas de trabalho comuns do Snowpark Container Services:

  • Trabalhos de processamento de dados em lote: execute trabalhos flexíveis semelhantes a procedimentos armazenados, extraindo dados do Snowflake ou de fontes externas, processando-os e produzindo resultados. As cargas de trabalho podem ser distribuídas entre várias instâncias de trabalho, e o suporte à unidade de processamento gráfico (GPU) está disponível para tarefas que exigem muita computação, como AI e aprendizado de máquina.

  • Funções de serviço: seu serviço pode fornecer uma função de serviço para que suas consultas enviem lotes de dados para processamento. O processamento da consulta ocorre no mecanismo de consulta avançado do Snowflake, e seu serviço fornece processamento de dados personalizado que o Snowflake pode escalonar para vários nós de computação. Para obter um exemplo, consulte Tutorial 1. Na etapa 4 deste tutorial, você chama a função de serviço em uma consulta.

  • APIs ou UI da Web sobre dados do Snowflake: implante serviços que exponham APIs ou interfaces da Web com lógica de negócios incorporada. Os usuários interagem com o serviço em vez de dados brutos. Os direitos do autor da chamada garantem que as consultas sejam executadas com as permissões de usuário corretas. Para obter um exemplo, consulte Tutorial 1. Neste tutorial, o serviço também expõe uma UI da Web à internet. Na etapa 4, você envia solicitações ao serviço a partir de um navegador da Web.

Como funciona?

Para executar aplicativos em contêineres no Snowpark Container Services, além de trabalhar com os objetos básicos do Snowflake, como bancos de dados e warehouses, você trabalha com estes objetos: repositório de imagens, pool de computação e serviço.

O Snowflake oferece um serviço de registro de imagens compatível com OCIv2 para armazenar suas imagens. Esse serviço permite que clientes da Open Container Initiative (OCI), como o Docker CLI, carreguem as imagens do seu aplicativo para um repositório (uma unidade de armazenamento) na sua conta Snowflake. Você cria um repositório usando o comando CREATE IMAGE REPOSITORY. Para obter mais informações, consulte Como trabalhar com um registro e repositório de imagens.

Após carregar a imagem do seu aplicativo para um repositório, você pode executá-lo criando um serviço de longa duração ou executando um serviço de trabalho.

  • Serviço: um serviço é de longa duração e, assim como um serviço Web, você o interrompe explicitamente quando ele não é mais necessário. Se um contêiner de serviço for encerrado por qualquer motivo, o Snowflake o reiniciará. Para criar um serviço, como um aplicativo da web full stack, use o comando CREATE SERVICE.

  • Serviço de trabalho: um serviço de trabalho tem uma vida útil finita, semelhante a um procedimento armazenado. Quando todos os contêineres saírem, o serviço de trabalho estará concluído. O Snowflake não reinicia nenhum contêiner de serviço de trabalho. Para iniciar um serviço de trabalho, como treinar um modelo de machine learning com GPUs, use o comando EXECUTE JOB SERVICE.

Seus serviços, incluindo serviços de trabalho, são executados em um pool de computação, que é uma coleção de um ou mais nós de máquina virtual (VM). Primeiro, crie um pool de computação usando o comando CREATE COMPUTE POOL e, em seguida, especifique o pool de computação ao criar um serviço ou um serviço de trabalho. As informações necessárias para criar um pool de computação incluem o tipo de máquina, o número mínimo de nós para iniciar o pool de computação e o número máximo de nós para os quais o pool de computação pode ser dimensionado. Alguns dos tipos de máquinas compatíveis fornecem GPU. Para obter mais informações, consulte Como trabalhar com pools de computação.

Após a criação de um serviço, os usuários na mesma conta Snowflake que criou o serviço poderão usá-lo, desde que tenham as permissões apropriadas. Para obter mais informações, consulte Como usar um serviço.

Nota

A documentação do Snowpark Container Services usa principalmente os comandos e funções do SQL nas explicações de conceitos e em exemplos. O Snowflake também oferece outras interfaces, incluindo Python APIs, REST APIs e a ferramenta de linha de comando Snowflake CLI para a maioria das operações.

Regiões disponíveis e considerações

A Snowpark Container Services está em todas as regiões, exceto nas seguintes:

  • O Snowpark Container Services é compatível com cargas de trabalho do setor público (governo) na região AWS US East (Commercial Gov - N. Virginia) e não está disponível em outras regiões governamentais do AWS ou do Azure.

O Snowpark Container Services não está disponível para contas de avaliação, exceto para notebooks em execução.

Qual é o próximo passo?

Se você for novo no Snowpark Container Services, sugerimos que primeiro explore os tutoriais e depois continue com outros tópicos para saber mais e criar seus próprios aplicativos em contêineres. Os tópicos a seguir fornecem mais informações: