Enregistrement des données

Cette rubrique décrit comment enregistrer des données afin qu’elles puissent être liées à un Snowflake Data Clean Room.

Objets pris en charge

Les types d’objets suivants peuvent être liés aux clean rooms :

Note

† Les tables externe et Iceberg doivent être activées avant de pouvoir être utilisées dans une clean room.

Enregistrement des objets de données

Avant que les utilisateurs puissent lier des données à un site Snowflake Data Clean Room, les données doivent d’abord être enregistrées. L’enregistrement des données accorde à USAGE et SELECT des privilèges sur l’objet à SAMOOHA_APP_ROLE, qui est utilisé par l’environnement de la clean room pour accéder aux données. Si vous enregistrez une base de données ou un schéma, tous les objets enfants sont également enregistrés. Vous devez disposer du privilège MANAGE GRANTS sur un objet pour pouvoir le lier.

You can register databases, schemas, and objects using the Clean rooms UI or the Clean rooms API. Using the Clean rooms UI is simpler, but requires that you have the ACCOUNTADMIN role. Using the developer APIs, you can register any object on which you have OWNERSHIP privilege without using the ACCOUNTADMIN role.

Important

Registering a database or schema does not register objects added after the registration. You must either register the new object individually or use the Clean rooms UI to navigate to Admin > Snowflake Admin > Database Registration and select Resync.

Vous ne pouvez lier que les données enregistrées par votre compte. En d’autres termes, un fournisseur ne peut pas établir de lien entre les données enregistrées par le consommateur et un consommateur ne peut pas établir de lien entre les données enregistrées par le fournisseur. Une fois que les données sont liées dans une clean room, toute personne ayant accès à la clean room peut y accéder, sous réserve des paramètres de la partie qui établit le lien (tels que les politiques de jointure et de colonne).

Follow the steps below to register a database, schema, or object using the Clean rooms UI:

  1. Sign in to the Clean rooms UI as an account administrator and then take one of the following steps:

    • Si vous utilisez un compte géré, sélectionnez Admin > My Account.

    • Si vous utilisez un compte Snowflake, sélectionnez Admin > Snowflake Admin et connectez-vous à Snowflake en tant qu’utilisateur ayant le rôle ACCOUNTADMIN.

  2. Sélectionnez Admin > Snowflake Admin.

  3. Sélectionnez Log in to Snowflake et authentifiez-vous en tant qu’utilisateur avec le rôle ACCOUNTADMIN.

  4. Pour activer les tables externes ou Iceberg dans le compte, activez la bascule External & Iceberg Tables.

  5. Dans la section Access management for Snowflake objects, sélectionnez Edit, puis sélectionnez la base de données, le schéma ou l’objet pour que ses données puissent être reliées par les utilisateurs de ce compte.

  6. Sélectionnez Save.

Enregistrement des tables ou des vues auxquelles sont appliquées des politiques Snowflake

Si vous souhaitez lier des données auxquelles une politique Snowflake est appliquée et que cette politique Snowflake est stockée dans une base de données différente de celle des données source, vous devez accorder l’utilisation de référence sur la base de données de la politique aux salles blanches. Vous pouvez le faire une fois par compte, ou une fois par salle blanche.

Accorder l’utilisation de référence une fois par compte

Pour autoriser l’utilisation de référence d’une base de données une fois par compte et pour qu’elle soit automatiquement accordée à chaque salle blanche, autorisez l’utilisation de référence à SAMOOHA_APP_ROLE en exécutant la commande SQL suivante. Remplacez l’espace réservé de la base de données par le nom de votre base de données.

GRANT REFERENCE_USAGE ON DATABASE <database_name>
  TO ROLE SAMOOHA_APP_ROLE
  WITH GRANT OPTION;
Copy

Autoriser l’utilisation de référence une fois par salle blanche

Si vous préférez accorder l’utilisation de référence d’une base de données par salle blanche plutôt qu’à toutes les salles blanches du compte, exécutez la commande SQL suivante. Remplacez les espaces réservés de nom de base de données et d’ID de salle blanche avec les valeurs appropriées :

GRANT REFERENCE_USAGE ON DATABASE <database_name>
  TO SHARE IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_<clean_room_ID>;
Copy

Désenregistrement des objets de données

Une fois qu’une table est liée à une clean room, elle ne peut plus en être retirée. Toutefois, vous pouvez désenregistrer l’objet dans le compte, ce qui en supprimera l’accès à toutes les clean room de ce compte.

Si vous souhaitez supprimer des données d’une salle blanche ou d’un compte, ne supprimez pas simplement l’objet sous-jacent ; cela entraînera l’échec de la clean room. Au lieu de cela, utilisez l’une des techniques suivantes pour désenregistrer l’objet.

Lorsque vous désenregistrez un objet d’un compte, vous devez également mettre à jour toutes les clean room que vous avez créées et qui utilisaient ces données.

Les requêtes des collaborateurs qui dépendent des données supprimées échoueront lors de leur prochaine exécution.

Pour désenregistrer un objet dans un compte :

  1. Sign in to the Clean rooms UI as an account administrator and then take one of the following steps:

    • Si vous utilisez un compte géré, sélectionnez Admin > My Account.

    • Si vous utilisez un compte Snowflake, sélectionnez Admin > Snowflake Admin et connectez-vous à Snowflake en tant qu’utilisateur ayant le rôle ACCOUNTADMIN.

  2. Sélectionnez Admin > Snowflake Admin.

  3. Sélectionnez Log in to Snowflake et authentifiez-vous en tant qu’utilisateur avec le rôle ACCOUNTADMIN.

  4. Pour activer les tables externes ou Iceberg dans le compte, activez la bascule External & Iceberg Tables.

  5. Dans la section Access management for Snowflake objects, sélectionnez Edit, puis désélectionnez la base de données, le schéma ou l’objet pour rendre ses données indisponibles pour les utilisateurs de ce compte.

  6. Sélectionnez Save.

  7. Mettez à jour toutes les clean rooms que vous avez créées et qui dépendent de ces données.

Activation des tables externes et Apache Iceberg™

Pour que des tables externes et des tables Iceberg puissent être liées à une clean room, le compte doit d’abord être configuré de manière à permettre l’utilisation de tables externes et de tables Iceberg. Une fois les tables externes et Iceberg activées, elles peuvent être enregistrées, liées et utilisées comme n’importe quelle autre table.

The process for enabling external and Iceberg tables varies, depending on whether you are managing the clean room using the Clean rooms UI or the Clean rooms API.

Exigences relatives à la table externe et à la table Iceberg

  • Le compte du fournisseur et celui du consommateur doivent activer les tables externes et les tables Iceberg pour permettre l’utilisation complète d’une clean room qui établit des liens avec des tables externes ou des tables Iceberg.

  • Les fournisseurs doivent toujours activer les tables externes et les tables Iceberg lorsqu’ils partagent une clean room avec un compte géré. En effet, les comptes gérés utilisent toujours des tables externes.

  • Si le fournisseur et le consommateur se trouvent dans des régions différentes, seul le consommateur peut lier des tables externes ou Iceberg à une clean room.

The Clean rooms UI controls external and Iceberg tables at the account level.

Avertissement

Si le compte du consommateur n’a pas activé cette fonction, les consommateurs ne pourront pas rejoindre de clean room ayant un lien avec des tables externes ou des tables Iceberg, ou ne pourront pas modifier (mais pourront toujours exécuter) des clean room déjà rejointes ayant un lien avec l’un ou l’autre type de table.

L’administrateur de DCR, tant pour le compte du fournisseur que pour celui du consommateur, doit prendre les mesures suivantes :

  1. Sign in to the Clean rooms UI as an account administrator and then take one of the following steps:

    • Si vous utilisez un compte géré, sélectionnez Admin > My Account.

    • Si vous utilisez un compte Snowflake, sélectionnez Admin > Snowflake Admin et connectez-vous à Snowflake en tant qu’utilisateur ayant le rôle ACCOUNTADMIN.

  2. Activer la bascule External & Iceberg Tables. Cela permet d’utiliser la fonction dans les clean room créées par UI et API.

  3. Les tables externes et Iceberg sont désormais sélectionnables dans le panneau Access management for Snowflake objects de l’administrateur, où elles peuvent être sélectionnées pour être mises à la disposition des clean room, au même titre que n’importe quel autre objet.