Private Notebooks

Unter Snowsight können Sie ein privates, benutzereigenes Notebook erstellen. Dieses private Notebook wird in Ihrer persönlichen Datenbank gespeichert: ein spezieller Arbeitsbereich, in dem Sie Ihre privaten Notebooks erstellen, ändern und verwalten können. Anders als bei der rollenbasierten Eigentümerschaft sind Objekte in einer persönlichen Datenbank Eigentum eines einzelnen Benutzers. Sie können private Notebooks in einer persönlichen Datenbank anlegen, ohne darauf warten zu müssen, dass Ihnen jemand die entsprechenden Berechtigungen erteilt.

Bemerkung

Der Lebenszyklus einer persönlichen Datenbank ist direkt mit ihrem Eigentümer verbunden. Wenn ein Benutzer aus dem Snowflake-Konto entfernt wird, wird auch seine persönliche Datenbank gelöscht. Snowflake rät daher davon ab, persönliche Datenbanken für geschäftskritische oder produktive Workloads zu verwenden.

Ihre persönliche Datenbank wird nach Ihrem Benutzernamen in der Form USER$username benannt (zum Beispiel USER$JOHNDOE). Sie können ihn auch mit dem Präfix USER$ referenzieren. Sie können die Details zu Ihrer persönlichen Datenbank unter Data » Databases einsehen.

Mit einem privaten Notebook können Sie die folgenden Aufgaben erledigen:

  • Entwickeln Sie privat interaktiv Code, und experimentieren Sie mit Daten und Modellen.

  • Stellen Sie diese Projekte bereit, indem Sie Notebooks aus persönlichen Datenbanken in reguläre, nicht-persönliche Datenbanken duplizieren.

Bemerkung

Benutzer können keine Tabellen oder andere Objekte in einer persönlichen Datenbank erstellen. Eine vollständige Liste der Beschränkungen und Einschränkungen finden Sie unter Einschränkungen.

Voraussetzungen für die Verwendung privater Notebooks

Bevor Sie private Notebooks erstellen und verwenden können, muss ein Administrator mit der Rolle ACCOUNTADMIN die folgenden Aufgaben erledigen:

Wichtig

Nachdem der Administrator die persönlichen Datenbanken aktiviert hat, müssen sich die betroffenen Benutzer ab- und wieder anmelden, um die neue Verhaltensweise der Benutzer-Weboberfläche zu sehen.

Einzelheiten zum Erstellen eines privaten Notebooks finden Sie unter Neues Notebook erstellen.

Aktivieren aller sekundären Rollen für private Benutzer von Notebooks

Bevor Sie ein privates Notebook erstellen, müssen alle Sekundärrollen aktiviert sein. Das liegt daran, dass private Notebooks dem Benutzer gehören und nicht seiner Hauptrolle.

Um alle Sekundärrollen eines Benutzers standardmäßig zu aktivieren, kann der Benutzer oder ein Administrator den Befehl ALTER USER verwenden, um die Objekteigenschaft DEFAULT_SECONDARY_ROLES entweder zu deaktivieren oder für den Benutzer auf (‚ALL‘) zu setzen.

Beispiel:

ALTER USER my_user UNSET DEFAULT_SECONDARY_ROLES;
ALTER USER my_user SET DEFAULT_SECONDARY_ROLES = ('ALL');
Copy

Nachdem der Benutzer oder ein Administrator die obige Anweisung SQL ausgeführt hat, kann der Benutzer ein privates Notebook in Snowsight (Projekte » Notebooks) oder durch die Ausführung von SQL Befehlen in einem neuen Arbeitsblatt erstellen.

Ein Benutzer, der SQL-Befehle in einem bestehenden Arbeitsblatt ausführen möchte, muss die folgende SQL-Anweisung ausführen, bevor er ein privates Notebook erstellt:

USE SECONDARY ROLES ALL;
Copy

Private Notebooks für das Konto aktivieren und deaktivieren

Um private Notebooks für ein Snowflake-Konto zu aktivieren oder zu deaktivieren, verwenden Sie den Parameter ENABLE_PERSONAL_DATABASE.

Eigenschaften von ENABLE_PERSONAL_DATABASE:

Typ:

Benutzer – Kann für Konto > Benutzer festgelegt werden

Datentyp:

Boolesch

Beschreibung:

Steuert, ob Benutzer Zugriff auf private Notebooks haben.

Werte:

TRUE: Ermöglicht Benutzern den Zugriff auf ihre persönlichen Datenbanken.

FALSE: Verhindert, dass Benutzer auf ihre persönlichen Datenbanken zugreifen können.

Standard:

FALSE

Beispiele

Um private Notebooks für das Konto zu aktivieren, verwenden Sie den Befehl ALTER ACCOUNT, um den Parameter ENABLE_PERSONAL_DATABASE auf TRUE zu setzen. Beispiel:

ALTER ACCOUNT SET ENABLE_PERSONAL_DATABASE = TRUE;
Copy

Sie können kein anderes Konto ändern; Sie können nur das aktuelle Konto ändern. Weitere Informationen zu diesem Befehl finden Sie unter ALTER ACCOUNT.

Um private Notebooks für das Konto zu deaktivieren, führen Sie denselben Befehl aus, setzen aber den Parameter auf FALSE. Beispiel:

ALTER ACCOUNT SET ENABLE_PERSONAL_DATABASE = FALSE;
Copy

Um den aktuellen Wert des Parameters ENABLE_PERSONAL_DATABASE zu überprüfen, führen Sie den folgenden Befehl SHOW PARAMETERS aus:

SHOW PARAMETERS LIKE 'ENABLE_PERSONAL_DATABASE' IN ACCOUNT;
Copy

Nachdem der Administrator den Parameter für das Konto aktiviert hat, muss sich ein Benutzer ab- und wieder anmelden. Anschließend kann der Benutzer überprüfen, ob die persönliche Datenbank erstellt wurde, indem er den Befehl USE DATABASE ausführt:

USE DATABASE USER$;
Copy

Sie können den aktuellen Benutzer explizit benennen, indem Sie das Präfix USER$ gefolgt von dem Anmeldenamen angeben. Beispiel:

USE DATABASE USER$bobr;
Copy

Diese Befehle sind erfolgreich, wenn die persönliche Datenbank für den aktuellen Benutzer existiert. Der Befehl USE DATABASE gibt einen Fehler zurück, wenn die persönliche Datenbank nicht existiert (weil die vorausgesetzten Aufgaben nicht abgeschlossen wurden) oder wenn es sich nicht um die persönliche Datenbank des aktuellen Benutzers handelt. Wenn zum Beispiel jlap nicht der aktuelle Benutzer ist, erscheint die folgende Meldung:

USE DATABASE USER$jlap;
Copy
ERROR: Insufficient privileges to operate on database 'USER$JLAP'

Bemerkung

  • Persönliche Datenbanken haben keinen bestimmten Eigentümer; sie sind systemeigene Objekte.

  • Sie können selbst keine persönlichen Datenbanken erstellen. Sie werden im Lazy-Modus im Hintergrund für bestehende Benutzer erstellt, wenn das Konto für private Notebooks aktiviert ist. Wenn ein Benutzer zum ersten Mal einen Befehl mit expliziter USER$-Namensauflösung ausführt, wird die persönliche Datenbank erstellt. Wenn Sie z. B. den Befehl USE DATABASE USER$ ausführen, wird die persönliche Datenbank für den aktuellen Benutzer im Lazy-Modus erstellt.

Aktivieren und Deaktivieren privater Notebooks für einzelne Benutzer

Administratoren möchten vielleicht, dass bestimmte Benutzer des Kontos persönlichen Datenbankzugriff haben und nicht alle Benutzer des Kontos. Um den Zugriff für bestimmte Benutzer zu ermöglichen, verwenden Sie den Befehl ALTER USER, um den Parameter ENABLE_PERSONAL_DATABASE für diese Benutzer auf TRUE zu setzen. Aktivieren Sie zum Beispiel den Zugriff für drei Benutzer:

ALTER USER bobr SET ENABLE_PERSONAL_DATABASE = TRUE;
ALTER USER amya SET ENABLE_PERSONAL_DATABASE = TRUE;
ALTER USER jlap SET ENABLE_PERSONAL_DATABASE = TRUE;
Copy

Wenn Sie persönliche Datenbanken auf der Ebene des Kontos aktivieren, können Sie bei Bedarf persönliche Datenbanken für einzelne Benutzer deaktivieren. Um Benutzer zu deaktivieren, führen Sie denselben Befehl aus, setzen aber den Parameter auf FALSE. Beispiel:

ALTER USER jlap SET ENABLE_PERSONAL_DATABASE = FALSE;
Copy

Wenn der Benutzer jlap das Präfix USER$ in einem Befehl angibt, schlägt der Befehl fehl, weil die persönliche Datenbank nicht existiert.

NotebookSqlException: Failed to fetch a pandas Dataframe. The error is: 060109 (0A000): Personal Database is not enabled for user JLAP.
Please contact an account administrator to enable it and try again.

Bemerkung

Wenn Sie persönliche Datenbanken für einen bestimmten Benutzer aktivieren und dann deaktivieren, verliert der Benutzer den Zugriff auf die erstellte persönliche Datenbank, aber die Datenbank bleibt bestehen.

Ein privates Notebook erstellen

Um ein neues privates Notebook zu erstellen, gehen Sie folgendermaßen vor:

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü auf der linken Seite Projects » Notebooks aus.

  3. Wählen Sie + Notebook aus.

  4. Wählen Sie Ihren Benutzernamen aus der Liste Owner aus.

  5. Geben Sie einen Namen für Ihr Notebook ein.

    Bemerkung

    Wenn Sie eine AWS-Region verwenden, können Sie die Laufzeitumgebung für Ihr Notebook angeben: entweder Warehouse Runtime oder Container Runtime.

  6. Wählen Sie Notebook location aus. Dies sind die Datenbank und das Schema, in dem Sie Ihr Notebook speichern. Dieser Parameter kann nach dem Erstellen des Notebooks nicht mehr geändert werden. Wenn Sie ein privates Notebook erstellen, nachdem persönliche Datenbanken für Ihr Konto aktiviert wurden, wird Ihre persönliche Datenbank standardmäßig unter Notebook location vorausgefüllt. Wenn Sie jedoch ein privates Notebook erstellen und es nur ein Schema in Ihrer persönlichen Datenbank gibt, sind die Optionen von Notebook location nicht verfügbar.

    Bemerkung

    In der Dropdown-Liste Notebook location werden möglicherweise keine Datenbanken angezeigt, die erstellt wurden, nachdem Sie das Dialogfeld Create Notebook geöffnet haben. Wenn Sie Ihre kürzlich erstellte Datenbank, Ihr Schema oder Ihr Warehouse nicht finden können, versuchen Sie, Ihr Browserfenster neu zu laden.

    Die Abfrage von Daten im Notebook ist nicht auf diesen Speicherort beschränkt. Im Notebook können Sie Daten von jedem Speicherort abfragen, auf den Sie Zugriff haben. Um den Speicherort anzugeben, führen Sie USE WAREHOUSE und USE SCHEMA aus.

  7. Wählen Sie Run on warehouse oder Run on container als Ihre Python-Umgebung.

  8. Optional Wählen Sie ein Query warehouse, um alle vom Notebook ausgegebenen SQL- und Snowpark-Abfragen auszuführen.

  9. Wählen Sie ein Notebook warehouse, um notebook-spezifische Aufgaben auszuführen. Snowflake empfiehlt, dass Sie SYSTEM$STREAMLIT_NOTEBOOK_WH verwenden, ein von Snowflake verwaltetes Warehouse, das in jedem Konto für die Ausführung von Notebooks bereitgestellt wird.

  10. Wählen Sie Create aus, um Ihr Notebook zu erstellen und zu öffnen.

Organisieren Sie Ihre privaten Notebooks

Sie können Schemas erstellen und verwenden, um Ihre privaten Notebooks zu organisieren. Persönliche Datenbanken enthalten standardmäßig die Standardschemas PUBLIC und INFORMATION_SCHEMA.

Erstellen und verwenden Sie neue Schemas auf die übliche Weise, aber stellen Sie sicher, dass Sie Ihre persönliche Datenbank verwenden, wenn Sie Schemas erstellen. Beispiel:

USE DATABASE USER$bobr;
CREATE SCHEMA bobr_schema;
USE SCHEMA bobr_schema;
Copy

Sie können den Befehl ALTER SCHEMA auch für Schemas in persönlichen Datenbanken verwenden, und Sie können den Befehl SHOW SCHEMAS verwenden, um die Schemas anzuzeigen, die zu persönlichen Datenbanken gehören. Beispiel:

ALTER SCHEMA bobr_schema RENAME TO bobr_personal_schema;
SHOW TERSE SCHEMAS;
Copy
+-------------------------------+----------------------+------+---------------+-------------+
| created_on                    | name                 | kind | database_name | schema_name |
|-------------------------------+----------------------+------+---------------+-------------|
| 2024-10-28 19:33:18.437 -0700 | BOBR_PERSONAL_SCHEMA | NULL | USER$BOBR     | NULL        |
| 2024-10-29 14:11:33.267 -0700 | INFORMATION_SCHEMA   | NULL | USER$BOBR     | NULL        |
| 2024-10-28 12:47:21.502 -0700 | PUBLIC               | NULL | USER$BOBR     | NULL        |
+-------------------------------+----------------------+------+---------------+-------------+

Ein privates Notebook für den allgemeinen Gebrauch zur Verfügung stellen

An einem bestimmten Punkt der Entwicklung möchten Sie Ihr Notebook vielleicht außerhalb Ihrer persönlichen Datenbank neu erstellen. Um diese Änderung vorzunehmen, duplizieren Sie das ursprüngliche Notebook mit dem Befehl CREATE NOTEBOOK. Wenn Sie dies tun, wird das Notebook für andere Benutzer sichtbar.

Beispiel:

CREATE NOTEBOOK bobr_prod_notebook
  FROM 'snow://notebook/USER$BOBR.PUBLIC.bobr_private_notebook/versions/version$1/'
  QUERY_WAREHOUSE = 'PUBLIC_WH'
  MAIN_FILE = 'notebook_app.ipynb'
  COMMENT = 'Duplicated from personal database';
Copy
Notebook BOBR_PROD_NOTEBOOK successfully created.

Sie können ein privates Notebook auch aus einem Notebook erstellen, das in einer Produktionsdatenbank angelegt wurde.

Bemerkung

Sie können diese Aufgabe nicht über die Snowsight Weboberfläche erledigen. Sie müssen einen expliziten SQL-Befehl verwenden (z. B. in einer SQL-Zelle eines Notebooks oder in einem Arbeitsblatt).

FROM 'source_location'

Gibt an, dass das Notebook aus einer .ipynb-Datei im angegebenen Stagingbereich erstellt werden soll:

  • Um das Notebook aus einer Datei in einem Stagingbereich zu erstellen, legen Sie source_location für den Stagingbereich-Speicherort der Datei und den Parameter MAIN_FILE für den Namen der Datei fest.

  • Um das Notebook aus einem privaten Notebook zu erstellen (z. B. um ein privates Notebook für die gemeinsame Nutzung verfügbar zu machen), setzen Sie diesen Parameter auf:

    'snow://notebook/USER$username.schema.notebook/versions/version$1/'

    Wobei:

    • username ist Ihr Benutzername.

    • schema ist der Name des Schemas, das das private Notebook enthält.

    • notebook ist der Name des privaten Notebooks.

Wenn dieser Parameter nicht angegeben wird, wird das Notebook-Objekt aus einer Notebook-Vorlage erstellt.

Informationen über private Notebooks und persönliche Datenbanken anzeigen

Einzelne Benutzer können Snowsight verwenden, um Informationen über ihre Notebook einzusehen. Rufen Sie Projects » Notebooks auf. Der Eigentümer des Notebooks wird als Benutzer aufgeführt.

Informationen über Datenbanken, einschließlich persönlicher Datenbanken, finden Sie unter Data » Databases. Sie können leicht erkennen, welche Datenbanken persönliche Datenbanken sind, da sie das Präfix USER$ tragen.

Sichtbarkeit für Administratoren

Rollen mit der Berechtigung MANAGE GRANTS haben Einblick in alle Objekte innerhalb des Kontos, einschließlich persönlicher Objekte, die einzelnen Benutzern gehören. Rollen wie ACCOUNTADMIN können beispielsweise standardmäßig alle Datenbanken, einschließlich persönlicher Datenbanken, einsehen. Diese Rollen können auch auf Details zu Schemata und privaten Notebooks in persönlichen Datenbanken zugreifen.

Um Details für alle persönlichen Datenbanken innerhalb eines Kontos anzuzeigen, fragen Sie die DATABASES Ansicht Kontonutzung ab:

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.DATABASES;
Copy

Administratoren können DESCRIBE NOTEBOOK verwenden, um die Eigenschaften eines bestimmten privaten Notebooks anzuzeigen:

DESCRIBE NOTEBOOK USER$.PUBLIC.bobr_private_notebook;
Copy

Auf der Seite Projects » Notebooks in Snowsight können Administratoren keine privaten Notebook-Objekte sehen, die anderen Benutzern in der Liste Notebooks gehören.

So zeigen Sie die persönliche Datenbank des aktuellen Benutzers an:

SHOW DATABASES LIKE 'USER$BOBR';
Copy

Für persönliche Datenbanken lautet der Wert in der kind-Spalte PERSONAL DATABASE.

Einschränkungen

Einschränkungen für private Notebooks

  • Private Notebooks können nicht geplant werden.

Beschränkungen der persönlichen Datenbank

  • Benutzer können private Notebooks und Schemas nur innerhalb einer persönlichen Datenbank erstellen. Zum Beispiel können Tabellen nicht erstellt und geladen werden.

  • Benutzer können ihre persönliche Datenbank nicht ändern, klonen oder replizieren.

  • Benutzer können keine Schemas zwischen persönlichen und nicht-persönlichen Datenbanken verschieben.

  • Persönliche Datenbanken können nicht mit Rollen geteilt werden.

  • Administratoren können einer Replikationsgruppe keine persönliche Datenbank zum Zweck der Replikation hinzufügen.

  • Benutzer können Objekte in persönlichen Datenbanken nicht gemeinsam nutzen.

  • Benutzer können keine persönliche Datenbank zu nativen Apps (App-Paketen) hinzufügen.

  • Benutzer und Administratoren können das Schema USER$.PUBLIC nicht löschen und/oder umbenennen.

Beschränkungen bei der Zusammenarbeit

  • Administratoren können keine Datenbankrollen erstellen.

  • Benutzer und Administratoren können keine CREATE <Objekt>-Berechtigungen für ihre Schemas an andere vergeben.

  • Benutzer können für ihre Objekte keine Berechtigungen für Freigaben oder Anwendungspakete erteilen.

  • Benutzer können die Berechtigung REFERENCE_USAGE ihrer persönlichen Datenbank nicht für Freigaben oder Pakete vergeben.

  • Benutzer können keine persönliche Datenbank zu einer Freigabe hinzufügen (zum Zwecke der gemeinsamen Nutzung über Konten hinweg).