Ausführen und Planen von Notebooks in Workspaces¶
Planen von Notebooks in Workspaces¶
Beim Einsatz von Notebooks in der Produktion bietet Snowflake native Funktionen zur Verwaltung der Bereitstellung, Orchestrierung und Überwachung. Sie entwickeln und iterieren mit Notebooks interaktiv in Workspaces innerhalb von Snowsight. Wenn Sie ein Notebook planen, wird sein Inhalt in einem Produktionsobjekt bereitgestellt, das als Notebook-Projektobjekt (NPO) bezeichnet wird, das den Inhalt des Arbeitsbereichs kapselt (z. B. .ipynb-Dateien, Python-Skripte und SQL-Dateien). NPOs unterstützen versionierte Bereitstellungen und sind Objekte auf Schemaebene (z. B. db_name.schema_name.npo_name).
Nach der Bereitstellung können Sie die Ausführung des Notebooks mit Snowflake-Aufgaben (die den Notebook-Code von oben nach unten unter Verwendung einer konsistenten Laufzeit- und Abhängigkeitsliste ausführen) oder mit einem beliebigen Orchestrierungstool eines Drittanbieters orchestrieren. Snowflake erfasst Ausführungtelemetrie, die Sie in |sf-web-interface|überwachen können oder programmgesteuert über eine Ereignistabelle abfragen können. Weitere Informationen dazu finden Sie unter Beobachtbarkeit und Protokollierung für Notebooks in Workspaces.
Notebook-Projektobjekte (NPOs)¶
Ein NPO ist ein Objekt auf Schemaebene, das als produktionsbereite „Einheit“ in Ihrer Pipeline dient. Ein Notebook-Projekt ist mit einem Arbeitsbereich oder einem Stagingbereich verknüpft, und alle Dateien aus dem Arbeitsbereich werden kopiert. NPOs werden auf nicht interaktive Weise ausgeführt und können in eine Aufgabe zur Zeitplanung eingebettet werden.
Platzierung: NPOs existieren innerhalb eines bestimmten Schemas innerhalb einer Datenbank (
database_name.schema_name.npo_name).Einkapselung: Wenn Sie ein Notebook planen, erfasst das NPOdas gesamte Workspace-Verzeichnis, um sicherzustellen, dass alle Abhängigkeiten während der Ausführung verfügbar sind.
Ausführung: Sie führen ein NPO durch Angabe einer
.ipynb-Hauptdatei (z. B. unter Verwendung desMAIN_FILE-Parameters) aus. Das Haupt-Notebook kann über :ref:`%run <label-nb_in_ws_edit_run_jupyter_magics>`zusätzliche Notebooks aufrufen.Zeitplanung: Sie können mehrere Aufgabenobjekte erstellen, die dasselbe NPO ausführen, was mehrere Zeitpläne für dasselbe Notebook-Projektobjekt ermöglicht.
Weitere Informationen zu NPOs¶
NPOs sind Standarddatenbankobjekte, sodass Sie Metadatenbefehle verwenden können, um geplante Aufgaben zu überprüfen oder zu bereinigen.
Bereich |
Befehl |
|---|---|
Aktueller Kontext |
SHOW NOTEBOOK PROJECTS; |
Datenbankebene |
SHOW NOTEBOOK PROJECTS IN DATABASE <database_name>; |
Schemaebene |
SHOW NOTEBOOK PROJECTS IN SCHEMA <database_name>.<schema_name>; |
Kontoebene |
SHOW NOTEBOOK PROJECTS IN ACCOUNT; |
Berechtigungen und Freigabe für NPOs¶
Um ein NPO auszuführen oder zu verwalten, muss eine Rolle über die folgenden Berechtigungen verfügen:
Speicherort: USAGE oder OWNERSHIP für die Datenbank und das Schema, in denen das NPO enthalten ist.
NPO Zugriff: USAGE oder OWNERSHIP für das spezifische NPO.
Compute: USAGE and MONITOR on the warehouse, and USAGE on the compute pool (for Container Runtime).
Zeitplan: Die globale EXECUTE TASK-Berechtigung auf Kontoebene ist erforderlich, wenn das NPO durch eine Aufgabe ausgelöst wird.
Integrationen für den externen Zugriff: USAGE für beliebige, vom Notebook verwendete EAIs.
Aufgaben: Wenn das NPO über eine Aufgabe geplant wird, muss die Aufgabeneigentümerrolle die USAGE-Berechtigung für alle erforderlichen Objekte (z. B. NPOs, Warehouses oder Datenbanken) haben. Die Aufgabeneigentümerrolle muss auch die Berechtigung zum Ausführen der USE DATABASE- und USE SCHEMA-Befehle haben, wenn das Notebook seinen Ausführungskontext programmgesteuert festlegt.
Bemerkung
NPOs verwenden Aufruferrechte, wobei der Aufrufende der Benutzende ist (und nicht die Rolle). Wenn Sie EXECUTE NOTEBOOK PROJECT direkt in Snowsight ausführen, verwendet die Ausführung die Identität des aufrufenden Benutzenden und nicht die aktive Rolle in der Snowsight-Sitzung. Das Notebook wird in einer eigenen, dedizierten Sitzung (getrennt von der Snowsight-Sitzung) ausgeführt, mit der Standardrolle des Benutzenden als Primärrolle und allen aktivierten Sekundärrollen. Das bedeutet, dass das Notebook mit allen Berechtigungen ausgeführt werden kann, die den Rollen des Benutzenden erteilt wurden.
Verwenden eines NPO zum Planen eines Notebooks¶
Derzeit gibt es zwei unterstützte Szenarios für die Bereitstellung und Planung von Notebooks.. In beiden Szenarios müssen die Notebooks im NPO verpackt sein. Szenario A: plant Notebooks aus einem privaten Arbeitsbereich. Szenario B integriert GitHub-Aktionen (oder ein anderes CI/CD-System), um die Erstellung von NPOs von einem internen oder temporären Stagingbereich zu automatisieren, ihren Lebenszyklus durch versionierte Updates zu verwalten und ihre Ausführung mit Snowflake-Aufgaben zu orchestrieren.
Szenario |
Arbeitsbereichstyp |
Zeitplanmethode |
|---|---|---|
A: Individuelle Entwicklung |
Privat |
Unterstützt. Entwickelung in Ihrem privaten Arbeitsbereich. Erstellen von Notebook-Projektobjekten (NPO) und Planen von Aufgaben. |
B: Produktion (CI/CD) |
Git-integriert |
Notebook-Dateien werden in einem internen oder temporären Stagingbereich aus GitHub unter Verwendung von GitHub-Aktionen (oder anderen CI/CD-Tools) bereitgestellt und ein NPO wird von diesem Stagingbereich erstellt/aktualisiert. Die Aufgabe wird für dasNPO ausgeführt. |
Detaillierte Workflows für jedes Szenario finden Sie unter Planen von Workflows nach Szenario.
Geplante Notebook-Ausführungen anzeigen¶
Sie können geplante Aufgaben an drei Stellen anzeigen:
Vom Notebook aus
Um geplante Ausführungen anzuzeigen oder mit ihnen zu interagieren, müssen Sie eine Rolle mit Zugriff auf die Datenbank und das Schema verwenden, in dem der Zeitplan und das Projektobjekt erstellt wurden.
Wählen Sie im Navigationsmenü die Option Projects » Workspaces aus.
Öffnen Sie ein geplantes Notebook.
Wählen Sie oben im Notebook-Editor Scheduled runs
aus. In einem Popover werden die folgenden Informationen angezeigt:
Alle geplanten Ausführungen für dieses Notebook.
Die nächste geplante Ausführungszeit.
Status der letzten Ausführungen. Bewegen Sie den Mauszeiger über einen Statusindikator, um Details wie die Abfrage-ID, letzte Ausführungszeit, Dauer und Status anzuzeigen.
Über das Aktionsmenü
Open Run History: Opens the notebook’s project object showing all past runs, including status, duration, results, source file, logs, and metrics. Selecting a run’s result opens the executed notebook with its output. For more information, see Beobachtbarkeit und Protokollierung für Notebooks in Workspaces.
Vom Database Explorer
So zeigen Sie den Ausführungsverlauf für alle geplanten Notebooks an (einschließlich solche, die über CI/CD bereitgestellt werden):
Wählen Sie im Navigationsmenü die Option Catalog » Database Explorer aus.
Wählen Sie die Datenbank und das Schema aus, die das Notebook-Projektobjekt (NPO) enthalten .
Wählen Sie den NPO aus.
Wählen Sie Run history aus.
Wählen Sie eine Ausführung aus, um die Notebook-Ausgabe dieser Ausführung zusammen mit Protokollen und Metriken (falls verfügbar) anzuzeigen. Weitere Informationen dazu finden Sie unter Beobachtbarkeit und Protokollierung für Notebooks in Workspaces.
Bemerkung
Um den Ausführungsverlauf von Notebook-Ausführungen anzuzeigen, die durch Airflow ausgelöst wurden, melden Sie sich bei Snowsight mit demselben Benutzernamen, der Airflow ausführt, an.
Geplante Aufgaben verwalten¶
Im Popover Scheduled runs können Sie Ihre geplanten Aufgaben verwalten, indem Sie das Ellipsenmenü (Weitere Aktionen)
neben einer geplanten Aufgabe auswählen:
Jetzt ausführen: Löst eine sofortige Ausführung der geplanten Aufgabe aus.
Zeitplan anhalten: Verhindert vorübergehend die automatische Ausführung des Zeitplans. Die Aufgabe bleibt konfiguriert, wird aber erst ausgeführt, wenn sie fortgesetzt wird.
Löschen: Entfernt die geplante Aufgabe dauerhaft. Sie können einen neuen Zeitplan mit anderen Einstellungen (z. B. einer anderen Rolle oder einem anderen Datenbankspeicherort) erstellen, nachdem Sie den bestehenden Zeitplan gelöscht haben.
Aktualisierungen für geplante Notebook-Aufgaben bereitstellen¶
Nach der Bearbeitung eines Notebooks müssen Sie Ihre Änderungen bereitstellen, bevor geplante Ausführungen die aktualisierte Version verwenden. Die Bereitstellung stellt die Reproduzierbarkeit sicher und verhindert, dass geplante Aufgaben Code ausführen, der sich von dem unterscheidet, was zuletzt bereitgestellt wurde. Wenn dies die erste Aufgabe des Notebooks ist und ein Notebook Änderungen aufweist, die eine Bereitstellung erfordern, zeigt das Symbol „Zeitplan“ (Kalender) eine Uhr-Anzeige. Wenn bereits ein Zeitplan vorhanden ist, ist das Symbol ein Kalender mit einer Uhr.
Nach dem Ändern von Code oder Zellen zeigt das Symbol an, dass es Änderungen gibt, die nicht bereitgestellt wurden.
Wählen Sie Deploy Changes aus.
Snowflake aktualisiert dann das zugehörige Notebook-Projektobjekt, und alle geplanten Aufgaben für dieses Notebook verwenden bei der nächsten Ausführung die neu bereitgestellte Version.
Ein Notebook-Projektobjekt (NPO) im Object Explorer suchen¶
Jedes geplante Notebook erstellt automatisch ein NPO, das den bereitgestellten Code, den Ausführungsverlauf und die Artefakte speichert. Sie finden diese Objekte im Object Explorer in Snowsight.
Um ein NPO in Snowsight zu finden, führen Sie die folgenden Schritte aus:
Wählen Sie im Navigationsmenü die Option Catalog » Database Explorer aus.
Navigieren Sie zu Database » Schema » Notebook Project Objects, um alle NPOs in diesem Schema anzuzeigen.
Alternativ können Sie auch Folgendes tun:
Den Ausführungsverlauf des Notebooks anzeigen¶
In diesem Abschnitt wird beschrieben, wie Sie Ausführungsdetails anzeigen und Probleme bei Notebook-Ausführungen beheben können, nachdem ein Zeitplan erstellt wurde. Wenn ein Schritt während der Ausführung fehlschlägt, bricht Snowflake die Ausführung ab, um unvollständige oder inkonsistente nachgelagerte Ergebnisse zu vermeiden.
Um den Ausführungsverlauf anzuzeigen, gehen Sie wie folgt vor:
Wählen Sie im Navigationsmenü die Option Projects » Workspaces aus.
Öffnen Sie das Notebook, dessen Ausführungsverlauf Sie überprüfen möchten.
Wählen Sie im Dropdown-Menü die Option View run history aus.
Run History zeigt die folgenden Informationen für das Projektobjekt des Notebooks an:
Ergebnisse: Sehen Sie sich das Notebook und die Ausgabe früherer Ausführungen an.
Aufgaben: Sehen Sie, welche Aufgaben das NPO ausgeführt haben.
Quelldatei: Zeigen Sie die Notebook-Datei an, die ausgeführt wurde.
Protokolle und Metriken: Zeigen Sie Ausführungsprotokolle und Leistungsmetriken an (stellen Sie sicher, dass Sie die Protokollierung und Ereignistabelle aktiviert haben). Weitere Informationen dazu finden Sie unter Beobachtbarkeit und Protokollierung für Notebooks in Workspaces.
Ausführungsdetails: Start- und Endzeiten, Ausführungsstatus und Fehlerdetails.
Ein Notebook mit Aufgaben planen¶
Wählen Sie im Navigationsmenü die Option Projects » Workspaces aus.
Führen Sie den folgenden Befehl in einer bzw- einem SQL-Datei/Arbeitsblatt aus:
-- Execute a notebook project using a task CREATE OR REPLACE TASK <database_name>.<schema_name>.<name> WAREHOUSE = <string> SCHEDULE = 'USING CRON 10 13 * * * America/Los_Angeles' -- CRON format: <minute> <hour> <day_of_month> <month> <day_of_week> <timezone> AS -- Execute a notebook stored within a notebook project. EXECUTE NOTEBOOK PROJECT "<database_name>"."<schema_name>"."<project_name>" MAIN_FILE = 'notebook.ipynb' -- Path to the notebook file COMPUTE_POOL = '<compute_pool_name>' RUNTIME = '<runtime_version>' -- e.g. V2.2-CPU-PY3.11 QUERY_WAREHOUSE = '<wh_name>' ARGUMENTS = '<string>' -- Can pass a single string parsed in the notebook code REQUIREMENTS_FILE = '<path/to/requirements.txt>' -- Pre-installs dependencies before the notebook runs EXTERNAL_ACCESS_INTEGRATIONS = ('integration_name'); -- e.g. ('http_eai', 's3_eai')
Nachdem Sie diese Aufgabe erstellt haben, führen Sie den folgenden Befehl aus, um den Zeitplan zu aktivieren:
ALTER TASK <database_name>.<schema_name>.<task_name> RESUME;
Wenn eine Aufgabe fehlschlägt, weil Ihre aktive Rolle nicht über die erforderlichen Berechtigungen verfügt, zeigt Snowsight die entsprechenden Fehlermeldungen an, sodass Sie sich um die fehlenden Berechtigungen kümmern können.
Syntax, Parameter und Beispiele finden Sie unter EXECUTE NOTEBOOK PROJECT. Informationen zur Übergabe von Parametern an geplante Notebooks finden Sie unter Ausführen von Notebooks mit Parametern.
Bemerkung
Weitere Informationen zur Credit-Nutzung, zum Timeout-Verhalten bei Leerlauf und zur Verwaltung des Notebook-Services finden Sie unter Einrichten von Computeressourcen und Timeout bei Leerlauf.