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.
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:
Faça login no Snowsight.
Selecione o menu suspenso Connected.
Selecione Manage service para acessar a página Services & jobs.
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:
Integrações de acesso externo
Versão do tempo de execução
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
NOTEBOOKdo parâmetroALLOWED_SPCS_WORKLOAD_TYPES.Defina
NOTEBOOKcomo o parâmetroDISALLOWED_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;
Descartar um serviço de notebook¶
Os administradores podem descartar um serviço de notebook por SQL:
DROP USER$DB_NAME.PUBLIC.[SERVICE_NAME];
Como alternativa, os administradores podem usar o Snowsight:
Faça login no Snowsight.
No menu de navegação, selecione Monitoring » Services & jobs.
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.