EXECUTE NOTEBOOK PROJECT

Führt ein Notebook aus, das in einem Notebook-Projekt außerhalb des Notebooks-Editors gespeichert ist. Dieser Befehl führt das Notebook in einem nicht interaktiven (headless) Modus aus und kann ausgeführt werden von:

  • Arbeitsblätter oder SQL-Dateien.

  • Anderen ausführbaren Snowflake-Dateien (Aufgaben).

  • External Orchestratoren, die SQL ausgeben (z. B. Airflow, Prefect, Dagster, CI/CD-Systeme).

Der Befehl führt die Notebook-Datei, die Sie als MAIN_FILE angeben, unter Verwendung der von Ihnen konfigurierten Laufzeit, des Computepools, des Warehouse und der Integrationen für den externen Zugriff aus. Notebooks, die in einer Container-Laufzeit ausgeführt werden, werden auf Computepools ausgeführt, während SQL/Snowpark-Abfragen in einem Warehouse ausgeführt werden.

Siehe auch:

CREATE NOTEBOOK PROJECT, EXECUTE NOTEBOOK, CREATE TASK

Syntax

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

Erforderliche Parameter

database_name.schema_name.project_name

Vollqualifizierter Bezeichner des auszuführenden Notebook-Projekts.

Muss auf ein bestehendes Notebook-Projekt verweisen, das mit CREATE NOTEBOOK PROJECT erstellt wurde.

Muss vollqualifiziert sein, es sei denn, es befindet sich in der aktuellen DATABASE und dem aktuellen SCHEMA.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

Optionale Parameter

Je nachdem, wie Projekt und Laufzeit konfiguriert sind, können einige dieser Parameter in der Praxis erforderlich sein. Die folgenden Beschreibungen definieren ihren Zweck und die typische Nutzung.

MAIN_FILE = 'notebook_file_name.ipynb'

Gibt die Notebook-Hauptdatei, die ausgeführt werden soll, innerhalb des Arbeitsbereichs an (z. B. 'main.ipynb').

Muss eine .ipynb-Notebook-Datei sein, die sich in dem Arbeitsbereich befindet, auf den das Projekt verweist.

Der Pfad ist relativ zum Stammverzeichnis des Arbeitsbereichs.

COMPUTE_POOL = 'compute_pool_name'

Gibt den Computepool an, der verwendet wird, wenn das Notebook in einer Container-Laufzeit ausgeführt wird.

Erforderlich, wenn die Notebook-Laufzeit Snowpark Container Services verwendet.

RUNTIME = 'runtime_version'

Gibt das Laufzeit-Image/die Laufzeitversion für die Ausführung des Notebooks an (z. B. 'V2.2-CPU-PY3.12').

Bestimmt die Python-Version und die Ausführungsumgebung, die für die Ausführung des Notebooks verwendet werden.

Entspricht einem Container-Laufzeit-Image (CPU oder GPU) oder einer Warehouse-Laufzeitvariante.

QUERY_WAREHOUSE = 'warehouse_name'

Gibt das virtuelle Warehouse an, das für die Ausführung von SQL- und Snowpark-Abfragen vom Notebook aus verwendet wird.

Erforderlich, wenn das Notebook SQL- oder Snowpark-Vorgänge ausführt und ansonsten kein Warehouse konfiguriert ist.

Bei Verwendung von Container-Laufzeiten übernimmt das Warehouse die Abfrageverschiebung (Pushdown). Python wird auf dem Computepool ausgeführt.

EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )

Gibt eine oder mehrere Integrationen für den externen Zugriff an, die das Notebook während der Ausführung verwenden kann.

Erforderlich, wenn das Notebook ausgehende Netzwerkaufrufe tätigt (z. B. an die externe APIs).

Jeder Integrationsname muss auf eine vorhandene Integration für den externen Zugriff verweisen.

Mehrere Integrationen für den externen Zugriff können in einer durch Kommas getrennten Liste in den Klammern angegeben werden.

Beispiel:

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

Anforderungen an die Zugriffssteuerung

Die Rolle, die EXECUTE NOTEBOOK PROJECT ausführt, muss über ausreichende Berechtigungen für das Notebook-Projekt verfügen.

Außerdem muss die ausführende Rolle die Berechtigungen USAGE/OWNERSHIP haben für:

  • Das Abfrage-Warehouse.

  • Der Computepool.

  • Die Datenbank und das Schema, die das Notebook-Projekt enthalten.

  • Aufgaben und Integrationen für den externen Zugriff, auf die der Befehl verweist.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

Sie können EXECUTE NOTEBOOK PROJECT von Aufgaben aufrufen, sodass Notebooks als Teil von größeren Workflows ausgeführt werden können.

Wenn Sie ein Notebook mit dem Befehl EXECUTE NOTEBOOK PROJECT ausführen:

  • Der Notebook-Code wird auf dem durch den Parameter COMPUTE_POOL angegebenen Computepool ausgeführt, unter Verwendung der durch den Parameter RUNTIME angegebenen Laufzeit.

  • SQL- und Snowpark-Abfragen werden mit dem Warehouse ausgeführt, das vom Parameter QUERY_WAREHOUSE angegeben wird.

Beispiele

Ausführen eines Notebook-Projekts mit allen Parametern:

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

Ausführen eines Notebook-Projekts, das nur ein Warehouse verwendet:

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