Aperçu des Snowflake Data Clean Rooms¶
This page provides an overview of how Snowflake Data Clean Rooms works. If you are a Snowflake administrator and want to install clean rooms in your account, read Installation de l’environnement Snowflake Data Clean Rooms.
Aperçu des Snowflake Data Clean Rooms¶
Les Data Clean Rooms sont des environnements Snowflake isolés et configurables dans lesquels les collaborateurs peuvent importer des données, spécifier les requêtes qui peuvent être exécutées sur ces données et configurer les paramètres de protection des données tels que la confidentialité différentielle et la spécification des lignes joignables et projetables. L’accès à une clean room se fait uniquement sur invitation.
Clean rooms ne prend pas en charge les fonctions de monétisation. Les fournisseurs sont facturés pour les divers processus d’arrière-plan requis pour activer les clean rooms ; le compte qui exécute une requête se voit facturer les coûts standard de Snowflake pour l’utilisation des données et de l’informatique. Pour plus d’informations sur les coûts, voir Comprendre les coûts.
Vous devez être invité par un fournisseur de clean room pour pouvoir accéder à une clean room. Si vous souhaitez ouvrir votre clean room à un public plus large, vous devez prévoir un moyen pour les collaborateurs potentiels de vous contacter en fournissant leur compte Snowflake pour que vous puissiez les inviter (ou une adresse électronique pour les utilisateurs non-Snowflake).
Voici un aperçu du fonctionnement des Snowflake Data Clean Rooms :
Installation dans un environnement de clean room¶
The Snowflake Data Clean Room environment is installed once for an entire Snowflake account (not once per user or per clean room) by someone with ACCOUNTADMIN privileges on the Snowflake account.
L’administrateur configure l’environnement pour spécifier quels utilisateurs du compte peuvent créer des clean rooms et exécuter des requêtes, quels utilisateurs ont un accès à l’API, quels comptes peuvent être invités à collaborer dans une clean room, quelles données un créateur de clean room peut importer dans la clean room, et quels services tiers (le cas échéant) peuvent être utilisés pour exporter les résultats des requêtes à partir d’une clean room créée dans ce compte.
Si un environnement de clean room a déjà été installé pour votre compte, adressez-vous à votre administrateur de clean rooms pour y avoir accès. Si un environnement de clean room n’a pas été installé pour votre compte, apprenez comment installer l’environnement.
Après avoir installé et configuré l’environnement, l’administrateur accorde aux autres utilisateurs de Snowflake l’autorisation d’utiliser les UI de clean rooms, l’API, ou les deux.
En savoir plus
Apprenez à installer et configurer l’environnement de la clean room.
Par défaut, vous ne pouvez partager des clean rooms qu’avec des comptes situés dans la même région d’hébergement web. L’administrateur peut activer le partage avec des comptes d’autres régions.
Voir les autres tâches effectuées par les administrateurs de clean rooms.
Note
If you were emailed an invitation to join a clean room, you already have clean rooms installed in your Snowflake account. You can read the rest of this page to learn more about clean room usage, but you don’t need to install anything, only to join the clean room.
Si vous êtes un administrateur de compte et que l’environnement de clean room n’est pas installé dans votre compte Snowflake, apprenez à installer l’environnement de clean room pour votre compte Snowflake.
Si vous n’êtes pas administrateur de compte, demandez à un administrateur de compte si Snowflake Data Clean Rooms est installé pour votre compte. Si ce n’est pas le cas, demandez-leur de l’installer et de vous en accorder l’accès. Si c’est le cas, demandez-leur de vous accorder l’autorisation d’accès aux clean rooms.
Si vous êtes un développeur et que vous souhaitez avoir accès à l’API, demandez à un administrateur de clean rooms de vous accorder l’accès à l’API.
Créer une clean room¶
A Snowflake account administrator grants permission to users in their Snowflake account to be able to create clean rooms. The account that creates a clean room is called a provider for that clean room. Providers can configure and share clean rooms with users in other Snowflake accounts (or even non-Snowflake users). When a clean room is shared with you, you are called a consumer for that clean room.
After creating a clean room, the provider links (imports) tables or views into it, specifies what queries can be run against their data, which columns in their data can be joined or appear in the results, and what can be done with the results.
The provider then invites consumers to join the clean room, link their own tables and views, and run one of the queries specified by the provider. Consumers must be pre-approved by a clean rooms administrator before they can be invited to a clean room.
En savoir plus
Clean rooms peuvent être créées soit dans le code, soit en utilisant les UI de clean rooms. L’autorisation de créer une clean room est accordée différemment aux utilisateurs du site web <label-cleanrooms_get_started_add_users> et aux codeurs <label-cleanrooms_add_developers>.
Les tables peuvent être importées à partir de comptes Snowflake et de tables Iceberg non Snowflake sur AWS, Azure, et Google.
Avant de pouvoir être importées dans une clean room, les données doivent être enregistrées sur par un utilisateur disposant de privilèges d’administrateur sur les données sources.
Vous pouvez inviter à la fois des utilisateurs de Snowflake et des non-utilisateurs de Snowflake à rejoindre une clean room.
Pour en savoir plus sur le rôle du fournisseur dans les clean rooms.
Au cours du développement, vous pouvez utiliser le même compte pour les rôles de fournisseur et de consommateur, bien que ce soit avec seulement un sous-ensemble de fonctionnalités de salle blanche.
Rejoindre une clean room¶
Après avoir créé et configuré une clean room, le fournisseur envoie des invitations aux utilisateurs d’autres comptes pour qu’ils rejoignent la clean room. Ces utilisateurs invités sont appelés consommateurs, ou parfois collaborateurs. Les consommateurs invités par le biais de l’UI de clean room reçoivent une invitation par courrier électronique à rejoindre la clean room. Les utilisateurs de Snowflake doivent avoir l’environnement de la clean room installé pour être invités à rejoindre une clean room, mais vous pouvez inviter des utilisateurs non Snowflake à rejoindre une clean room. Un compte Snowflake doit être autorisé par un administrateur de clean rooms avant qu’un créateur de clean room puisse inviter des utilisateurs dans ce compte.
(Dans les UI clean rooms, les termes « rejoindre » et « installer » sont tous deux utilisés pour décrire le moment où un consommateur accepte l’invitation d’une clean room. En effet, une clean room doit littéralement être installée dans l’environnement de la clean room du consommateur)
Après avoir rejoint une clean room, un consommateur importe (lie) toutes les données nécessaires aux modèles de cette clean room, spécifie comment accéder à ces données, par exemple quelles colonnes peuvent être jointes ou projetées, fournit les filtres spécifiques au modèle ou d’autres paramètres, puis exécute le modèle. Les consommateurs peuvent spécifier une répétition du modèle, s’ils le souhaitent. Les résultats peuvent être vus dans le navigateur ou téléchargés. Si le fournisseur a activé l’activation et que le consommateur l’approuve, ce dernier peut exporter les résultats vers les emplacements approuvés (son propre compte Snowflake Connector ou un connecteur d’activation tiers désigné par le fournisseur).
Les données importées dans une salle blanche ne peuvent pas être interrogées ou vues directement par l’une ou l’autre des parties (soit le fournisseur ou le consommateur), elles ne sont accessibles qu’avec un modèle dans la salle blanche. Un modèle est une requête SQL installée dans la salle blanche par le fournisseur ou le consommateur, et l’autorisation doit être donnée par l’autre partie de l’utiliser dans la salle blanche.
Chaque partie définit également des règles d’accès à ses propres données, notamment en ce qui concerne les colonnes qui peuvent être jointes, projetées ou exportées, et les modèles qui peuvent être exécutés dans la clean room. Chaque partie peut à tout moment supprimer ses données de la clean room.
Par défaut, seul un consommateur peut exécuter des modèles dans une salle blanche, mais le fournisseur peut demander l’autorisation au consommateur d’exécuter un modèle spécifié dans la salle blanche.
En savoir plus
Clean rooms prend en charge la confidentialité différentielle. La confidentialité différentielle peut être activée et configurée par le fournisseur ou le consommateur.
Pour en savoir plus sur le rôle du consommateur dans Snowflake Data Clean Rooms.
Templates¶
Every clean room has one or more templates installed. A template is a JinjaSQL query that typically includes run-time parameters provided by the template runner. These parameters enable users to specify column or table names or WHERE clause filters. You cannot simply run arbitrary SQL queries in a clean room (unless a provider grants that ability); most clean room usage is limited to templates submitted by the provider or consumer and approved by the other party.
Snowflake provides a few stock templates for common use cases such as audience overlap and reach and frequency templates. You can also create custom templates to use in your clean room. Snowflake Data Clean Rooms supports any valid JinjaSQL template.
Les modèles peuvent être exécutés dans les UI de clean rooms ou dans le code. Les résultats du modèle peuvent être vus ou téléchargés, ou peuvent être partagés avec le fournisseur, le consommateur ou une tierce partie approuvée si l’activation est autorisée dans cette clean room.
En savoir plus
Par défaut, seuls les consommateurs peuvent exécuter un modèle dans une clean room. Toutefois, un fournisseur peut demander l’autorisation au consommateur d’exécuter un modèle dans une clean room.
Le modèle et la configuration de la clean room définissent ce qui peut être fait avec les résultats de la requête. Si les résultats de la requête sont exportés en dehors de la clean room, on parle d’activation. Les résultats peuvent être activés sur le compte Snowflake du fournisseur ou du consommateur, ou sur celui d’une tierce partie approuvée par Snowflake.
Variations Clean room¶
La clean room la plus courante, telle que décrite ci-dessus, est celle où un fournisseur importe des données et spécifie une ou plusieurs requêtes spécifiques qui peuvent être exécutées sur les données et comment les résultats peuvent être partagés, et où le consommateur importe ses propres données et exécute les requêtes autorisées sur les données combinées. Toutefois, un fournisseur peut autoriser plusieurs variantes de la clean room standard :
Permettre au fournisseur d’exécuter ses propres requêtes sur les données des consommateurs.. Par défaut, seul le consommateur peut exécuter des requêtes dans une clean room. Si cette option est activée pour une clean room, un fournisseur peut demander au consommateur l’autorisation d’exécuter une requête spécifique dans la clean room.
Autoriser l’exportation des résultats de la requête (activé) vers le compte Snowflake de la personne qui effectue la requête ou vers un compte tiers approuvé par Snowflake, tel que Meta Ads Manager ou The Trade Desk. L’exportation de données en dehors de la clean room est toujours soumise à l’approbation de toutes les parties qui ont partagé les données faisant l’objet de la requête.
Autoriser l’une ou l’autre des parties à inclure du code Python personnalisé qui peut être appelé par la requête qu’ils exécutent. Ce code filtre ou manipule généralement les données d’une manière ou d’une autre pendant l’exécution de la requête. Il ne peut pas effectuer d’actions externes telles que l’enregistrement d’un fichier, l’exportation de données ou l’exécution d’autres actions.
Permettre à la requête d’accéder à des données dans d’autres clean rooms, sous réserve de l’approbation des fournisseurs de toutes les clean rooms auxquelles on accède.
À propos des fournisseurs et des consommateurs¶
Clean room collaborators are classified as either a provider or a consumer for a given clean room. A provider is the account that creates a clean room; a consumer is an account that is shared a clean room. You cannot invite someone in the same account where you created a clean room to act as a consumer for that clean room. All users in the same Snowflake account have the same clean room role (provider or consumer) for the same clean rooms in that account.
The provider and consumer roles apply at the Snowflake account level, not the individual user level. That is, if
you create clean room cleanroom1 using Snowflake account ABC, then share cleanroom1 with account XYZ, all ABC users with access
to cleanroom1 are providers, and all XYZ users with access to cleanroom1 are consumers.
Le fait que vous soyez un fournisseur ou un consommateur est déterminé uniquement par le fait que vous avez créé ou que l’on vous a partagé une clean room, et non par les rôles de Snowflake ou d’autres autorisations.
Voici plus d’informations sur les rôles du fournisseur et du consommateur.
Astuce
Le terme collaborateur est parfois utilisé pour désigner un consommateur ou toute personne ayant accès à une clean room donnée.
Fournisseurs¶
Un fournisseur est défini comme le compte qui a créé une clean room. Toute personne accédant à la clean room à partir de ce compte est considérée comme un fournisseur de cette clean room.
Les fournisseurs effectuent les actions suivantes en clean room :
Créer, partager et supprimer des clean rooms
Préciser qui peut utiliser une clean room en tant que consommateur (invite les consommateurs)
Importer des données dans une clean room.
Définir les modèles qui peuvent être exécutés dans une clean room
Préciser si les consommateurs peuvent utiliser un modèle personnalisé dans une clean room
Inviter les consommateurs à partager la clean room
Indiquer les modèles utilisés dans une clean room et créer des modèles personnalisés pour la clean room
Exécuter des requêtes sur les données des consommateurs, si le consommateur y consent
Autoriser les modèles enchaînés
Charger un script Python dans une clean room pour l’utiliser dans un modèle
Permet d’interroger les données du fournisseur de cette clean room avec les données d’autres clean rooms spécifiées dans le cadre d’une requête du consommateur
Activer ou désactiver la confidentialité différentielle pour la clean room ou le consommateur
Gérer les versions de la clean room
Définir des politiques de colonnes et de jointures sur leurs propres données
Consommateurs¶
Un consommateur est défini comme un compte qui a reçu une invitation d’un fournisseur à rejoindre (installer) une clean room.
Les consommateurs effectuent les actions suivantes dans la clean room (selon la configuration de la clean room) :
Rejoindre (installer) une clean room pour son compte
Importer des données dans la clean room
Exécuter toutes les requêtes prises en charge par la clean room
Exporter les résultats de la requête comme le permet la clean room
Demander l’autorisation d’utiliser leur propre modèle dans une clean room
Indiquer si les fournisseurs peuvent exécuter un modèle dans la clean room (par défaut, seuls les consommateurs peuvent exécuter un modèle)
Permettre au fournisseur de la clean room d’effectuer des requêtes sur les données du consommateur
Exécuter une requête qui englobe leurs données et les données des fournisseurs de plusieurs clean rooms, si les fournisseurs de toutes les clean rooms concernées sont d’accord.
Charger un script Python dans la clean room (avec l’autorisation du fournisseur)
Définir des politiques de colonnes et de jointures sur leurs propres données
Définir les paramètres de confidentialité différentielle pour les requêtes gérées par le fournisseur
Ways to access Snowflake Data Clean Rooms¶
Snowflake Data Clean Rooms provide both a no-code browser-based application (the clean rooms UI) and an API to create and manage clean rooms. Currently the clean rooms UI and API are not exactly equivalent in capabilities. Here is a summary of the differences:
Fonctions UI uniquement |
Fonctions API uniquement |
|---|---|
|
|
Note that you can create a clean room using the clean rooms UI and then use or manage it in the API, and vice versa.
UI Clean rooms¶
Les données de clean rooms de Snowflake peuvent être gérées et exécutées dans un navigateur. Vous pouvez utiliser les UI de clean rooms pour créer, gérer et utiliser des clean rooms en tant que fournisseur ou consommateur, ou pour configurer diverses fonctions au niveau du compte, telles que les comptes gérés, les connecteurs tiers et les fonctions pour les utilisateurs de l’UI.
The clean rooms UI is accessed at a separate URL from Snowsight. You can find the login URL here.
Permissions and access: You must be granted access to use the clean room UI by a clean room administrator. The clean rooms UI uses your Snowflake credentials.
Try out the clean rooms UI tutorial or read more about the clean rooms UI.
API¶
Snowflake provides a number of stored procedures to create, manage, and run clean rooms. These procedures can be called through Snowsight notebooks or worksheets or any interface where you can run stored procedures in your Snowflake account. The API does not enable clean room account administration; to administer a clean room account you must use the clean rooms UI.
Permissions and access: In order to use the API you must be granted access to use the SAMOOHA_APP_ROLE by the a clean rooms administrator for your Snowflake account.
Plus d’infos sur l’API de clean room ou essayez le tutoriel API.
L’environnement des clean rooms est-il installé dans votre compte Snowflake ?¶
Voici comment savoir si les UI ou API de clean rooms sont installées dans votre compte :
Pour voir si Snowflake Data Clean Rooms est installé :
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Catalog » Apps » Installed Apps.
Look to see whether Snowflake Data Clean Rooms appears in your Installed Apps list.
Run
SHOW ROLES LIKE 'SAMOOHA_APP_ROLE';to see if the API is installed in your account. If the role appears, the clean rooms environment is probably installed.Exécutez
SELECT IS_ROLE_IN_SESSION('SAMOOHA_APP_ROLE');pour vérifier si vous avez accès à l’API.Run
SHOW GRANTS ON ROLE SAMOOHA_APP_ROLE;to see what roles can grant SAMOOHA_APP_ROLE, which is required to use the API.