Executando notebooks no Workspaces com SQL

O Snowsight oferece suporte à execução não interativa (headless) de notebooks. Isso permite acionar uma execução programática de um notebook sem abrir o Snowsight e nem exigir um cronograma recorrente.

A execução headless é destinada a tarefas, tarefas agendadas ou fluxos de trabalho orquestrados por ferramentas como Airflow, Prefect, Dagster, pipelines de CI/CD ou sistemas externos que precisam executar um notebook programaticamente.

Criar um projeto de notebook

Se um projeto de notebook ainda não existir, crie um usando o comando CREATE NOTEBOOK PROJECT:

CREATE NOTEBOOK PROJECT <database_name>.<schema_name>.<project_name>
  FROM 'snow://workspace/<workspace_path>'
  COMMENT = 'Notebook project for this workflow';
Copy

Para encontrar o caminho do espaço de trabalho:

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione Projects » Workspaces.

  3. Selecione o espaço de trabalho.

  4. Selecione o ícone de alfinete.

  5. Copie o local (por exemplo, snow://workspace/USER$.schema."workspacename"/versions/head).

Executar um notebook usando SQL

Você pode executar um notebook de uma planilha, um arquivo SQL ou qualquer SQL usando o comando EXECUTE NOTEBOOK PROJECT:

EXECUTE NOTEBOOK PROJECT <database_name>.<schema_name>.<project_name>
  MAIN_FILE = '<notebook_file_name>.ipynb'
  COMPUTE_POOL = '<compute_pool_name>'
  RUNTIME = '<runtime_version>'      -- e.g., 'V2.2-CPU-PY3.12'
  QUERY_WAREHOUSE = '<warehouse_name>'
  EXTERNAL_ACCESS_INTEGRATIONS = ('<integration_name>');
Copy

Exemplo

EXECUTE NOTEBOOK PROJECT "sales_detection_db"."schema"."DEFAULT_PROJ_B32BCFD4"
  COMPUTE_POOL = "test_X_CPU"
  MAIN_FILE = 'notebook_file.ipynb'
  RUNTIME = 'V2.2-CPU-PY3.10'
  QUERY_WAREHOUSE = "ENG_INFRA_WH"
  EXTERNAL_ACCESS_INTEGRATIONS = ('test_EAI');
Copy

Visualizando execuções

Este comando executa o notebook e suas dependências usando a versão armazenada no projeto de notebook associado. Para visualizar os resultados da execução, navegue até o projeto de notebook no banco de dados e no esquema correspondentes no Snowsight.