Configuração de computação para Snowflake Notebooks no Workspaces

Configurando a computação

Quando um usuário executa um notebook, ele cria um serviço de notebook gerenciado pelo Snowflake para hospedar o kernel do notebook e executar o código.

Ao criar um serviço de notebook, os usuários podem configurar a versão Python, a versão Snowflake Container Runtime, o pool de computação, o tempo limite de inatividade, as integrações de acesso externo e, opcionalmente, personalizar o nome do serviço.

Cada serviço de notebook tem como escopo um único usuário e ocupa um nó no pool de computação selecionado. Todos os notebooks conectados ao mesmo serviço compartilham os recursos de computação nesse nó. Se um notebook exigir recursos de computação dedicados, crie um serviço de notebook separado e evite anexar notebooks adicionais a ele.

../../../_images/notebook-compute-diagram1.png

Gerenciando um serviço de notebook

Suspender

Você pode suspender manualmente um serviço de notebook clicando em Connected, passando o cursor do mouse sobre o nome do serviço e selecionando Suspend (ícone de pausa).

Como alternativa, você pode esperar até que o serviço atinja sua configuração de tempo limite de inatividade, e ele será suspenso automaticamente. Para obter detalhes sobre como o tempo de inatividade é calculado, consulte Tempo limite de inatividade.

Suspender um serviço desconecta todos os notebooks conectados a ele, limpa os estados na memória e remove todos os pacotes e as variáveis. Arquivos criados do código e da linha de comando para o sistema de arquivos do espaço de trabalho e o diretório /tmp também são perdidos. Para obter mais informações sobre as limitações do sistema de arquivos, consulte Trabalhando com o sistema de arquivos.

Retomar

Para retomar um serviço suspenso, conecte um notebook a ele ou execute um notebook que já esteve conectado a ele.

Descartar

Para descartar um serviço, siga estas etapas:

  1. Faça login no Snowsight.

  2. Selecione o menu suspenso Connected.

  3. Selecione Manage service para acessar a página Services & jobs.

  4. Selecione as reticências ao lado do serviço que deseja remover e selecione Drop.

Editando um serviço de notebook

Um serviço de notebook pode ser atualizado após sua criação para alterar:

  1. Integrações de acesso externo

  2. Versão do tempo de execução

  3. Tempo limite de inatividade

As alterações nos itens (1) ou (2) suspendem e reiniciam o serviço. A alteração no tempo limite de inatividade não reinicia o serviço.

Tempo limite de inatividade

Cada serviço de notebook define o próprio tempo limite de inatividade. O serviço é suspenso quando o tempo de inatividade é atingido. O tempo de inatividade começa assim que todas as células em execução em todos os notebooks conectados são encerradas. Se vários notebooks compartilharem o mesmo serviço, o tempo de inatividade começará somente quando o último notebook ficar ocioso (sem células em execução).

Uso de crédito

A execução do notebook pode gerar créditos de duas fontes:

  • Pool de computação: alimenta os kernels do notebook e os processos Python.

    Os créditos são acumulados enquanto o serviço de notebook está no estado RUNNING até que ele seja suspenso manualmente ou devido ao tempo limite de inatividade. Todos os notebooks conectados ao mesmo serviço compartilham os créditos do pool de computação consumidos.

  • Warehouse de consulta: usado para consultas SQL ou computação de pushdown do Snowpark acionada pelo notebook.

    Os créditos são acumulados somente quando as consultas SQL ou as operações de computação de pushdown do Snowpark são executadas no warehouse. Para otimizar custos, habilite a suspensão automática no warehouse de consulta. Notebooks que não invocam nenhuma consulta SQL ou computação de pushdown do Snowpark não geram créditos de warehouse de consulta.

Para obter mais informações sobre otimização de custos e maximização de valor, consulte Otimização de custo.

Governança nos serviços de notebook

Os serviços de notebook são pessoais de cada usuário, utilizados exclusivamente para executar notebooks e localizados no banco de dados pessoal do usuário (Personal Database, PDB).

Privilégios

Propriedade

OWNER_ROLE é NULL porque o Snowflake gerencia estes serviços.

Privilégios do usuário

O usuário que está sendo criado recebe os seguintes privilégios:

  • USAGE

  • OPERATE

  • DROP

  • MONITOR

Privilégios de administrador

ACCOUNTADMIN recebe os seguintes privilégios:

  • USAGE

  • OPERATE

  • DROP

Isso permite gerenciamento e supervisão completos de todos os serviços de notebook.

Controle de administrador e monitoramento de custos em pools de computação

Os administradores gerenciam o acesso do usuário e os custos, principalmente por meio dos pools de computação associados aos serviços de notebook.

A função de um usuário deve ter o privilégio USAGE em um pool de computação para criar um serviço de notebook e executar notebooks. Além disso, o pool de computação deve permitir o tipo de carga de trabalho NOTEBOOK por meio do parâmetro ALLOWED_SPCS_WORKLOAD_TYPES. O valor padrão desse parâmetro é ALL, o que inclui NOTEBOOK.

Para saber mais sobre cargas de trabalho de pool de computação, consulte Snowpark Container Services: como trabalhar com pools de computação.

Desabilitar a execução do notebook

Os administradores podem restringir a execução de notebooks no Workspaces de várias maneiras:

Remover USAGE no pool de computação

A remoção do privilégio USAGE de uma função no pool de computação impede que essa função use o pool de computação, incluindo a execução de notebooks.

Restringir tipos de carga de trabalho em todos os pools de computação

Os administradores podem restringir a execução de notebooks e, ao mesmo tempo, permitir outras cargas de trabalho usando dois parâmetros no nível da conta. Isso afetará todas as funções na conta.

  • Exclua NOTEBOOK do parâmetro ALLOWED_SPCS_WORKLOAD_TYPES.

  • Defina NOTEBOOK como o parâmetro DISALLOWED_SPCS_WORKLOAD_TYPES.

Qualquer função que tenha USAGE no pool de computação ainda pode executar outros tipos de cargas de trabalho permitidos, conforme especificado pelos parâmetros.

Monitorar os custos

Os administradores podem monitorar o consumo por pool de computação. A Snowflake recomenda provisionar um pool de computação exclusivo para cada função para visualizar o consumo no nível da função. Para gerenciar os gastos, os administradores podem aplicar orçamentos a pools de computação específicos.

Visualizar serviços gerenciados por notebooks

Use o comando SHOW SERVICES:

SHOW SERVICES OF TYPE NOTEBOOK;
Copy

Descartar um serviço de notebook

Os administradores podem descartar um serviço de notebook por SQL:

DROP USER$DB_NAME.PUBLIC.[SERVICE_NAME];
Copy

Como alternativa, os administradores podem usar o Snowsight:

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione Monitoring » Services & jobs.

  3. Selecione as reticências e, em seguida, selecione Drop.

Manutenção de serviço

Os serviços de notebook são um tipo de Snowpark Container Services e requerem manutenção periódica para permanecer seguros e atualizados. A manutenção normalmente leva cerca de cinco minutos e suspende e reinicia o serviço de notebook. Consulte Gerenciando um serviço de notebook para obter detalhes sobre o impacto da carga de trabalho.

Depois que um serviço de notebook entra no estado RUNNING (seja recém-criado ou retomado depois de ficar no estado SUSPENDED), é garantido que ele não será interrompido por sete dias corridos (168 horas) devido a manutenção do serviço. Após sete dias da criação, o serviço poderá ser suspenso para manutenção obrigatória.