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 entsprechendes Notebook-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)
Copy

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

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

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())
Copy

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

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:

  1. Ruft das my_nb-Notebook-Ressourcen-Objekt ab.

  2. Fügt dem Notebook-Objekt eine Live-Version hinzu. Dies ist äquivalent zu ALTER NOTEBOOK … ADD LIVE VERSION.

  3. Ü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.

  4. Führt das Notebook aus.

    Bemerkung

    Um ein Notebook auszuführen, müssen Sie ihm zunächst eine Live-Version hinzufügen.

  5. 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()
Copy