Contexte de session dans les Snowflake Notebooks¶
Le contexte de session d’un notebook est défini par le rôle, l’entrepôt, la base de données et le schéma sous lesquels le notebook s’exécute. Lorsque vous créez un notebook, vous définissez un rôle, un entrepôt, une base de données et un schéma à utiliser pour le notebook. Lorsque vous exécutez le notebook, il s’exécute en tant que ce rôle, en utilisant l’entrepôt défini dans le notebook et dans le contexte de la base de données et du schéma qui contiennent le notebook.
Cette rubrique décrit comment accéder au contexte de session de votre notebook ou le modifier.
Accès au contexte de session d’un notebook¶
Vous pouvez accéder au contexte de la session en utilisant à la fois Python et SQL.
Si vous utilisez la bibliothèque Python Snowpark ou Snowflake Python APIs, utilisez la méthode get_active_session() pour obtenir le contexte de la session active.
from snowflake.snowpark.context import get_active_session
session = get_active_session()
Pour SQL, vous pouvez utiliser les fonctions SQL Fonctions contextuelles.
SELECT CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA();
Modifier le contexte de la session pour un notebook¶
Vous pouvez modifier le contexte de session du notebook pour utiliser un rôle, une base de données et un schéma et/ou un entrepôt différents :
Spécifiez un rôle différent à utiliser avec la commande SQL USE ROLE.
Vous pouvez vérifier le rôle utilisé par le notebook en appelant la fonction CURRENT_ROLE.
Si vous changez de rôle et que vous n’avez pas les privilèges nécessaires pour utiliser l’entrepôt, la base de données ou le schéma du notebook, les requêtes qui nécessitent un entrepôt ou un accès à la base de données ou au schéma du notebook ne s’exécutent pas. Toutefois, vous pouvez toujours exécuter des requêtes qui n’utilisent pas l’entrepôt de notebooks, la base de données et le schéma.
Les rôles spécifiés à l’aide de la commande SQL USE ROLE ne sont pas conservés au cours des sessions du notebook.
Si vous spécifiez une base de données ou un schéma auquel le rôle actif n’a pas les privilèges d’accès, les requêtes utilisant cette base de données et ce schéma ne s’exécutent pas.
Si vous exécutez la commande SQL USE SECONDARY ROLES pour définir les rôles secondaires sur ALL, les rôles secondaires associés à votre utilisateur sont utilisés pour générer les résultats des cellules du notebook.
Spécifiez un autre entrepôt à l’aide de la commande SQL USE WAREHOUSE.
Vous pouvez vérifier l’entrepôt utilisé pour le notebook en appelant la fonction CURRENT_WAREHOUSE.
Spécifiez une base de données ou un schéma différent à l’aide des commandes SQL USE DATABASE ou USE SCHEMA.
Vous pouvez vérifier la base de données utilisée pour le notebook en appelant la fonction CURRENT_DATABASE.
Si vous faites référence à des objets de la base de données du notebook ou de la base de données spécifiée dans une cellule antérieure du notebook, vous pouvez simplifier vos instructions SQL pour n’inclure que le schéma et l’objet que vous souhaitez référencer, au lieu du chemin d’accès complet à l’objet.
Étape suivante¶
Apprenez à enregistrer et à partager vos résultats à l’aide de notebooks.