Créer et utiliser des tables de sortie dans Databricks Clean Rooms
Cette page présente les tables de sortie, qui sont des tables temporaires en lecture seule générées par une exécution de Notebook et partagées avec le metastore Unity Catalog de l'exécuteur du Notebook. Cet article décrit comment utiliser un Notebook pour créer des tables de sortie et comment les exécuteurs peuvent lire ces tables de sortie dans leur metastore Unity Catalog.
Présentation des tables de sortie
Les tables de sortie vous permettent d'enregistrer temporairement le résultat des notebooks exécutés dans une salle blanche dans un catalogue de sortie de votre metastore Unity Catalog, où vous pouvez rendre les données disponibles aux membres de votre équipe qui n'ont pas la possibilité d'exécuter les notebooks eux-mêmes. Vous pouvez également utiliser les Lakeflow Jobs pour exécuter des notebooks et effectuer des tâches sur des tables de sortie. Combinées avec le type de tâche de notebook de salle blanche et la prise en charge des valeurs de tâche, les tables de sortie vous permettent de créer des workflows complexes qui dépendent des notebooks de salle blanche.
Les tables de sortie sont en lecture seule.
Seul le principal spécifique (utilisateur, groupe ou Service Principal) qui exécute le Notebook a un accès en lecture par default à la table de sortie. Il n'y a pas d'accès en écriture. Un administrateur de métastore peut accorder un accès en lecture à d'autres mandataires dans son compte Databricks, en utilisant les privilèges Unity Catalog.
Pour rendre la sortie disponible à tous les collaborateurs de la salle blanche, écrivez plutôt dans un schéma de sortie partagé. Voir Partager la sortie avec tous les collaborateurs.
Les tables de sortie sont stockées pendant 30 jours dans l'emplacement de stockage default de la salle blanche centrale et partagées avec le metastore de l'exécuteur en utilisant OpenSharing. Si vous souhaitez conserver une table de sortie pendant plus de 30 jours, vous devez la copier vers le stockage local.
Chaque exécution de notebook crée un nouveau schéma dans le catalogue de sortie. Les nouvelles exécutions ne peuvent pas ajouter à une table de sortie existante.
Les collaborateurs de Databricks sur les trois clouds (AWS, Azure et Google Cloud) peuvent partager des Notebooks qui créent des tables de sortie et lire les tables de sortie générées lors de l'exécution des Notebooks partagés.
Créer une table de sortie
Pour créer une table de sortie, utilisez les parameters cr_output_catalog et cr_output_schema dans l’espace de noms de la table en trois parties. Chaque exécution du Notebook produit un nouveau schéma.
Dans l'exemple suivant, la cellule de Notebook crée une table de sortie appelée overlapping_users dans le catalogue de sortie de l'exécuteur qui répertorie les utilisateurs dont l'adresse e-mail apparaît dans les tables collaborator.advertiser.profiles et creator.publisher.profiles.
CREATE TABLE identifier(:cr_output_catalog || '.' || :cr_output_schema || '.overlapping_users') AS
SELECT collab_profiles.*
FROM collaborator.advertiser.profiles AS collab_profiles
JOIN creator.publisher.profiles AS creator_profiles
ON collab_profiles.email = creator_profiles.email
Partager la sortie avec tous les collaborateurs
Aperçu
Cette fonctionnalité est en aperçu public.
By default, une table de sortie est accessible uniquement au collaborateur qui exécute le Notebook, et seulement une fois que l'exécution est terminée avec succès. Avec la sortie partagée, une exécution de notebook peut également écrire dans un schéma de sortie partagé que chaque collaborateur peut lire immédiatement, même avant la fin de l'exécution.
Une seule exécution de Notebook peut écrire dans les deux schémas :
- Utilisez
cr_output_schemapour écrire des tables que seul le runner peut lire. - Utilisez
cr_shared_output_schemapour écrire des tables que tous les collaborateurs peuvent lire.
Avant de commencer
-
Le créateur doit créer une nouvelle salle blanche avec Sortie Partagée activée. La sortie partagée est définie lors de la création de la salle blanche et ne peut pas être modifiée par la suite. La page de détails de la salle blanche affiche Sortie activée lorsque la sortie partagée est activée.
-
Créez le catalogue de sortie immédiatement après avoir créé la salle blanche. Voir Avant de commencer. Si vous créez le catalogue de sortie après une exécution, les collaborateurs pourraient ne pas avoir les autorisations nécessaires sur le schéma de sortie partagé. Le propriétaire de la salle blanche doit leur accorder les autorisations ensuite.
Écrire dans le schéma de sortie partagé
Dans un Notebook, utilisez le paramètre cr_shared_output_schema dans l'espace de noms de table à trois niveaux. L'exemple suivant écrit des résultats que tous les collaborateurs peuvent lire :
CREATE TABLE identifier(:cr_output_catalog || '.' || :cr_shared_output_schema || '.audience_overlap') AS
SELECT creator_profiles.segment_id, COUNT(DISTINCT collab_profiles.email) AS overlap_count
FROM collaborator.advertiser.profiles AS collab_profiles
JOIN creator.publisher.profiles AS creator_profiles
ON collab_profiles.email = creator_profiles.email
GROUP BY creator_profiles.segment_id
Les tables dans le schéma de sortie partagé sont disponibles pour tous les collaborateurs dès qu'elles sont créées, même avant la fin de l'exécution. Les tables que vous écrivez dans le cr_output_schema réservé au runner restent disponibles uniquement pour le runner, et seulement après que l'exécution se termine avec succès.
Pour les analyses JAR, Clean Rooms injecte automatiquement le schéma de sortie partagé en tant que paramètre --cr_shared_output_schema <value> que votre JAR peut référencer. Consultez Exécuter des charges de travail JAR dans des salles blanches Databricks.
Le schéma de sortie partagé est automatiquement supprimé après 30 jours.
Lire une table de sortie
Les tableaux de résultats apparaissent dans un catalogue partagé dans le metastore de l'exécuteur du Notebook. Dans le volet Catalogue de l'Explorateur de catalogues, ils apparaissent dans la liste des catalogues partagés .
La lecture d'une table de sortie est comme la lecture de toute autre table dans Unity Catalog. Vous devez avoir SELECT sur la table, USE CATALOG sur le catalogue de sortie partagé et USE SCHEMA sur le schéma généré automatiquement. L’utilisateur qui a exécuté le Notebook ayant créé la table dispose de ces autorisations default.
La suppression d'une salle blanche supprime toutes les tables de sortie et les données historiques du catalogue de sortie.
Avant de commencer
Cette section décrit les exigences en matière de cloud, de configuration et de compute pour la lecture des tables de sortie.
Exigence de catalogue de sortie partagé
Avant de pouvoir lire les tables de sortie, un utilisateur doit créer le catalogue qui les contient. Vous n'avez besoin de faire cela qu'une seule fois par salle blanche. Le propriétaire de la salle blanche est autorisé à lire et à gérer le catalogue de sortie par default.
Autorisations requises : EXECUTE CLEAN ROOM TASK
- Dans votre workspace Databricks, cliquez sur
Catalogue .
- Cliquez sur le bouton Salles blanches > .
- Sélectionnez la salle blanche dans la liste.
- Dans le volet de droite, sous Output , cliquez sur Créer un catalogue .
- Saisissez un nom de catalogue de sortie ou acceptez le default, qui est
<clean-room-name>_output.
Le catalogue de sortie apparaît dans la liste des catalogues partagés dans le volet Catalogue de votre explorateur de catalogues. Chaque salle blanche à laquelle vous participez peut avoir un catalogue de sortie partagé dans votre metastore.
Exigences en matière de compute
Les queries sur les tables de sortie nécessitent un compute serverless. Voir Se connecter au compute Serverless.
Autorisations requises pour lire une table de sortie
L'utilisateur qui a exécuté le Notebook ayant créé la table de sortie et le propriétaire de la salle blanche ont par default la permission de lire et de gérer la table de sortie. Tous les autres utilisateurs doivent disposer des autorisations suivantes :
SELECTsur la tableUSE CATALOGsur le catalogue de sortieUSE SCHEMAsur le schéma des résultats
Exécuter le Notebook
Pour générer des tables de sortie partagées dans votre catalogue de sortie, un utilisateur ayant accès à la salle blanche doit exécuter le Notebook. Consultez Exécuter des Notebooks dans des salles blanches. Chaque exécution de Notebook crée un nouveau schéma et une nouvelle table de sortie.
Vous pouvez utiliser Lakeflow Jobs pour exécuter des notebooks et effectuer des tâches sur des tables de sortie, ce qui permet des workflows complexes. Voir Utiliser Lakeflow Jobs pour exécuter des notebooks de salle blanche.
Trouver et afficher une table de sortie
L'utilisateur qui exécute le notebook qui crée la table de sortie peut trouver un link vers la table de sortie sur les pages d'historique des exécutions de notebook et de détails d'exécution dans l'interface utilisateur des Clean Rooms . Dans les deux cas, le Link se trouve dans le champ Output schema . Voir Surveiller les exécutions de notebook de salle blanche.
Historique des exécutions :

Détails de l'exécution :

Vous pouvez également trouver le catalogue de sortie dans la liste des catalogues **Partagés** dans le volet **Catalogue** de votre explorateur de catalogues.
Limitations
Outre les exigences répertoriées dans Présentation des tables de sortie et Avant de commencer, les tables de sortie présentent les limites suivantes :
- Les tables de sortie ne sont prises en charge que lorsque la salle blanche a été créée après le lancement de la fonctionnalité de table de sortie.
- Seules les tables sont prises en charge. Les volumes et les vues, par exemple, ne le sont pas.
- Le nombre de tables de sortie que chaque notebook peut prendre en charge est limité. Voir les limites des Ressources.