EXECUTE NOTEBOOK PROJECT

Exécute un notebook stocké dans un projet de notebook situé en dehors de l’éditeur de notebooks. Cette commande exécute le notebook en mode non interactif (sans tête) et peut être exécutée à partir de :

  • Feuilles de calcul ou fichiers SQL.

  • Autres exécutables Snowflake (tâches).

  • Orchestrateurs externes qui émettent du SQL (par exemple, Airflow, Prefect, Dagster, systèmes CI/CD).

La commande exécute le fichier de notebook que vous spécifiez en tant que MAIN_FILE à l’aide de l’environnement d’exécution, du pool de calcul, de l’entrepôt et des intégrations d’accès externes que vous configurez. Les notebooks fonctionnant sur une exécution de conteneur s’exécutent sur des pools de calcul, tandis que les requêtes SQL/Snowpark s’exécutent sur un entrepôt.

Voir aussi :

CREATE NOTEBOOK PROJECT, EXECUTE NOTEBOOK, CREATE TASK

Syntaxe

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

Paramètres requis

database_name.schema_name.project_name

Identificateur pleinement qualifié du projet de notebook à exécuter.

Doit faire référence à un projet de notebook existant créé avec CREATE NOTEBOOK PROJECT.

Doit être pleinement qualifié, sauf s’il réside dans la DATABASE et le SCHEMA actuels.

Pour plus d’informations, voir Exigences relatives à l’identificateur.

Paramètres facultatifs

Selon la manière dont le projet et l’exécution sont configurés, certains de ces paramètres peuvent être nécessaires dans la pratique. Les descriptions ci-dessous définissent leur objectif et leur utilisation typique.

MAIN_FILE = 'notebook_file_name.ipynb'

Spécifie le fichier de notebook principal dans l’espace de travail à exécuter (par exemple, 'main.ipynb').

Doit être un fichier de notebook .ipynb situé dans l’espace de travail référencé par le projet.

Le chemin est relatif à la racine de l’espace de travail.

COMPUTE_POOL = 'compute_pool_name'

Spécifie le pool de calcul utilisé lors de l’exécution du notebook sur une exécution de conteneur.

Requis lorsque l’exécution du notebook utilise Snowpark Container Services.

RUNTIME = 'runtime_version'

Spécifie l’image/la version d’exécution pour l’exécution du notebook (par exemple, 'V2.2-CPU-PY3.12').

Détermine la version de Python et l’environnement d’exécution utilisés pour l’exécution du notebook.

Correspond à une image d’exécution de conteneur (CPU ou GPU) ou à une variante d’exécution d’entrepôt.

QUERY_WAREHOUSE = 'warehouse_name'

Spécifie l’entrepôt virtuel utilisé pour l’exécution des requêtes SQL et Snowpark du notebook.

Requis si le notebook effectue des opérations SQL ou Snowpark et qu’aucun entrepôt n’est configuré autrement.

Lors de l’utilisation d’exécutions de conteneur, l’entrepôt gère le pushdown des requêtes ; Python s’exécute sur le pool de calcul.

EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )

Spécifie une ou plusieurs intégrations d’accès externes que le notebook peut utiliser pendant l’exécution.

Requis lorsque le notebook effectue des appels réseau sortants (par exemple, vers des APIs externes).

Chaque nom d’intégration doit faire référence à une intégration d’accès externe existante.

Plusieurs intégrations d’accès externes peuvent être spécifiées dans une liste séparée par des virgules à l’intérieur des parenthèses.

Exemple :

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

Exigences en matière de contrôle d’accès

Le rôle exécutant EXECUTE NOTEBOOK PROJECT doit disposer de privilèges suffisants sur le projet de notebook.

En outre, le rôle d’exécution doit disposer des privilèges USAGE/OWNERSHIP sur :

  • L’entrepôt de requêtes.

  • Le pool de calcul.

  • La base de données et le schéma contenant le projet de notebook.

  • Les tâches et les intégrations d’accès externes référencées par la commande.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Notes sur l’utilisation

Vous pouvez appeler EXECUTE NOTEBOOK PROJECT à partir de tâches, en permettant les exécutions de notebooks dans le cadre de workflows plus importants.

Lorsque vous exécutez un notebook à l’aide de la commande EXECUTE NOTEBOOK PROJECT :

  • Le code du notebook s’exécute sur le pool de calcul spécifié par le paramètre COMPUTE_POOL en utilisant l’exécution spécifiée par le paramètre RUNTIME.

  • Les requêtes SQL et Snowpark s’exécutent en utilisant l’entrepôt spécifié dans le paramètre QUERY_WAREHOUSE.

Exemples

Exécuter un projet de notebook avec tous les paramètres :

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

Exécuter un projet de notebook en utilisant uniquement un entrepôt :

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