EXECUTE NOTEBOOK PROJECT

Executa um notebook armazenado em um projeto de notebook fora do editor do Notebooks. Esse comando executa o notebook em um modo não interativo (headless ) e pode ser executado de:

  • Planilhas ou arquivos SQL;

  • Outros executáveis do Snowflake (tarefas);

  • Orquestradores externos que emitem SQL (por exemplo, Airflow, Prefect, Dagster, sistemas de CI/CD).

O comando executa o arquivo de notebook que você especifica como MAIN_FILE usando o tempo de execução, o pool de computação, o warehouse e as integrações de acesso externo que você configura. Os notebooks em execução em um tempo de execução de contêiner são executados em pools de computação, enquanto as consultas SQL/Snowpark são executadas em um warehouse.

Consulte também:

CREATE NOTEBOOK PROJECT, EXECUTE NOTEBOOK, CREATE TASK

Sintaxe

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

Parâmetros obrigatórios

database_name.schema_name.project_name

Identificador totalmente qualificado do projeto de notebook a ser executado.

Deve fazer referência a um projeto de notebook existente criado com CREATE NOTEBOOK PROJECT.

Deve ser totalmente qualificado, a menos que resida no DATABASE e SCHEMA atuais.

Para obter mais informações, consulte Requisitos para identificadores.

Parâmetros opcionais

Dependendo de como o projeto e o tempo de execução são configurados, alguns desses parâmetros podem ser necessários na prática. As descrições abaixo definem a finalidade e o uso comum deles.

MAIN_FILE = 'notebook_file_name.ipynb'

Especifica o arquivo de notebook principal a ser executado no espaço de trabalho (por exemplo, 'main.ipynb').

Deve ser um arquivo de notebook .ipynb localizado no espaço de trabalho referenciado pelo projeto.

O caminho é relativo à raiz do espaço de trabalho.

COMPUTE_POOL = 'compute_pool_name'

Especifica o pool de computação usado ao executar o notebook em um tempo de execução de contêiner.

Obrigatório quando o tempo de execução do notebook usa Snowpark Container Services.

RUNTIME = 'runtime_version'

Especifica a imagem/versão do tempo de execução para executar o notebook (por exemplo, 'V2.2-CPU-PY3.12').

Determina a versão do Python e o ambiente de execução usados para a execução do notebook.

Corresponde a uma imagem do tempo de execução de contêiner (CPU ou GPU) ou à variante do tempo de execução de warehouse.

QUERY_WAREHOUSE = 'warehouse_name'

Especifica o warehouse virtual usado para executar as consultas SQL e Snowpark do notebook.

Obrigatório se o notebook executar operações SQL ou Snowpark e nenhum warehouse foi configurado de outra forma.

Ao usar tempos de execução de contêiner, o warehouse processa o pushdown das consultas. O Python é executado no pool de computação.

EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )

Especifica uma ou mais integrações de acesso externo que o notebook pode usar durante a execução.

Obrigatório quando o notebook faz chamadas de rede de saída (por exemplo, para APIs externas).

Cada nome de integração deve fazer referência a uma integração de acesso externo existente.

Várias integrações de acesso externo podem ser especificadas em uma lista separada por vírgulas entre parênteses.

Exemplo:

EXTERNAL_ACCESS_INTEGRATIONS = ('http_eai', 's3_eai');
Copy

Requisitos de controle de acesso

A função que executa EXECUTE NOTEBOOK PROJECT deve ter privilégios suficientes no projeto de notebook.

Além disso, a função que faz a execução deve ter privilégios USAGE/OWNERSHIP:

  • No warehouse de consulta;

  • No pool de computação;

  • No banco de dados e esquema que contêm o projeto de notebook;

  • Nas tarefas e integrações de acesso externo referenciadas pelo comando.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

Você pode chamar EXECUTE NOTEBOOK PROJECT de tarefas, permitindo que o notebook seja executado como parte de fluxos de trabalho maiores.

Ao executar um notebook usando o comando EXECUTE NOTEBOOK PROJECT:

  • O código do notebook é executado no pool de computação especificado pelo parâmetro COMPUTE_POOL usando o tempo de execução especificado pelo parâmetro RUNTIME.

  • Consultas SQL e Snowpark são executadas usando o warehouse especificado pelo parâmetro QUERY_WAREHOUSE.

Exemplos

Executar um projeto de notebook com todos os parâmetros:

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

Executar um projeto de notebook usando apenas um warehouse:

EXECUTE NOTEBOOK PROJECT analytics_db.workflow_schema.workflow_proj
  MAIN_FILE = 'jobs/nightly_etl.ipynb'
  QUERY_WAREHOUSE = 'ETL_WH';
Copy