Sitzungskontext in Snowflake Notebooks¶
Der Sitzungskontext eines Notebooks wird durch die Rolle, das Warehouse, die Datenbank und das Schema definiert, unter denen das Notebook ausgeführt ist. Wenn Sie ein Notebook erstellen, legen Sie eine Rolle, ein Warehouse, eine Datenbank und ein Schema fest, die für das Notebook verwendet werden sollen. Wenn Sie das Notebook ausführen, wird es in dieser Rolle ausgeführt und verwendet das im Notebook definierte Warehouse im Kontext der Datenbank und des Schemas, die das Notebook enthalten.
Unter diesem Thema wird beschrieben, wie Sie den Sitzungskontext Ihres Notebooks aufrufen oder ändern können.
Zugriff auf den Sitzungskontext eines Notebooks¶
Sie können sowohl mit Python als auch mit SQL auf den Sitzungskontext zugreifen.
Wenn Sie die Snowpark Python-Bibliothek oder Snowflake Python APIs verwenden, benutzen Sie die Methode get_active_session(), um den aktiven Sitzungskontext zu ermitteln.
from snowflake.snowpark.context import get_active_session
session = get_active_session()
Für SQL können Sie die SQL-Kontextfunktionen verwenden.
SELECT CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA();
Ändern des Sitzungskontexts für ein Notebook¶
Sie können den Sitzungskontext des Notebooks ändern, um Rolle, Datenbank und Schema und/oder Warehouse zu ändern:
Geben Sie eine andere zu verwendende Rolle an, indem Sie den SQL-Befehl USE ROLE verwenden.
Sie können die vom Notebook verwendete Rolle überprüfen, indem Sie die Funktion CURRENT_ROLE aufrufen.
Wenn Sie Ihre Rolle in eine Rolle ändern, die keine Berechtigung zur Verwendung des Notebook-Warehouses, der Datenbank oder des Schemas hat, können Abfragen, die ein Warehouse oder den Zugriff auf die Notebook-Datenbank oder das Schema erfordern, nicht ausgeführt werden. Sie können jedoch auch Abfragen ausführen, die nicht das Warehouse, die Datenbank oder das Schema des Notebooks verwenden.
Rollen, die mit dem SQL-Befehl USE ROLE spezifiziert wurden, bleiben nicht über Notebook-Sitzungen hinweg erhalten.
Wenn Sie eine Datenbank oder ein Schema angeben, für die die derzeit aktive Rolle keine Berechtigung hat, werden Abfragen, die diese Datenbank und dieses Schema verwenden, nicht ausgeführt.
Wenn Sie den SQL-Befehl USE SECONDARY ROLES ausführen, um Sekundärrollen auf ALL zu setzen, werden die mit Ihrem Benutzer verbundenen Sekundärrollen verwendet, um die Ergebnisse der Notebook-Zellen zu generieren.
Geben Sie mit dem SQL-Befehl USE WAREHOUSE ein anderes Warehouse an.
Sie können das für das Notebook verwendete Warehouse überprüfen, indem Sie die Funktion CURRENT_WAREHOUSE aufrufen.
Geben Sie eine andere Datenbank oder ein anderes Schema mit den SQL-Befehlen USE DATABASE bzw. USE SCHEMA an.
Sie können die für das Notebook verwendete Datenbank überprüfen, indem Sie die Funktion CURRENT_DATABASE aufrufen.
Wenn Sie auf Objekte in der Notebook-Datenbank oder der in einer früheren Notebook-Zelle angegebenen Datenbank verweisen, können Sie Ihre SQL-Anweisungen vereinfachen, indem Sie nur das Schema und das Objekt angeben, auf das Sie verweisen möchten, anstelle den vollqualifizierten Pfad zu dem Objekt.
Nächster Schritt¶
Erfahren Sie mehr über Speichern und Freigeben Ihrer Ergebnisse mithilfe von Notebooks.