Verwaltem von Snowflake Notebooks mit Python¶
Mit Python können Sie Snowflake Notebooks verwalten. Dabei handelt es sich um eine Entwicklungsoberfläche in Snowsight, die eine interaktive, zellbasierte Programmierumgebung für Python und SQL bietet. Weitere Informationen dazu finden Sie unter Allgemeine Informationen zu Snowflake Notebooks.
Die Snowflake Python APIs stellt Notebooks mit zwei verschiedenen Typen dar:
Notebook
: Zeigt die Eigenschaften eines Notebooks an, wie Name, Version, Abfrage-Warehouse und.ipynb
-Datei.NotebookResource
: Stellt Methoden zur Verfügung, mit denen Sie ein entsprechendesNotebook
-Objekt abrufen, Versionen des Notebooks verwalten und das Notebook ausführen können.
Voraussetzungen¶
Die Beispiele in diesem Thema gehen davon aus, dass Sie Code hinzugefügt haben, um eine Verbindung zu Snowflake herzustellen und ein Root
-Objekt zu erstellen, von dem aus Sie die Snowflake Python APIs verwenden können.
Beispielsweise verwendet der folgende Code Verbindungsparameter, die in einer Konfigurationsdatei definiert sind, um eine Verbindung zu Snowflake zu erstellen:
from snowflake.core import Root
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
Unter Verwendung des resultierenden Session
-Objekts erstellt der Code ein Root
-Objekt, das die Typen und Methoden der API verwendet. Weitere Informationen dazu finden Sie unter Verbinden mit Snowflake mit dem Snowflake Python APIs.
Ein Notebook erstellen¶
Um ein Notebook zu erstellen, erstellen Sie zunächst ein Notebook
-Objekt und dann ein NotebookCollection
-Objekt aus dem API Root
-Objekt. Mit NotebookCollection.create
fügen Sie das neue Notebook zu Snowflake hinzu.
Der Code im folgenden Beispiel erstellt ein Notebook
-Objekt, das ein Notebook mit dem Namen my_nb
in der my_db
-Datenbank und dem my_schema
-Schema darstellt:
from snowflake.core.notebook import Notebook
my_nb = Notebook(name="my_nb")
notebooks = root.databases["my_db"].schemas["my_schema"].notebooks
notebooks.create(my_nb)
Der Code erstellt eine NotebookCollection
-Variable notebooks
und verwendet NotebookCollection.create
, um ein neues Notebook in Snowflake zu erstellen.
Sie können ein Notebook auch aus einem Stagingbereich mit einer bestehenden .ipynb
-Datei erstellen. Der Code im folgenden Beispiel erstellt ein Notebook aus dem @my_stage
-Stagingbereich mit der notebook_file.ipynb
-Datei:
from snowflake.core.notebook import Notebook
my_nb = Notebook(name="my_nb",
query_warehouse="my_wh",
from_location="@my_stage",
main_file="notebook_file.ipynb")
notebooks = root.databases["my_db"].schemas["my_schema"].notebooks
notebooks.create(my_nb)
Details zum Notebook abrufen¶
Sie können Informationen über ein Notebook erhalten, indem Sie die NotebookResource.fetch
-Methode aufrufen, die ein Notebook
-Objekt zurückgibt.
Der Code im folgenden Beispiel ruft Informationen über ein Notebook mit dem Namen my_nb
in der my_db
-Datenbank und dem my_schema
-Schema ab:
my_nb = root.databases["my_db"].schemas["my_schema"].notebooks["my_nb"].fetch()
print(my_nb.to_dict())
Auflistung von Notebooks¶
Sie können Notebooks mit der NotebookCollection.iter
-Methode auflisten, die einen PagedIter
-Iterator von Notebook
-Objekten zurückgibt.
Der Code im folgenden Beispiel listet Notebooks auf, deren Name in der my_db
-Datenbank und dem my_schema
-Schema mit my
beginnt, und gibt dann den Namen jedes einzelnen aus:
from snowflake.core.notebook import NotebookCollection
notebooks: NotebookCollection = root.databases["my_db"].schemas["my_schema"].notebooks
nb_iter = notebooks.iter(like="my%") # returns a PagedIter[Notebook]
for nb_obj in nb_iter:
print(nb_obj.name)
Durchführung von Operationen mit dem Notebook¶
Sie können gängige Operationen für Notebooks, wie z.B. das Management von Versionen und die Ausführung von Notebooks - mit einem NotebookResource
-Objekt durchführen.
Zur Veranschaulichung einiger Operationen, die Sie mit einer Notebook-Ressource durchführen können, wird der Code im folgenden Beispiel wie folgt ausgeführt:
Ruft das
my_nb
-Notebook-Ressourcen-Objekt ab.Fügt dem Notebook-Objekt eine Live-Version hinzu. Dies ist äquivalent zu ALTER NOTEBOOK … ADD LIVE VERSION.
Überträgt die Live-Version des Notizbuchs in ein Git-Repository, wenn eine Git-Verbindung eingestellt ist. Andernfalls wird die Live-Version auf
null
gesetzt.Weitere Informationen dazu finden Sie unter ALTER NOTEBOOK.
Führt das Notebook aus.
Bemerkung
Um ein Notebook auszuführen, müssen Sie ihm zunächst eine Live-Version hinzufügen.
Löscht das Notebook
my_nb_res = root.databases["my_db"].schemas["my_schema"].notebooks["my_nb"]
my_nb_res.add_live_version(from_last=True)
my_nb_res.commit()
my_nb_res.execute()
my_nb_res.drop()