EXECUTE NOTEBOOK¶
Exécuter le notebook en dehors de l’éditeur de notebooks. Par exemple, vous pouvez exécuter EXECUTE NOTEBOOK seul à partir d’une feuille de calcul, l’intégrer dans un autre exécutable Snowflake tel qu’une procédure stockée ou une tâche, ou l’utiliser dans un orchestrateur tiers.
La commande exécute le dernier code de toutes les cellules du notebook. Les résultats sont accessibles depuis l’éditeur de notebooks.
Note
EXECUTE NOTEBOOK nécessite également la définition du paramètre QUERY_WAREHOUSE, sinon il se produit une erreur. Pour définir le paramètre QUERY_WAREHOUSE, utilisez la commande ALTER NOTEBOOK.
Syntaxe¶
EXECUTE NOTEBOOK <name>([ <parameter_string> [ , ... ] ]);
Paramètres requis¶
name
Spécifie l’identificateur (c’est-à-dire le nom) du notebook ; doit être unique pour le schéma dans lequel le notebook est créé. Doit être entièrement qualifié si le notebook n’est pas stocké dans le
database.schema
actuel dans lequel vous travaillez.De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (par exemple, « Mon objet »). Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Pour plus d’informations, voir Exigences relatives à l’identificateur.
Paramètres facultatifs¶
parameter_string
Vous pouvez également transmettre des arguments à un notebook. Dans une cellule Python du notebook, vous pouvez accéder à ces arguments en utilisant la variable
sys.argv
.Seules les chaînes sont prises en charge. les autres types de données (tels que les entiers ou les booléens) sont interprétés comme NULL.
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :
Privilège |
Objet |
Remarques |
---|---|---|
OWNERSHIP |
Notebook |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
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¶
Lorsque vous exécutez un notebook à l’aide de la commande EXECUTE NOTEBOOK :
Les cellules Python s’exécutent sur le pool de calcul défini 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 WAREHOUSE.
Note
Lorsque vous exécutez un notebook qui utilise un pool de calcul, le code Python s’exécute sur le pool de calcul. Cependant, vous pouvez voir une activité dans Query History montrant qu’un entrepôt a été utilisé pour exécuter la commande EXECUTE NOTEBOOK. Il s’agit d’un comportement attendu. L’entrepôt est utilisé brièvement pour initialiser l’environnement d’exécution du notebook, mais il ne consomme aucun crédit d’entrepôt. L’ensemble de l’exécution du code est gérée par le pool de calcul.
Exemple¶
L’exemple suivant déclenche la version par défaut du notebook spécifié sans passer d’arguments :
EXECUTE NOTEBOOK MY_DB.PUBLIC.MY_NOTEBOOK();
Transmettre des paramètres à un notebook¶
Vous pouvez éventuellement transmettre des arguments lors de l’exécution d’un notebook. Dans les cellules Python, vous pouvez accéder à ces arguments en utilisant la variable sys.argv
, qui est une liste Python intégrée contenant des arguments de la ligne de commande.
Vous pouvez utiliser des arguments pour personnaliser le comportement des notebooks. par exemple, vous pouvez transmettre des valeurs d’entrée, spécifier un environnement cible ou ajuster la logique d’exécution en fonction de ces arguments.
Exemple¶
EXECUTE NOTEBOOK MY_DATABASE.PUBLIC.MY_NOTEBOOK(
'parameter_string a,b,c,d',
'target_database=PROD_DB'
);
Dans une cellule Python du notebook, vous pouvez accéder à chaque argument sous la forme d’une chaîne dans la liste sys.argv
.
Pour savoir comment accéder à ces arguments à partir d’un notebook et les utiliser (y compris comment analyser des listes ou extraire des paires clé-valeur), voir Développez et exécutez du code dans des Snowflake Notebooks.