EXECUTE NOTEBOOK

Führt das Notebook außerhalb des Notebook-Editors aus. So können Sie beispielsweise EXECUTE NOTEBOOK selbst von einem Arbeitsblatt aus ausführen, in einer anderen ausführbaren Snowflake-Datei verschachteln (z. B. in einer gespeicherten Prozedur oder Aufgabe) oder in einem Orchestrator eines Drittanbieters verwenden.

Der Befehl führt den neuesten Code aus allen Zellen im Notebook aus. Die Ergebnisse sind über den Notebook-Editor zugänglich.

Bemerkung

EXECUTE NOTEBOOK erfordert außerdem, dass der Parameter QUERY_WAREHOUSE gesetzt ist, da sonst ein Fehler auftritt. Um den Parameter QUERY_WAREHOUSE einzustellen, verwenden Sie den Befehl ALTER NOTEBOOK.

Syntax

EXECUTE NOTEBOOK <name>([ <parameter_string> [ , ... ] ]);
Copy

Erforderliche Parameter

name

Gibt den Bezeichner (d. h. den Namen) für das Notebook an. Der Wert muss für das Schema, in dem das Notebook erstellt wird, eindeutig sein. Muss vollqualifiziert sein, wenn das Notebook nicht in dem aktuellen database.schema, in dem Sie aktiv sind, gespeichert ist.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. „Mein Objekt“). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

Optionale Parameter

parameter_string

Optional können Sie Argumente an ein Notebook übergeben. In einer Python-Zelle im Notebook können Sie auf diese Argumente zugreifen, indem Sie die sys.argv-`Variable <https://docs.python.org/3/library/sys.html#sys.argv> verwenden.

Es werden nur Zeichenfolgen unterstützt. Andere Datentypen (wie Ganzzahlen oder Boolesche Werte) werden als NULL interpretiert

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

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).

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

Wenn Sie ein Notebook über den EXECUTE NOTEBOOK-Befehl ausführen:

  • Python-Zellen werden auf dem definierten Computepool ausgeführt, der durch den RUNTIME-Parameter definiert ist.

  • SQL- und Snowpark-Abfragen werden mit dem imWAREHOUSE-Parameter genannten Warehouse ausgeführt.

Bemerkung

Wenn Sie ein Notebook ausführen, das einen Computepool verwendet, wird der Python-Code auf dem Computepool ausgeführt. Sie können jedoch Aktivitäten in Query History sehen, die zeigen, dass ein Warehouse zur Ausführung des EXECUTE NOTEBOOK-Befehls verwendet wurde. Dies ist ein erwartetes Verhalten. Das Warehouse wird kurz verwendet, um die Ausführungsumgebung des Notebooks zu initialisieren, verbraucht aber keine Warehouse-Credits. Die gesamte Ausführung von Code wird vom Computepool übernommen.

Beispiel

Das folgende Beispiel löst die Standardversion des angegebenen Notebooks aus, ohne dass Argumente übergeben werden:

EXECUTE NOTEBOOK MY_DB.PUBLIC.MY_NOTEBOOK();
Copy

Übergeben von Parametern an ein Notebook

Sie können optional Argumente übergeben, wenn ein ein Notebook ausgeführt wird. In Python-Zellen können Sie auf diese Argumente zugreifen, indem Sie die Variable sys.argv verwenden, die eine in Python integrierte Liste ist, die Befehlszeilenargumente enthält.

Sie können Argumente verwenden, um das Verhalten des Notebooks anzupassen. Sie können zum Beispiel Eingabewerte übergeben, eine Zielumgebung angeben oder die Ausführungslogik auf der Grundlage dieser Argumente anpassen.

Beispiel

EXECUTE NOTEBOOK MY_DATABASE.PUBLIC.MY_NOTEBOOK(
  'parameter_string a,b,c,d',
  'target_database=PROD_DB'
);
Copy

In einer Python-Zelle im Notebook können Sie auf jedes Argument als Zeichenfolge in der sys.argv-Liste zugreifen.

Unter Code in Snowflake Notebooks entwickeln und ausführen erfahren Sie, wie Sie von einem Notebook aus auf diese Argumente zugreifen und sie verwenden können (einschließlich, wie man Listen parst oder Schlüssel-Wert-Paare extrahiert).