Ausführen und Planen von Notebooks in Workspaces¶
Planen von Notebooks in Workspaces¶
Sie können Ihre Data Science und ML-Workflows automatisieren, indem Sie Notebooks in Workspaces so planen, dass sie in wiederkehrenden Intervallen ausgeführt werden. Geplante Ausführungen verwenden Snowflake-Aufgaben und führen Notebooks mit allen Abhängigkeiten in einer konsistenten Top-Down-Sequenz aus.
Bemerkung
Die Zeitplanung wird derzeit nicht für Notebooks in freigegebenen Arbeitsbereichen unterstützt.
Erforderliche Berechtigungen¶
Um ein Notebook zu planen, muss die Rolle, mit der der Zeitplan erstellt wird, über die folgenden Berechtigungen und Gewährungen verfügen:
Kontoebene
EXECUTE TASK für ACCOUNT: Ermöglicht es der Rolle, Aufgaben auszuführen, die mit geplanten Notebooks verbunden sind.
Schemaebene
CREATE TASK: Erforderlich, um die zugrunde liegende Snowflake-Aufgabe zu erstellen.
USAGE für das Zielschema: Zum Speichern von Aufgaben-Metadaten und Notebook-Projektobjekten.
Compute- und Warehouse-Berechtigungen
USAGE für den Computepool, der für die Ausführung des Notebooks verwendet wird.
USAGE und MONITOR für das Abfrage-Warehouse, das für SQL-Zellen innerhalb des Notebooks verwendet wird.
USAGE auf Integrationen für den externen Zugriff (External Access Integrations, EAIs) für Notebooks
USAGE für beliebige, vom Notebook verwendete EAI.
Notebook planen¶
Um ein Notebook in Snowsight zu planen, führen Sie die folgenden Schritte aus:
Wählen Sie im Navigationsmenü die Option Projects » Notebooks aus.
Erstellen Sie ein neues Notebook, oder öffnen Sie ein vorhandenes Notebook, um es zu planen.
Wählen Sie oben rechts im Notebook-Editor Schedule aus.
Wenn dies die erste Aufgabe des Notebooks ist, ist die Schaltfläche „Schedule“ ein Kalendersymbol.
Wenn bereits ein Zeitplan vorhanden ist, ist das Symbol ein Kalender mit einer Uhr.
Wählen Sie Create Schedule aus.
Geben Sie im Dialogfeld Schedule a Notebook Task die folgenden Informationen an.
Grundeinstellungen
Aufgabenname: Der eindeutige Name für die geplante Aufgabe. Der Standardname ist
{notebook-name}_task_#, kann aber bei Bedarf aktualisiert werden.Eigentümerrolle: Die Snowflake-Rolle, unter der die Aufgabe ausgeführt wird. Wählen Sie eine Rolle mit den erforderlichen Berechtigungen aus, um alle Vorgänge auszuführen, die vom geplanten Notebook durchgeführt werden. Diese Rolle muss über folgende Berechtigungen verfügen:
Lesen aus der/Schreiben in die vom Notebook verwendeten Datenbankobjekte
Zugreifen auf Warehouses, Computepools und Integrationen
Aufgaben- und Projektobjekte erstellen/aktualisieren
Speicherort: Die Datenbank und das Schema, in denen das Aufgabenobjekt und das zugehörige Notebook-Projektobjekt erstellt werden. Wählen Sie ein Schema aus, in dem Ihre Rolle CREATE TASK, USAGE und relevante Berechtigungen hat.
Frequenz: Wie oft das Notebook ausgeführt werden soll. Wählen Sie aus: „Hourly“, „Daily“, „Weekly“, „Monthly“ oder „Custom“ (Cron-Zeitplanung). Alle Ausführungszeiten sind in Ihrer lokalen Zeitzone angegeben.
Erweiterte Einstellungen
Projektname: Ein eindeutiger Name für den Projektcontainer des Notebooks, den Snowflake für die Ausführung der Aufgabe erstellt. Wenn der Name nicht bearbeitet wird, stellt Snowflake einen Standardnamen bereit.
Parameter (optional): Schlüsselwertparameter, die zur Laufzeit an das Notebook übergeben werden und als Befehlszeilenargumente erscheinen (in
sys.argv). Parameter sind nützlich, um Datumsangaben, Umgebungsflags, Schwellenwerte oder Modellversionen zu übergeben.
Laufzeitvariante
CPU: Verwendet eine CPU-Container-Laufzeitumgebung und wird auf einem CPU-Computepool ausgeführt (z. B. der automatisch bereitgestellte
SYSTEM_COMPUTE_POOL_CPU).GPU: Verwendet eine GPU-Container-Laufzeitumgebung, die GPU-beschleunigte Bibliotheken enthält, und wird auf einem GPU-Computepool ausgeführt (z. B.
SYSTEM_COMPUTE_POOL_GPU).Python-Version: Die Python-Version, die während der Ausführung der Aufgabe verwendet wird.
Laufzeitversion: Das Basis-Container-Laufzeit-Image. Die Wahl der richtigen Laufzeitversion stellt sicher, dass Ihr Notebook zwischen der Entwicklung und der geplanten Ausführung konsistent ausgeführt wird.
Computepool: Der Computepool, der die Notebook-Aufgabe ausführt. Stellen Sie sicher, dass der Computepool zum Zeitpunkt der geplanten Ausführung über Kapazitäten (freie Knoten) verfügt. Um zu vermeiden, dass geplante Ausführungen fehlschlagen, empfehlen wir Ihnen, einen dedizierten Computepool zu verwenden, um sicherzustellen, dass keine weiteren SPCS-Services vorhanden sind, die die volle Kapazität belegen.
Abfrage-Warehouse: Das Snowflake-Warehouse, das für alle SQL-Abfragen innerhalb des Notebooks verwendet wird.
Integrationen für den externen Zugriff (optional): Definiert, welche Integrationen für den externen Zugriff (EAIs) von Snowflake, das Notebook verwenden darf. EAIs sind erforderlich, wenn Ihr Notebook externe APIs, Drittanbieterservices oder Cloudspeicher außerhalb der internen Stagingbereiche von Snowflake benötigt. Wenn keine EAIs aufgeführt sind, besitzt Ihre ausgewählte Rolle keine Integrationen oder keine Berechtigungen.
Überprüfen Sie die Vorschau des Zeitplans, und wählen Sie dann Create aus.
Wenn eine Aufgabe fehlschlägt, weil der Benutzende nicht über die erforderlichen Berechtigungen verfügt, bleibt das Dialogfeld geöffnet und zeigt die entsprechenden Fehlermeldungen an.
Geplante Notebook-Ausführungen anzeigen¶
Sie können geplante Aufgaben an zwei Stellen anzeigen:
Vom Notebook aus
Wählen Sie im Navigationsmenü die Option Projects » Notebooks aus.
Öffnen Sie ein geplantes Notebook.
Wählen Sie oben rechts im Notebook-Editor Schedule aus. In einem Popover werden die folgenden Informationen angezeigt:
Alle geplanten Ausführungen für dieses Notebook. 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.
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: Öffnet das Projektobjekt des Notebooks und zeigt alle vergangenen Ausführungen an, einschließlich Status, Dauer und Ergebnisse. Wenn Sie das Ergebnis einer Ausführung auswählen, wird das ausgeführte Notebook mit seiner Ausgabe geöffnet.
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.
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 ein Notebook Änderungen aufweist, die eine Bereitstellung erfordern, wird unter dem Zeitplansymbol (Kalender) ein Uhr-Indikator angezeigt.
Nach dem Ändern von Code oder Zellen zeigt das Symbol an, dass es Änderungen gibt, die nicht bereitgestellt wurden.
Wählen Sie Deployed 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 im Object Explorer suchen¶
Jedes geplante Notebook erstellt automatisch ein Notebook-Projektobjekt, das den bereitgestellten Code, den Ausführungsverlauf und die Artefakte speichert.
Um ein Notebook-Projektobjekt in Snowsight zu finden, führen Sie die folgenden Schritte aus:
Wählen Sie im Navigationsmenü die Option Catalog » Database Explorer aus.
Navigate to Database » Schema » Notebook Project Objects to view all project objects in that schema.
Alternativ können Sie auch Folgendes tun:
Öffnen Sie das entsprechende Notebook.
Wählen Sie in der oberen rechten Ecke Schedule aus.
Wählen Sie im Dropdown-Menü Run history aus, um das zugehörige Notebook-Projektobjekt zu öffnen.
Den Ausführungsverlauf des Notebooks anzeigen¶
Wenn ein Schritt während der Ausführung fehlschlägt, bricht das Notebook die Ausführung ab, um teilweise oder inkonsistente nachgelagerte Ergebnisse zu vermeiden.
Um den Ausführungsverlauf anzuzeigen, gehen Sie wie folgt vor:
Wählen Sie im Navigationsmenü die Option Projects » Notebooks aus.
Öffnen Sie das Notebook, dessen Ausführungsverlauf Sie überprüfen möchten.
Wählen Sie in der rechten oberen Ecke des Notebook-Editors das Zeitplansymbol (Kalender) aus.
Wählen Sie im Dropdown-Menü die Option View run history aus.
Run History zeigt Start- und Endzeiten, den Ausführungsstatus und Fehlerdetails wie Protokolle und Metriken für das Projektobjekt des Notebooks an.
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:
CREATE OR REPLACE TASK <database_name>.<schema_name>.<task_name> WAREHOUSE = <warehouse_name> 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 Snowflake project. EXECUTE NOTEBOOK PROJECT = '<database_name>.<schema_name>.<project_name>' -- Notebook file to run MAIN_FILE = '<notebook_file_name>.ipynb' -- Compute pool used to run the notebook COMPUTE_POOL = '<compute_pool_name>' -- Runtime environment (Python version, CPU/GPU, etc.) RUNTIME = '<runtime_version>' -- Warehouse used for SQL statements inside the notebook QUERY_WAREHOUSE = <query_warehouse_name>;
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;
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.