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> [ , ... ] ]);
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();
Ü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'
);
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).