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;
Copy

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;
Copy

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;
Copy

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;
Copy

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;
Copy

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;
Copy

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:

  1. 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;
    
    Copy
    Python:
    session.sql('USE WAREHOUSE notebooks;')
    
    Copy

    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.

  2. 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:

  1. Faça login no Snowsight.

  2. Selecione Projects » Notebooks.

  3. Selecione o ícone de menu de reticências verticais (mais ações para planilha) no canto superior direito do notebook.

  4. Selecione Notebook settings.

  5. 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.

  1. Faça login no Snowsight.

  2. Selecione Admin » Billing & Terms.

  3. Na seção Anaconda, selecione Enable.

  4. Na caixa de diálogo Anaconda Packages, clique no link para rever a página Termos de ofertas externas.

  5. 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:

Você também pode adicionar dados de outras maneiras. Consulte Visão geral do carregamento de dados para mais detalhes.

Próxima etapa