Créer, joindre, supprimer et désinstaller des clean room¶
Cette page explique comment créer une clean room de base, rejoindre une clean room à laquelle vous avez été invité, supprimer une clean room que vous avez créée ou supprimer une clean room que vous avez rejointe en tant que consommateur.
Créer une nouvelle clean room¶
Vous devez avoir les autorisations nécessaires dans un compte Snowflake pour pouvoir créer une clean room. Le créateur de la clean room est appelé le fournisseur.
La page Clean Rooms de l’application Web vous permet, en tant que fournisseur, de gérer le cycle de vie d’une salle blanche, y compris la création et le partage. Si vous n’avez pas accès à l’application web des clean room, adressez-vous à un administrateur des clean room pour votre compte Snowflake.
Pour créer et partager une clean room, procédez comme suit :
Connectez-vous à votre environnement de salle blanche dans l’application Web.
Dans la navigation de gauche, sélectionnez Clean Rooms.
Sélectionnez + Clean Room. Le processus de création comporte les étapes suivantes :
Utilisez l’étape Add Data pour nommer la salle blanche et sélectionner les tables partagées avec le consommateur. Le nom peut comporter 80 caractères au maximum, insensibles à la casse : a-z, 0-9, espaces et traits de soulignement.
Utilisez l’étape Specify Join Policies pour activer les fournisseurs d’identité activés par votre administrateur de compte clean rooms et sélectionnez les colonnes auxquelles le consommateur peut se joindre.
Utilisez l’étape Configure Analysis & Query pour définir les modèles disponibles dans la clean room, les paramètres de configuration spécifiques aux modèles et les fonctions supplémentaires telles que l’activation et les paramètres de confidentialité.
Utilisez l’étape Share Clean Room pour inviter les consommateurs à utiliser la salle blanche pour collaborer. Vous pouvez également utiliser l’option Enable Run Analysis & Query permettant de spécifier quels collaborateurs peuvent exécuter des analyses dans la salle blanche.
Pour une présentation complète de la création d’une nouvelle clean room dans l’UI de clean room, essayez le tutoriel d’application web clean room
Pour créer une nouvelle clean room dans le code, vous devez obtenir le rôle SAMOOHA_APP_ROLE dans votre compte.
USE WAREHOUSE app_wh;
USE ROLE samooha_app_role;
SET cleanroom_name = 'Developer Tutorial';
CALL samooha_by_snowflake_local_db.provider.cleanroom_init(
$cleanroom_name,
'INTERNAL'); -- Use EXTERNAL to share outside your Snowflake org
Après avoir créé votre clean room, vous devez, au minimum, effectuer les étapes suivantes pour configurer une clean room de base :
Importer les données dans la clean room.
Fixer des politiques d’adhésion à vos données.
Spécifier un ou plusieurs modèles dans la clean room.
Paramétrer les politiques de colonne sur vos données pour chaque modèle.
Ensemble de directives de version par défaut.
Indiquer les consommateurs avec lesquels vous souhaitez partager la clean room.
Publier la clean room.
Pour une présentation complète de la création d’une nouvelle clean room dans le code, essayez le tutoriel sur le code des clean room
Note
Il y a une limite au nombre de (clean room + collaborateurs) que vous pouvez créer dans un seul compte. Si vous créez trop de clean room de test, vous devrez peut-être en supprimer quelques-unes pour en créer de nouvelles. Si vous avez besoin d’un nombre de clean rooms supérieur à la capacité de votre compte, contactez le support Snowflake.
Installer (rejoindre) une clean room¶
Si vous avez été invité à rejoindre une clean room, vous recevrez un message électronique contenant un lien pour installer, configurer et faire fonctionner la clean room dans l’UI de clean room. Vous pouvez suivre le lien et utiliser l’UI de clean room, ou installer et exécuter le code d’utilisation de la clean room.
La page Clean Rooms de l’application Web vous permet, en tant que consommateur, d’installer des salles blanches qui ont été partagées avec vous par un fournisseur. Pour installer une clean room, procédez comme suit :
Connectez-vous à votre environnement de salle blanche dans l’application Web.
Dans la navigation de gauche, sélectionnez Clean Rooms.
Dans l’onglet Invited, trouvez la salle blanche et sélectionnez Join. Vous devriez recevoir un lien direct vers cette page dans un e-mail d’invitation lorsque vous êtes ajouté en tant que collaborateur dans l’UI de clean room.
Sélectionnez les tables que vous souhaitez utiliser pour collaborer avec les données du fournisseur, puis sélectionnez Next.
Sélectionnez tous les fournisseurs d’identité disponibles dans votre environnement de clean room que vous devez utiliser dans cette clean room.
Indiquez les colonnes de votre table qui peuvent être jointes et les colonnes correspondantes des données du fournisseur.
Sélectionnez Next.
Fournissez des paramètres spécifiques aux modèles pour tous les modèles assignés à la clean room.
Cliquez sur Finish et exécutez un modèle immédiatement ou planifiez une exécution répétée de ce modèle.
Si vous avez été invité à rejoindre une clean room en tant que consommateur, vous pouvez installer, configurer et faire fonctionner la clean room en code.
Pour rejoindre une clean room en code, ouvrez le compte qui a été invité à ajouter la clean room, et exécutez le code suivant :
USE WAREHOUSE app_wh;
USE ROLE samooha_app_role;
SET cleanroom_name = 'Developer Tutorial'; -- Get the actual clean room name and provider's account locator from the provider.
CALL samooha_by_snowflake_local_db.consumer.
install_cleanroom($cleanroom_name, <PROVIDER_LOCATOR>);
Après l’installation de la clean room, vous devez prendre les mesures suivantes, au minimum, pour pouvoir exécuter des modèles dans cette clean room :
Créez des liens entre vos données.
Paramétrez les politiques de jointure et de colonne sur vos tables et pour les modèles que vous souhaitez exécuter.
Exécutez le modèle.
Pour une présentation complète de l’intégration d’une clean room dans le code, essayez le tutoriel sur le code des clean room
Note
Certaines clean room génèrent l’erreur suivante lorsque vous essayez de les rejoindre :
Application role `SAMOOHA_BY_SNOWFLAKE.DCR_DELEGATED_CLEANROOM_ROLE` does not exist
or not authorized.
Si vous rencontrez cette erreur, exécutez le code suivant et essayez à nouveau de rejoindre la clean room :
USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.PREPARE_MOUNT_SCRIPT();
EXECUTE IMMEDIATE FROM @SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.MOUNT_CODE_STAGE/dcr_loader.sql;
Supprimer une salle blanche que vous avez créée¶
Après sa suppression, une clean room ne sera plus visible par les utilisateurs partagés la prochaine fois qu’ils ouvriront l’application web de la clean room. Si une analyse est en cours lorsqu’une salle blanche est supprimée, il se peut qu’elle ne soit pas terminée avant la suppression de la salle blanche.
Pour utiliser l’UI de clean room afin de supprimer une clean room que vous avez créée, procédez comme suit :
Connectez-vous à votre environnement de salle blanche dans l’application Web.
Dans la navigation de gauche, sélectionnez Clean Rooms.
Dans la clean room à supprimer, sélectionnez Plus (
) > Delete.
Pour supprimer une salle blanche unique à l’aide de l’API, appelez provider.drop_cleanroom.
Pour établir la liste des salles blanches que vous avez créées, appelez provider.view_cleanrooms :
USE ROLE samooha_app_role; USE WAREHOUSE app_wh; -- List created and published clean rooms CALL samooha_by_snowflake_local_db.provider.view_cleanrooms(); SELECT CLEANROOM_ID AS "cleanroom_name" FROM TABLE(RESULT_SCAN(last_query_id())) WHERE STATE = 'CREATED' AND IS_PUBLISHED = TRUE; -- Specify a clean room name from the list and drop it CALL samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
Pour une présentation complète de la création, de la configuration, de l’utilisation et de la suppression d’une clean room dans le code, essayez le tutoriel sur le code des clean room
Désinstaller (quitter) une clean room¶
Vous pouvez désinstaller une salle blanche que vous avez installée (rejointe) en tant que consommateur. Cette opération désinstalle la salle blanche pour tous les utilisateurs du compte.
Connectez-vous à votre environnement de salle blanche dans l’application Web.
Dans la navigation de gauche, sélectionnez Clean Rooms.
Accédez à Clean Rooms » Joined
Dans la clean room à désinstaller, sélectionnez Plus (
) > Leave.
Pour dresser la liste de vos clean room installées (jointes)
Appelez samooha_by_snowflake_local_db.consumer.view_cleanrooms et filtrez les lignes vers IS_ALREADY_INSTALLED = TRUE
. Cela montre que les salles blanches sont installées plutôt que de simples invitations à les rejoindre.
USE ROLE samooha_app_role;
USE WAREHOUSE app_wh;
CALL samooha_by_snowflake_local_db.consumer.view_cleanrooms();
SELECT CLEANROOM_ID AS "cleanroom_name"
FROM TABLE(RESULT_SCAN(last_query_id()))
WHERE IS_ALREADY_INSTALLED = TRUE;
CALL samooha_by_snowflake_local_db.consumer.uninstall_cleanroom($cleanroom_name);
Désinstaller (quitter) une seule clean room :
USE ROLE samooha_app_role;
USE WAREHOUSE app_wh;
CALL samooha_by_snowflake_local_db.consumer.
uninstall_cleanroom($cleanroom_name).
Pour une présentation complète de la création, de la configuration, de l’utilisation et de la suppression d’une clean room dans le code, essayez le tutoriel sur le code des clean room
Ajout ou retrait de tables dans une clean room¶
Voici comment ajouter ou supprimer (lier ou délier) des tables dans une clean room :
Lorsque vous utilisez l’UI, seules les tables ou les vues enregistrées par un administrateur peuvent être liées à une clean room. Si une table ou une vue n’est pas disponible dans votre clean room, demandez à votre administrateur d’enregistrer l’objet dans votre compte.
En tant que fournisseur, vous choisissez les tables à lier à la clean room à l’étape Add Data lorsque vous créez ou modifiez une clean room.
En tant que consommateur, vous choisissez les tables à lier à la clean room à l’étape Add Data lorsque vous rejoignez ou modifiez une clean room.
Une fois qu’une table est ajoutée à une clean room, elle ne peut plus en être retirée. Vous pouvez toutefois supprimer les données de l’ensemble du compte. Si vous devez retirer une table ou une vue d’une clean room, adressez-vous à l’administrateur de la clean room.
Lors de l’utilisation de l’API de clean room, toute personne disposant des privilèges OWNERSHIP sur un objet de données peut l’enregistrer dans le compte. Une fois qu’un objet est enregistré, vous pouvez le lier à n’importe quelle clean room de ce compte. (Seul le compte qui a enregistré un objet peut le lier à une clean room)
Vous ne pouvez pas dissocier une table ou une vue après qu’elle a été liée à une clean room. Toutefois, vous pouvez annuler l’enregistrement de la table ou de la vue pour l’ensemble du compte, ce qui la rendra indisponible pour toutes les clean room de ce compte. Si vous désenregistrez une table, veillez à modifier toutes les politiques de ligne ou de colonne, ou les modèles, qui se réfèrent à cette table.
Apprenez à enregistrer ou à désenregistrer les objets de données afin de les rendre disponibles pour un lien dans une clean room.