Snowflake Notebooks einrichten¶
Snowflake Notebooks sind First-Class-Objekte, die in einem Schema unter einer Datenbank gespeichert sind. Sie können auf zwei Compute-Architekturen laufen: Warehouses und Container. In diesem Thema erfahren Sie, wie Sie Ihr Konto als Administrator einrichten und Snowflake Notebooks nutzen können.
Administrator-Einrichtung¶
Um Ihre Organisation mit Snowflake Notebooks einzurichten, führen Sie die folgenden Schritte aus:
Überprüfen Sie die Anforderungen für Konten und Bereitstellung.
Akzeptieren Sie Anaconda-Bedingungen für den Import von Bibliotheken.
Erstellen Sie Ressourcen. und erteilen Sie Berechtigungen zum Erstellen von Notebooks.
Überprüfen Sie die Anforderungen für Konten und Bereitstellung¶
Stellen Sie sicher, dass *.snowflake.app
und *.snowflake.com
in Ihrem Netzwerk auf der Zulassungsliste stehen (einschließlich Inhaltsfiltersystemen) und eine Verbindung zu Snowflake herstellen können. Wenn diese Domänen auf der Zulassungsliste stehen, können Ihre Anwendungen ohne Einschränkungen mit Snowflake-Servern kommunizieren. In manchen Fällen reicht das Hinzufügen dieser Domänen jedoch nicht aus, da die Netzwerkrichtlinien Unterpfade darunter blockieren. Wenden Sie sich in diesem Fall an Ihren Netzwerk-Administrator.
Um Probleme bei der Verbindung mit dem Snowflake Backend zu vermeiden, stellen Sie außerdem sicher, dass WebSockets in Ihrer Netzwerkkonfiguration nicht blockiert werden.
Anaconda-Bedingungen für den Import von Bibliotheken akzeptieren¶
Bevor Sie die von Anaconda in Snowflake bereitgestellten Pakete verwenden können, müssen Sie die Bedingungen für externe Angebote anerkennen.
Bemerkung
Sie müssen die ORGADMIN-Rolle verwenden, um die Bedingungen zu akzeptieren. Sie müssen die Bedingungen für externe Angebote nur einmal für Ihr Snowflake-Konto akzeptieren. Wenn Sie nicht über die ORGADMIN-Rolle verfügen, siehe Aktivieren der ORGADMIN-Rolle für ein Konto.
Melden Sie sich bei Snowsight an.
Wählen Sie Admin » Terms aus.
Wählen Sie im Abschnitt Anaconda die Option Enable aus.
Klicken Sie im Anaconda Packages-Dialog auf den Link, um die Bedingungen für externe Angebote zu prüfen.
Um den Bedingungen zuzustimmen, wählen Sie Acknowledge & Continue.
Wenn Sie beim Versuch, die Bedingungen für externe Angebote zu akzeptieren, auf eine Fehlermeldung stoßen, kann dies daran liegen, dass in Ihrem Benutzerprofil Informationen fehlen, wie z. B. ein Vorname, ein Nachname oder eine E-Mail-Adresse.
Ressourcen erstellen und Berechtigungen erteilen¶
Um ein Notebook zu erstellen, benötigt eine Rolle Berechtigungen für die folgenden Ressourcen:
CREATE NOTEBOOK-Berechtigung für einen Speicherort
USAGE-Berechtigung für Computeressourcen
(Optional) USAGE-Berechtigung für externe Zugriffsintegrationen (EAIs)
Unter Vorlage für die Einrichtung von Notebooks finden Sie Beispielskripte zum Erstellen und Erteilen von Berechtigungen für diese Ressourcen.
Location¶
Der Speicherort ist der Ort, an dem ein Notebookobjekt gespeichert wird. Der Benutzer kann jede Datenbank und jedes Schema abfragen, auf die seine Rolle Zugriff hat.
Um den Kontext auf eine andere Datenbank oder ein anderes Schema zu ändern, verwenden Sie die Befehle USE DATABASE oder USE SCHEMA in einer SQL-Zelle.
In der Container Runtime benötigt die Rolle, die das Notebook erstellt, auch die Berechtigung CREATE SERVICE für das Schema.
Berechtigung |
Objekt |
---|---|
USAGE |
Datenbank |
USAGE |
Schema |
CREATE NOTEBOOK |
Schema |
CREATE SERVICE |
Schema |
Rollen, die Eigentümer eines Schemas sind, haben automatisch die Berechtigung, Notebooks innerhalb dieses Schemas zu erstellen, denn Eigentümer können jede Art von Objekt erstellen, auch Notebooks.
Berechtigung |
Objekt |
---|---|
USAGE |
Datenbank |
OWNERSHIP |
Schema |
Computeressourcen¶
In der Warehouse Runtime werden sowohl die Notebook-Engine als auch die Python-Prozesse des im Notebook erstellten Codes auf dem Notebook Warehouse ausgeführt, aber SQL-Abfragen und Snowpark-Pushdown-Abfragen werden auf dem Query Warehouse ausgeführt. Die Eigentümerrolle des Notebooks erfordert die USAGE-Berechtigung für beide Warehouses.
Wenn ein Notebook auf Container Runtime läuft, benötigt die Rolle die Berechtigung USAGE auf einem Computepool statt auf dem Notebook Warehouse. Computepools sind CPU-basierte oder GPU-basierte virtuelle Maschinen, die von Snowflake verwaltet werden. Wenn Sie einen Computepool erstellen, setzen Sie den Parameter MAX_NODES auf einen Wert größer als eins, da für jedes Notebook ein vollständiger Knoten benötigt wird. Weitere Informationen dazu finden Sie unter Snowpark Container Services: Verwenden von Computepools.
Berechtigung |
Objekt |
---|---|
USAGE |
Notebook Warehouse oder Computepool |
USAGE |
Warehouse-Abfrage |
Externe Zugriffsintegrationen (optional)¶
Wenn Sie bestimmten Rollen den Zugriff auf ein externes Netzwerk erlauben, verwenden Sie die Rolle ACCOUNTADMIN, um die USAGE-Berechtigung für externe Zugriffsintegrationen (EAIs) einzurichten und zu gewähren. Erlauben Sie EAIs den Zugriff auf bestimmte externe Endpunkte, damit Ihre Teams Daten und Modelle herunterladen, API-Anfragen und -Antworten senden, sich bei anderen Diensten anmelden können usw. Bei Notebooks, die auf einer Container Runtime laufen, ermöglichen EAIs Ihren Teams auch die Installation von Paketen aus Repositories wie PyPi und Hugging Face.
Weitere Informationen zum Einrichten von EAI für Ihr Notebook finden Sie unter Einrichten des externen Zugriffs für Snowflake Notebooks.
Berechtigung |
Objekt |
---|---|
USAGE |
Integration für externen Zugriff |
Vorlage für die Einrichtung von Notebooks¶
Da es sich bei Notebooks um Objekte mit rollenbasierten Erstellungs- und Eigentumsberechtigungen handelt, können Sie den Zugriff auf das Notebook-Feature so konfigurieren, dass er den Anforderungen Ihres Unternehmens und Ihres Teams entspricht. Hier sind ein paar Beispiele:
Erlauben Sie allen, Notebooks an einem bestimmten Speicherort zu erstellen¶
Die folgenden Schritte beschreiben, wie Sie den Zugriff für die Erstellung von Notebooks an einem bestimmten Speicherort konfigurieren, indem Sie die Nutzung einer Datenbank und eines Schemas erlauben.
Ersetzen Sie <database> und <database.schema> durch die spezifische Datenbank und das Schema, in dem Sie Ihre Notebooks erstellen möchten:
----------------------------------
-- Location Setup --
----------------------------------
GRANT USAGE ON DATABASE <database> TO ROLE PUBLIC;
GRANT USAGE ON SCHEMA <database.schema> TO ROLE PUBLIC;
GRANT CREATE NOTEBOOK ON SCHEMA <database.schema> TO ROLE PUBLIC;
----------------------------------
-- Compute Resource Setup --
----------------------------------
GRANT USAGE ON WAREHOUSE <warehouse> TO ROLE PUBLIC;
-------------------------------------
-- Optional: External Access --
-------------------------------------
-- Example EAI
CREATE OR REPLACE NETWORK RULE allow_all_rule
MODE = 'EGRESS'
TYPE = 'HOST_PORT'
VALUE_LIST = ('0.0.0.0:443','0.0.0.0:80');
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION allow_all_integration
ALLOWED_NETWORK_RULES = (allow_all_rule)
ENABLED = true;
GRANT USAGE ON INTEGRATION allow_all_integration TO ROLE PUBLIC;
Erstellen Sie eine dedizierte Rolle¶
Wenn Sie möchten, dass nur bestimmte Benutzer Notebooks erstellen können (vorausgesetzt, sie haben noch keine OWN Schemata), können Sie eine spezielle Rolle zur Zugriffskontrolle erstellen. Beispiel:
CREATE ROLE notebooks_rl;
Gewähren Sie bestimmten Benutzern die ROLE notebook_rl. Verwenden Sie dann das obige Skript, um Ressourcen zu erstellen und dieser Rolle Berechtigungen zu erteilen (ersetzen Sie ROLE PUBLIC durch ROLE notebook_rl).
Notebook-Engine¶
Die Notebook-Engine („Kernel“) und die Python-Prozesse laufen auf dem Notebook Warehouse. Snowflake empfiehlt, dass Sie mit einem X-Small Warehouse beginnen, um den Credit-Verbrauch zu minimieren.
Während Sie das Notebook verwenden (z. B. Code bearbeiten, Zellen ausführen, neu anordnen oder löschen) oder wenn das Notebook innerhalb seiner Leerlauf-Timeout-Einstellung aktiv bleibt, wird eine EXECUTE NOTEBOOK-Abfrage kontinuierlich ausgeführt, um anzuzeigen, dass die Notebook-Engine aktiv ist und eine Notebook-Sitzung verwendet wird. Sie können den Status dieser Abfrage unter Query history überprüfen. Während EXECUTE NOTEBOOK läuft, wird auch das Notebook Warehouse ausgeführt. Wenn EXECUTE NOTEBOOK beendet ist und keine anderen Abfragen oder Aufträge auf dem Warehouse laufen, wird es gemäß seiner Auto-Suspend-Richtlinie heruntergefahren.
Um die EXECUTE NOTEBOOK-Abfrage zu beenden (die Notebook-Sitzung zu beenden), gehen Sie wie folgt vor:
Wählen Sie Active oder wählen Sie End session aus dem Dropdown-Menü Active.
Suchen Sie in Query history die entsprechende Abfrage EXECUTE NOTEBOOK, und wählen Sie Cancel query.
Lassen Sie das Notebook aufgrund von Inaktivität entsprechend der eingestellten Leerlaufzeit auslaufen. Wenn die Parameter STATEMENT_TIMEOUT_IN_SECONDS und STATEMENT_QUEUED_TIMEOUT_IN_SECONDS auf dem Notebook Warehouse auf einen kleinen Wert eingestellt sind, könnte das Notebook unabhängig von der Aktivität des Benutzers schnell herunterfahren oder nicht starten.
Abfragen¶
SQL- und Snowpark-Abfragen (z. B. session.sql) werden an das Abfrage-Warehouse weitergeleitet, das bei Bedarf verwendet wird. Wenn die SQL- und Snowpark-Abfragen beendet sind, wird das Abfrage-Warehouse angehalten, wenn keine anderen Aufträge außerhalb des Notebooks darauf laufen. Wählen Sie eine Warehouse-Größe, die Ihren Anforderungen an Abfrageleistung am besten entspricht. Vielleicht möchten Sie zum Beispiel große SQL-Abfragen durchführen oder rechenintensive Operationen mit Snowpark Python ausführen, die ein größeres Warehouse erfordern. Für Operationen, die einen hohen Speicherbedarf erfordern, sollten Sie ein Snowpark-optimiertes Warehouse verwenden.
Sie können das Abfrage-Warehouse in Notebook Settings ändern. Alternativ können Sie den folgenden Befehl in einer beliebigen SQL-Zelle des Notebooks ausführen, um das Abfrage-Warehouse für alle nachfolgenden Abfragen in der aktuellen Notebooksitzung zu ändern:
USE WAREHOUSE <warehouse_name>;

Leerlaufzeit und Wiederherstellung der Verbindung¶
Leerlaufzeit sammelt sich immer dann an, wenn keine Aktivität des Benutzers stattfindet, wie z. B. das Bearbeiten von Code, das Ausführen von Zellen, das Neuordnen oder Löschen von Zellen. Jedes Mal, wenn Sie die Aktivität wieder aufnehmen, wird die Leerlaufzeit zurückgesetzt. Sobald die Leerlaufzeit die Timeout-Einstellung erreicht, wird die Notebook-Sitzung automatisch beendet.
Standardmäßig werden Notebooks nach 60 Minuten (3.600 Sekunden) Inaktivität ausgesetzt. Sie können das Leerlauf-Timeout auf maximal 72 Stunden (259.200 Sekunden) einstellen. Um die Einstellung für das Leerlauf-Timeout zu aktualisieren, verwenden Sie entweder den Befehl CREATE NOTEBOOK oder ALTER NOTEBOOK, um den Wert der Eigenschaft IDLE_AUTO_SHUTDOWN_TIME_SECONDS zu setzen.
Melden Sie sich bei Snowsight an.
Wählen Sie Projects » Notebooks aus.
Wählen Sie das vertikale Ellipsenmenü
, um eine neue Zeit zu konfigurieren.
Wählen Sie Notebook settings aus.
Starten Sie die Sitzung manuell neu, damit die neue Leerlaufzeit wirksam wird.
Vor dem Leerlauf-Timeout bleibt Ihre Notebook-Sitzung aktiv, bis der Leerlauf-Timeout erreicht ist, auch wenn Sie die Seite aktualisieren, andere Bereiche von Snowsight, Ihren Computer herunterfahren oder in den Ruhezustand versetzen. Wenn Sie dasselbe Notebook erneut öffnen, verbinden Sie sich wieder mit derselben Sitzung, wobei alle Sitzungszustände und Variablen erhalten bleiben, sodass Sie nahtlos weiterarbeiten können. Beachten Sie jedoch, dass der Status Ihrer Streamlit-Widgets nicht beibehalten wird.
Jeder einzelne Benutzer, der mit demselben Notebook arbeitet, hat seine eigene unabhängige Sitzung. Sie beeinträchtigen sich nicht gegenseitig.
Empfehlungen zur Kostenoptimierung¶
Als Kontoadministrator sollten Sie die folgenden Empfehlungen berücksichtigen, um die Kosten für den Betrieb von Notebooks zu kontrollieren:
Bitten Sie Ihre Teams, dasselbe Warehouse (X-Small wird empfohlen) als spezielles „Notebook-Warehouse“ für die Ausführung der Notebook-Sitzungen zu verwenden, um die Parallelität zu erhöhen. Beachten Sie, dass dies zu langsameren Sitzungsstarts (in der Warteschlange des Warehouse) oder Out-of-Memory-Fehlern führen kann, wenn zu viele Notebooks gleichzeitig ausgeführt werden sollen.
Erlauben Sie Ihren Teams, ein Warehouse mit einem niedrigeren STATEMENT_TIMEOUT_IN_SECONDS-Wert zu verwenden, um Notebooks zu betreiben. Dieser Warehouse-Parameter steuert, wie lange Abfragen dauern können, einschließlich Notebook-Sitzungen. Wenn der Parameter beispielsweise auf 10 Minuten eingestellt ist, kann die Notebook-Sitzung maximal 10 Minuten lang laufen, unabhängig davon, ob der Benutzer während dieser Zeit in der Notebook-Sitzung aktiv ist.
Bitten Sie Ihre Teams, ihre Notebook-Sitzungen zu beenden, wenn sie nicht vorhaben, aktiv an der Sitzung mitzuarbeiten.
Bitten Sie Ihre Teams, die Leerlauf-Timeout-Einstellung zu minimieren (z. B. auf 15 Minuten), wenn die Sitzung nicht über einen längeren Zeitraum laufen muss.
Alternativ können Sie auch ein Support-Ticket erstellen, um einen Standardwert für die Leerlaufzeit festzulegen, der für Ihr gesamtes Konto gilt. Dieser Wert kann auf Notebook-Ebene vom Eigentümer des Notebooks noch überschrieben werden.
Notebook-Verwendung mit Hinzufügen von Daten beginnen¶
Bevor Sie mit Snowflake Notebooks beginnen, fügen Sie Daten zu Snowflake hinzu.
Sie können Daten auf verschiedene Weise zu Snowflake hinzufügen:
Fügen Sie über die Weboberfläche Daten aus einer CSV-Datei zu einer Tabelle hinzu. Siehe Laden von Daten über die Weboberfläche.
Fügen Sie Daten aus einem externen Cloudspeicher hinzu:
Um Daten von Amazon S3 zu laden, siehe Massenladen aus Amazon S3.
Um Daten von Google Cloud Storage zu laden, siehe Massenladen aus Google Cloud Storage.
Um Daten von Microsoft Azure zu laden, siehe Massenladen aus Microsoft Azure.
Fügen Sie Daten programmgesteuert durch Massenladen hinzu. Siehe Massenladen aus einem lokalen Dateisystem.
Sie können Daten auch auf andere Weise hinzufügen. Weitere Informationen dazu finden Sie unter Übersicht zum Laden von Daten.