Configuração de Snowflake Notebooks¶
Com os Snowflake Notebooks você pode gravar e executar código, visualizar resultados, capturar notas e compartilhar insights com outros usuários Snowflake. Esta página fornece etapas para configurar sua conta para o uso de Snowflake Notebooks.
Se você for um administrador de sua conta, consulte Instruções de configuração do administrador para Snowflake Notebooks.
Se o acesso de Snowflake Notebooks já tiver sido configurado por um administrador para sua conta, consulte Instruções de configuração do usuário para Snowflake Notebooks.
Instruções de configuração do usuário para Snowflake Notebooks¶
Antes de começar a usar os Snowflake Notebooks, execute estas etapas de configuração.
Crie um banco de dados e esquema dedicados (opcional)¶
Para criar um notebook, você precisa de um banco de dados e um esquema para armazenar seu notebook. Você pode usar um banco de dados e esquema existentes ou criar novos para armazenar e gerenciar os Snowflake Notebooks.
Para simplificar o armazenamento e o gerenciamento de Snowflake Notebooks, a Snowflake recomenda a criação de um banco de dados e um esquema dedicados.
Para criar um banco de dados churn_analysis
e um esquema dedicados para armazenar seus Snowflake Notebooks, execute os seguintes comandos SQL:
CREATE DATABASE churn_analysis;
USE DATABASE churn_analysis;
CREATE SCHEMA notebooks_sch;
Observe que o banco de dados e o esquema são necessários apenas para armazenar seus notebooks. Você pode consultar qualquer banco de dados e esquema aos quais sua função tenha acesso. Use os comandos USE DATABASE ou USE SCHEMA em uma célula SQL para alterar o contexto para um banco de dados ou esquema diferente.
Ter um local dedicado para armazenar e gerenciar notebooks também pode evitar que eles sejam descartados quando um banco de dados ou esquema for descartado.
Criar recursos de computação¶
Para criar um notebook, você deve escolher um warehouse de consulta para consultas pushdown. Você pode selecionar um warehouse existente ou criar um novo especificamente para seus notebooks.
Para criar um warehouse dedicado, notebooks_wh
, execute o seguinte comando SQL:
CREATE WAREHOUSE notebooks_wh;
Se estiver criando um notebook para ser executado em um container runtime, você deverá selecionar um pool de computação. Os pools de computação são máquinas virtual baseadas em CPU ou GPU gerenciadas pelo Snowflake. Para obter mais detalhes, consulte Snowpark Container Services: como trabalhar com pools de computação.
Para criar pools de computação dedicados para seus notebooks, execute os seguintes comandos SQL:
CREATE COMPUTE POOL CPU_XS
MIN_NODES = 1
MAX_NODES = 15
INSTANCE_FAMILY = CPU_X64_XS;
CREATE COMPUTE POOL GPU_S
MIN_NODES = 1
MAX_NODES = 5
INSTANCE_FAMILY = GPU_NV_S;
Ao criar um pool de computação, defina o parâmetro MAX_NODES como maior que um, pois cada notebook requer um nó completo para ser executado.
Requisitos de controle de acesso¶
Para ajudar você a gerenciar quem pode criar notebooks, o Snowflake fornece um privilégio dedicado ao nível do esquema. Quando você cria um notebook, a função proprietária do notebook é a função ativa em sua sessão. Qualquer usuário com a função pode abrir, executar e editar notebooks de propriedade dessa função. Um usuário também pode herdar o acesso aos notebooks a partir de uma função. Por exemplo, se um notebook for de propriedade da função PUBLIC, qualquer usuário na conta poderá acessar e editar notebooks de propriedade dessa função. Você não pode compartilhar o notebook com outras funções.
Como cada notebook pertence a uma função, talvez você queira criar uma função dedicada para criar e executar notebooks.
Para criar um notebook no tempo de execução do warehouse, você deve usar uma função que tenha os seguintes privilégios:
Privilégio |
Objeto |
---|---|
USAGE |
Banco de dados |
USAGE ou OWNERSHIP |
Esquema |
USAGE |
Warehouse de consulta |
CREATE NOTEBOOK |
Esquema |
Para criar um notebook em um tempo de execução de contêiner, a função também deve ter os seguintes privilégios:
Privilégio |
Objeto |
---|---|
USAGE |
Warehouse de notebook |
USAGE |
Pool de computação |
CREATE SERVICE |
Esquema |
Para obter mais informações sobre o Warehouse de notebook em comparação ao Warehouse de consulta, consulte Recomendações de warehouse para execução dos notebooks Snowflake.
Conceda esses privilégios no banco de dados e esquema que você criou para conter seus notebooks a uma função personalizada. Por exemplo, os seguintes comandos SQL mostram como conceder os privilégios necessários em um banco de dados nomeado notebooks_db
e um esquema nomeado notebooks_sch
para uma função nomeada notebook_role
:
GRANT USAGE ON DATABASE notebooks_db TO ROLE notebook_role;
GRANT USAGE ON SCHEMA notebooks_sch TO ROLE notebook_role;
GRANT CREATE NOTEBOOK ON SCHEMA notebooks TO ROLE notebook_role;
A função de notebook também deve ter os seguintes privilégios para notebooks no tempo de execução de contêiner:
GRANT USAGE ON WAREHOUSE notebooks_wh TO ROLE notebook_role;
GRANT USAGE ON COMPUTE POOL CPU_XS TO ROLE notebook_role;
GRANT USAGE ON COMPUTE POOL GPU_S TO ROLE notebook_role;
GRANT CREATE SERVICE ON SCHEMA notebooks_sch TO ROLE notebook_role;
Configurar integração de acesso externo (EAI)¶
Para notebooks executados em tempo de execução de contêiner, se você quiser instalar pacotes de repositórios da Internet, como PyPi e Hugging Face, o ACCOUNTADMIN deverá configurar o acesso à rede externa e conceder privilégios de função USAGE. Com a integração de acesso externo (EAI), você pode habilitar o acesso seguro a locais de rede específicos externos ao Snowflake e, em seguida, usar esse acesso de dentro do código do manipulador para funções definidas pelo usuário (UDFs) e procedimentos armazenados.
Para obter detalhes sobre como configurar EAI para o seu notebook, consulte Configurar acesso externo para o Snowflake Notebooks.
Modelo para configuração de notebook¶
O script SQL a seguir resume todas as etapas acima para definir seus notebooks. Preencha os espaços reservados com seus valores e execute o script para configurar todos os acessos e privilégios necessários para executar notebooks.
----------------------------------
-- Location Setup --
----------------------------------
GRANT USAGE ON DATABASE <database> TO ROLE PUBLIC;
GRANT USAGE ON SCHEMA <database.schema> TO ROLE PUBLIC;
GRANT CREATE NOTEBOOK ON SCHEMA <database.schema> TO ROLE PUBLIC;
-- For Notebooks on Containers
GRANT CREATE SERVICE ON SCHEMA <database.schema> TO ROLE PUBLIC;
----------------------------------
-- Compute Resource Setup --
----------------------------------
GRANT USAGE ON WAREHOUSE <warehouse> TO ROLE PUBLIC;
-- For Notebooks on Containers
CREATE COMPUTE POOL CPU_XS
MIN_NODES = 1
MAX_NODES = 15
INSTANCE_FAMILY = CPU_X64_XS;
CREATE COMPUTE POOL GPU_S
MIN_NODES = 1
MAX_NODES = 5
INSTANCE_FAMILY = GPU_NV_S;
GRANT USAGE ON COMPUTE POOL CPU_XS TO ROLE PUBLIC;
GRANT USAGE ON COMPUTE POOL GPU_S TO ROLE PUBLIC;
-------------------------------------
-- Advanced Setup: External Access --
-------------------------------------
-- Example EAI
CREATE OR REPLACE NETWORK RULE allow_all_rule
MODE = 'EGRESS'
TYPE = 'HOST_PORT'
VALUE_LIST = ('0.0.0.0:443','0.0.0.0:80');
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION allow_all_integration
ALLOWED_NETWORK_RULES = (allow_all_rule)
ENABLED = true;
GRANT USAGE ON INTEGRATION allow_all_integration TO ROLE PUBLIC;
Recomendações de warehouse para execução dos notebooks Snowflake¶
Ao criar um notebook, você seleciona um warehouse no qual deseja executar os processos do notebook e qualquer código. Comece usando um warehouse X-Small para minimizar o consumo de crédito.
Warehouse de consulta: executa todas as consultas SQL e Snowpark geradas pelo notebook. Esse warehouse é usado sob demanda e é escolhido pelo proprietário do notebook.
Warehouse de notebook: executa o kernel Python e oferece suporte ao uso interativo do notebook. O padrão é um warehouse gerenciado pelo Snowflake dedicado às cargas de trabalho do notebook. A Snowflake recomenda usar esse warehouse para executar o kernel do seu notebook. Para obter detalhes sobre esse warehouse padrão, consulte Warehouse padrão para Notebooks.
Você também pode escolher um warehouse diferente. Por exemplo, você pode executar consultas grandes usando SQL ou executar operações de computação intensiva usando o Snowpark Python que exigem um warehouse maior. Neste caso, você tem duas opções:
Especifique um warehouse a ser usado para uma célula específica ou conjunto de células.
Isso garante que as consultas nessas células usem o warehouse maior, enquanto os processos do notebook continuam sendo executados no warehouse menor do notebook, reduzindo o uso de computação quando você não estiver executando consultas.
Por exemplo, para especificar um warehouse chamado
notebooks
e usar em células específicas, você pode adicionar uma célula SQL com o comando USE WAREHOUSE ou adicionar o comando ao código Python em uma célula Python:- SQL::
USE WAREHOUSE notebooks;
- Python:
session.sql('USE WAREHOUSE notebooks;')
Após executar qualquer célula especificando
USE WAREHOUSE
, todas as células que são executadas no restante da sessão do notebook usam o warehouse especificado. Se você não precisar mais executar consultas em um warehouse grande, grave uma nova célula para especificar um warehouse menor a ser usado.Escolha um warehouse maior para o notebook inteiro.
Cuidado
A escolha dessa opção pode aumentar drasticamente o consumo de créditos para todo o notebook, já que o warehouse maior é usado para toda a sessão do notebook.
Para alterar o warehouse do notebook:
Faça login no Snowsight.
Selecione Projects » Notebooks.
Selecione o ícone de menu de reticências verticais (
) no canto superior direito do notebook.
Selecione Notebook settings.
Selecione um novo warehouse a ser usado.
Instruções de configuração do administrador para Snowflake Notebooks¶
Para configurar sua organização usando os Snowflake Notebooks, execute estas etapas de configuração:
Considerações sobre conta e implantação para usar Snowflake Notebooks¶
Certifique-se de que *.snowflake.app
esteja na lista de permissões da sua rede e possa se conectar ao Snowflake. Quando este domínio está na lista de permissões, seus aplicativos podem se comunicar com os servidores Snowflake sem quaisquer restrições.
Além disso, para evitar problemas de conexão com o backend do Snowflake, certifique-se de que os WebSockets não estão bloqueados na sua configuração de rede.
Além disso, as seguintes considerações de conta se aplicam:
Atualmente, as contas nas seguintes regiões não são suportadas:
Google Cloud Platform (GCP)
Virtual Private Snowflake (VPS)
Regiões governamentais dos US que oferecem suporte a FedRAMP
O uso de AWS PrivateLink ou Azure Private Link não é compatível.
Seu nome de conta deve ser único dentro de sua organização.
Aceitação dos termos do Anaconda para importar bibliotecas¶
Antes de começar a usar os pacotes fornecidos pelo Anaconda dentro do Snowflake, você deve reconhecer os Termos de ofertas externas.
Nota
Você deve ser o administrador da organização (use a função ORGADMIN) para aceitar os termos. Você só precisa aceitar os termos uma vez para sua organização Snowflake. Consulte Ativação da função ORGADMIN em uma conta.
Faça login no Snowsight.
Selecione Admin » Billing & Terms.
Na seção Anaconda, selecione Enable.
Na caixa de diálogo Anaconda Packages, clique no link para rever a página Termos de ofertas externas.
Se você concordar com os termos, selecione Acknowledge & Continue.
Se você vir um erro ao tentar aceitar os termos de serviço, seu perfil de usuário pode estar sem um nome, sobrenome ou endereço de e-mail. Se você tiver uma função de administrador, consulte Adição dos detalhes do usuário ao seu perfil de usuário para atualizar seu perfil usando Snowsight. Caso contrário, entre em contato com um administrador para atualizar sua conta.
Considerações sobre faturamento para execução de Snowflake Notebooks¶
Executar um notebook Snowflake requer um warehouse virtual.
Semelhante ao faturamento de um aplicativo Streamlit, um notebook Snowflake usa uma conexão WebSocket para executar consultas. O warehouse virtual permanece ativo enquanto a conexão do WebSocket estiver ativa. Cada notebook tem sua própria sessão. A conexão expira quando você fecha o notebook ou quando aproximadamente 60 minutos se passaram desde a última vez que o notebook usou a conexão, o que ocorrer primeiro. Para permitir que o notebook seja executado por mais tempo, você pode usar um warehouse diferente ou alterar o parâmetro STATEMENT_TIMEOUT_IN_SECONDS. Esse parâmetro é definido no nível do warehouse ou da conta e encerra a sessão do notebook após um período definido.
Consulte Recomendações de warehouse para execução dos notebooks Snowflake.
Como começar a usar notebooks adicionando dados¶
Antes de começar a usar Snowflake Notebooks, adicione os dados ao Snowflake.
Você pode adicionar dados ao Snowflake de várias maneiras:
Adicione dados de um arquivo CSV para uma tabela usando a interface da Web. Consulte Carregamento de dados usando a interface da Web.
Adicione dados de armazenamento em nuvem externo:
Para carregar dados do Amazon S3, consulte Carregamento em massa a partir do Amazon S3.
Para carregar dados do Google Cloud Storage, consulte Carregamento em massa a partir do Google Cloud Storage.
Para carregar dados do Microsoft Azure, consulte Carregamento em massa a partir do Microsoft Azure.
Adicione dados em massa programaticamente. Consulte Carregamento em massa a partir de um sistema de arquivo local.
Você também pode adicionar dados de outras maneiras. Consulte Visão geral do carregamento de dados para mais detalhes.