Snowflake Data Clean Rooms : tables externes et Iceberg¶
Lorsque des tables externes et des tables Iceberg sont liées dans une salle blanche, il existe des appels externes qui peuvent permettre à un collaborateur d’extraire des informations sensibles de la salle blanche. De ce fait, le fournisseur et le consommateur doivent tous deux donner leur consentement avant que l’autre partie puisse utiliser ces objets dans la salle blanche.
Pour connaître les limitations lors de l’inclusion de tables externes et de tables Iceberg dans une salle blanche, voir Limitations.
Salles blanches d’applications Web¶
Pour contrôler l’inclusion de tables externes et de tables Iceberg dans les salles blanches créées et installées dans l’application Web, les administrateurs fournisseurs et consommateurs configurent leur environnement de salle blanche pour autoriser explicitement ces objets.
Pour les salles blanches partagées avec un consommateur par un fournisseur, le consommateur ne peut pas inclure de tables externes et de tables Iceberg, sauf si le fournisseur les autorise explicitement pour l’environnement de salle blanche du fournisseur.
Pour les consommateurs, les utilisateurs de salles blanches ne peuvent pas installer une salle blanche dotée de tables externes ou de tables Iceberg, à moins que l’environnement de la salle blanche ne le permette. Même si l’environnement de salle blanche du consommateur autorise ces objets, les utilisateurs de la salle blanche sont avertis lorsque ces types de tables ont été liées afin qu’ils puissent décider de ne pas installer la salle blanche.
Pour configurer un environnement de salle blanche pour autoriser les tables externes et les tables Iceberg :
Effectuez au choix :
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 avec le rôle ACCOUNTADMIN.
Basculez sur External & Iceberg Tables.
Salles blanches des API du développeur¶
Autoriser les tables externes et les tables Iceberg dans une salle blanche créée et installée à l’aide des APIs du développeur est un processus en deux étapes :
Tout d’abord, un utilisateur avec le rôle ACCOUNTADMIN permet ces types de tables pour l’ensemble de l’environnement de salle blanche.
Ensuite, les utilisateurs de la salle blanche autorisent ces objets pour des salles blanches spécifiques au fur et à mesure de leur création ou de leur installation.
Autoriser les tables externes et les tables Iceberg dans un environnement de salle blanche¶
L’administrateur de compte du fournisseur et du consommateur doit autoriser explicitement les tables externes et les tables Iceberg dans l’environnement de salle blanche avant que les utilisateurs individuels puissent les autoriser dans une salle blanche.
Pour autoriser les tables externes et les tables Iceberg dans un environnement de salle blanche, l’administrateur du compte exécute :
USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
Autoriser les tables externes et les tables Iceberg dans une salle blanche spécifique¶
Le fournisseur qui crée une salle blanche et le consommateur qui l’installe doivent autoriser la présence de tables externes et de tables Iceberg dans la salle blanche.
- Fournisseur:
Avant de pouvoir lier une table externe ou une table Iceberg dans une salle blanche, le fournisseur doit appeler la commande
providers.enable_external_tables_for_cleanroom
. Par exemple, si le fournisseur souhaite ajouter une table Iceberg à la salle blancheinsights_cleanroom
, il doit exécuter :CALL samooha_by_snowflake_local_db.provider.enable_external_tables_for_cleanroom( 'insights_cleanroom');
- Consommateur:
Une fois qu’un consommateur a installé une salle blanche, il peut approuver l’inclusion par le fournisseur de tables externes ou de tables Iceberg en exécutant la commande
consumers.enable_external_tables_for_cleanroom
. Par exemple, si le consommateur a installé une salle blancheoverlap_cleanroom
qui inclut une table Iceberg, ils doivent exécuter :CALL samooha_by_snowflake_local_db.consumer.enable_external_tables_for_cleanroom( 'overlap_cleanroom');
Enregistrer une table externe ou une table Iceberg¶
Comme pour les autres objets, les tables externes et les tables Iceberg doivent être enregistrées avant de pouvoir être liées. Utilisez le paramètre approprié de la commande library.register_table_or_view
pour indiquer le type de table.
- Table externe
Le quatrième paramètre de la commande
library.register_table_or_view
spécifie si un objet est une table externe. Par exemple, pour enregistrer une table externemy_ext_table
dans le schémasamooha_sample_database.demo
, exécutez :CALL samooha_by_snowflake_local_db.library.register_table_or_view( ['SAMOOHA_SAMPLE_DATABASE.DEMO.MY_EXT_TABLE'], false, false, true, false);
- Table Iceberg
Le troisième paramètre de la commande
library.register_table_or_view
spécifie si un objet est une table Iceberg. Par exemple, pour enregistrer la table Icebergcustomers
dans le schémasamooha_sample_database.demo
, exécutez :CALL samooha_by_snowflake_local_db.library.register_table_or_view( ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'], false, true, false, false);
Limitations¶
Étant donné que les comptes gérés utilisent toujours des tables externes, les fournisseurs doivent activer les tables externes et les tables Iceberg lorsqu’ils partagent une salle blanche avec un compte géré.
Les collaborateurs de différentes régions ne peuvent pas lier des tables externes et des tables Iceberg dans des salles blanches.
Vous ne pouvez pas exécuter une analyse avec le modèle de requête SQL si sa configuration applique une politique d’agrégation ou une politique de projection à la table externe ou à la table Iceberg.