Aller au contenu principal

Que sont les sessions SQL Warehouse ?

Les sessions SQL Warehouse vous permettent de définir des variables, de créer des vues temporaires et de maintenir les changements d'état sur plusieurs exécutions de query. Avec les sessions, vous pouvez construire une logique SQL de manière itérative sans avoir besoin d'exécuter toutes les déclarations en une seule fois.

Vous pouvez utiliser des sessions dans les contextes suivants lorsque vous êtes connecté à un SQL Warehouse :

Exemple de cas d'usage

Les sessions vous permettent d'exécuter des instructions individuellement tout en maintenant un état partagé. Par exemple, vous pouvez déclarer une variable, créer une vue temporaire qui utilise cette variable, puis interroger la vue séparément.

L'exemple suivant illustre ce workflow :

SQL
-- Statement 1: Declare a variable
DECLARE VARIABLE row_limit = 10;

-- Statement 2: Create a temporary view using the variable
CREATE OR REPLACE TEMPORARY VIEW filtered_data AS
SELECT
*
FROM
main.default.sales_data
LIMIT row_limit;

-- Statement 3: Query the temporary view
SELECT
*
FROM
filtered_data;

Avec les sessions, vous pouvez exécuter chaque instruction individuellement. La variable et la vue temporaire restent disponibles, ce qui vous permet d'itérer sur vos requêtes sans réexécuter toutes les instructions précédentes.

Fonctionnement des sessions

Une session est créée lorsqu'un utilisateur exécute une query sur un SQL Warehouse. Les sessions restent actives tant qu’une commande s’exécute au moins une fois toutes les huit heures. Les sessions persistent même si le warehouse s'arrête ou redémarre.

Une session expire après huit heures d'inactivité.

État de session partagé

Toutes les commandes exécutées dans la même session partagent les éléments suivants :

  • Variables déclarées avec DECLARE VARIABLE
  • Vues temporaires créées avec CREATE TEMPORARY VIEW
  • Tables temporaires créées avec CREATE TEMPORARY TABLE. Voir Tables temporaires dans Databricks SQL et Databricks Runtime
  • Paramètres d'environnement tels que le catalogue et le schéma actuels
  • Balises de query définies avec SET QUERY_TAGS ou les paramètres de configuration de session. Voir les query tags

Portée de la session et collaboration

Les sessions sont liées à l'objet query (query, Notebook ou fichier) et au SQL Warehouse spécifique auquel il est rattaché. Tous les utilisateurs qui partagent l'accès à cet objet et à la connexion au warehouse partagent également la même session.

Par exemple :

  • L'utilisateur A définit une vue temporaire dans la query 1 lorsqu'il est connecté au Warehouse X.
  • L'utilisateur B peut exécuter une commande SQL dans la Query 1 sur le Warehouse X qui référence cette même vue temporaire.
  • Si la query 1 est rattachée à un autre warehouse, une nouvelle session est créée avec son propre état isolé.

Ce comportement collaboratif permet aux équipes de travailler ensemble sur le développement de queries partagées, mais il signifie également que les modifications apportées par un utilisateur affectent tous les autres utilisateurs partageant la même session.

Ressources supplémentaires