Snowflake Data Clean Rooms : guide de référence pour l’API fournisseurs¶
Ce guide décrit les APIs du développeur qui permettent à un fournisseur de créer, configurer et partager une salle blanche. Toutes les fonctions s’inscrivent dans le schéma suivant :
samooha_by_snowflake_local_db.provider
Configuration de l’environnement¶
Exécutez les commandes suivantes pour configurer l’environnement Snowflake avant d’utiliser les APIs du développeur pour travailler avec une Snowflake Data Clean Room. Si vous n’avez pas le rôle SAMOOHA_APP_ROLE, veuillez contacter votre administrateur de compte.
use role samooha_app_role;
use warehouse app_wh;
Crée un nom pour la salle blanche. Le nom de la salle blanche ne peut contenir que des caractères alphanumériques. Le nom de la salle blanche ne peut pas contenir de caractères spéciaux autres que des espaces et des traits de soulignement.
set cleanroom_name = 'Test Cleanroom 1'; -- This must only have alphanumeric characters.
Créer une salle blanche¶
Utilisez les commandes suivantes pour créer et supprimer une salle blanche :
provider.cleanroom_init¶
Description : crée une salle blanche dans votre compte. Vous pouvez donner à la salle blanche un nom qui ne contient que des caractères alphanumériques et des espaces. Vous devez également indiquer la distribution de la salle blanche pour préciser s’il s’agit d’une salle blanche de test que vous avez l’intention de partager uniquement au sein de votre organisation (INTERNAL) ou d’une salle blanche de production que vous avez l’intention de partager avec d’autres organisations (EXTERNAL).
Si aucune distribution n’est spécifiée, la valeur par défaut est INTERNAL.
Vous pouvez transformer une salle blanche INTERNAL en salle blanche EXTERNAL en utilisant :
alter application package samooha_cleanroom_<CLEANROOM_ID> SET DISTRIBUTION = EXTERNAL;
Note
La distribution peut être EXTERNAL ou INTERNAL. Si une salle blanche est marquée pour la distribution de EXTERNAL, Snowflake doit d’abord effectuer une analyse de sécurité automatisée avant de pouvoir être partagée avec les collaborateurs. Voir provider.set_default_release_directive pour plus de détails.
Entrée : cleanroom_name(chaîne), distribution(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
provider.set_default_release_directive¶
Description : définit une directive de version pour la salle blanche, c’est-à-dire la version et le correctif que les collaborateurs recevront.
Par défaut, toutes les salles blanches sont créées avec les numéros de version et de correctifs suivants :
version : V1_0
correctif : 0
Note
Si la distribution de la salle blanche est définie sur EXTERNAL, elle ne peut être appelée que lorsque l’analyse de sécurité de la salle blanche passe à l’état APPROVED. Pour voir le statut actuel de l’analyse, appelez :
show versions in application package samooha_cleanroom_<CLEANROOM_ID>;
Entrée : cleanroom_name(chaîne), version(chaîne), patch(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.set_default_release_directive($cleanroom_name, 'V1_0', '0');
provider.drop_cleanroom¶
Description : une salle blanche existante peut être supprimée par le créateur. Cela supprime entièrement la salle blanche, ce qui signifie que les consommateurs qui ont installé la salle blanche ne peuvent plus y accéder ou l’utiliser.
Entrée : cleanroom_name(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
Enregistrer et annuler l’enregistrement des données¶
Utilisez la commande suivante pour enregistrer et annuler l’enregistrement des bases de données, des schémas et des objets. Les tables et les vues doivent être enregistrées avant de pouvoir être liées à la salle blanche. Si vous enregistrez une base de données ou un schéma, tous les objets de cette base de données ou de ce schéma sont enregistrés.
provider.register_db¶
Description : s’exécute avec les droits des appelants et permet aux administrateurs de comptes d’enregistrer les bases de données pour qu’elles soient visibles par l’application Snowflake Data Clean Room. La possibilité d’accéder à SELECT est accordée à tous les schémas et tables de la base de données, ainsi qu’à l’application native Snowflake Data Clean Room (SAMOOHA_BY_SNOWFLAKE).
Entrée : db_name (chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.register_db('SAMOOHA_SAMPLE_DATABASE');
library.register_schema¶
Description : similaire à register_db
, mais opère au niveau d’un schéma. Une table ou une chaîne représentant le nom pleinement qualifié du schéma peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier les objets au schéma à la salle blanche.
Si vous souhaitez enregistrer un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.register_managed_access_schema
plutôt.
Entrée : schema_name (array)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.register_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.register_managed_access_schema¶
Description : similaire à register_schema
, mais enregistre un schéma qui a été créé avec le paramètre WITH MANAGED ACCESS. Une table ou une chaîne représentant le nom pleinement qualifié du schéma peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier les objets au schéma à la salle blanche.
Entrée : schema_name (array)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.register_table_or_view¶
Description : enregistre les tables et les vues de tous types.
Entrée : object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)
Sortie : message de réussite (string)
Exemples
Pour enregistrer une table :
call samooha_by_snowflake_local_db.library.register_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
false,
false,
false);
Pour enregistrer une table Iceberg :
call samooha_by_snowflake_local_db.library.register_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
true,
false,
false);
library.register_table¶
Description : similaire à register_db
, mais opère au niveau d’une table. Une table ou une chaîne représentant le nom pleinement qualifié de la table peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier la table à la salle blanche.
Si vous souhaitez enregistrer des tables dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.register_managed_access_table
plutôt.
Entrée : table_name (tableau)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.register_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_managed_access_table¶
Description : similaire à register_table
, mais enregistre les tables dans un schéma qui a été créé avec le paramètre WITH MANAGED ACCESS. Une table ou une chaîne représentant le nom pleinement qualifié de la table peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier la table à la salle blanche.
Entrée : table_name (tableau)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.register_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_view¶
Description : similaire à register_db
, mais opère au niveau d’un vue. Un tableau ou une chaîne représentant le nom pleinement qualifié de la vue peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier la vue à la salle blanche.
Si vous souhaitez enregistrer des vues dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.register_managed_access_view
plutôt.
Entrée : view_name (array)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.register_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_managed_access_view¶
Description : similaire à register_view
, mais enregistre les vues dans un schéma qui a été créé avec le paramètre WITH MANAGED ACCESS. Un tableau ou une chaîne représentant le nom pleinement qualifié de la vue peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier la vue à la salle blanche.
Entrée : view_name (array)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.register_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_db¶
Description : annule la procédure register_db
et supprime les autorisations au niveau de la base de données accordées au rôle SAMOOHA_APP_ROLE et à l’application native Snowflake Data Clean Room. Cette opération supprime également toute base de données de l’élément déroulant d’UI.
Entrée : db_name (chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
library.unregister_schema¶
Description : annule l’enregistrement d’un schéma, ce qui empêche les utilisateurs de lier leurs tables et vues à la salle blanche.
Si vous souhaitez annuler l’enregistrement d’un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.unregister_managed_access_schema
plutôt.
Entrée : schema_name (array)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.unregister_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.unregister_managed_access_schema¶
Description : similaire à unregister_schema
, mais annule l’enregistrement d’un schéma qui a été créé avec le paramètre WITH MANAGED ACCESS.
Entrée : schema_name (array)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.unregister_table_or_view¶
Description : annule l’enregistrement des tables et des vues de tous types.
Entrée : object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)
Sortie : message de réussite (string)
Exemples
Pour annuler l’enregistrement d’une table :
call samooha_by_snowflake_local_db.library.unregister_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
false,
false,
false);
library.unregister_table¶
Description : similaire à unregister_db
, mais opère au niveau d’une table. Un tableau ou une chaîne représentant le nom de table complet peut être transmis pour annuler l’enregistrement des tables. Les utilisateurs ne peuvent pas lier des tables non enregistrées à une salle blanche.
Si vous souhaitez annuler l’enregistrement des tables dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.unregister_managed_access_table
plutôt.
Entrée : table_name (tableau)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.unregister_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_managed_access_table¶
Description : similaire à unregister_table
, mais annule l’enregistrement des tables dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS).
Entrée : table_name (tableau)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.unregister_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_view¶
Description : similaire à unregister_db
, mais opère au niveau d’un vue. Un tableau ou une chaîne représentant le nom de vue complet peut être transmis pour annuler l’enregistrement des vues. Les utilisateurs ne peuvent pas lier des vues non enregistrées à une salle blanche.
Si vous souhaitez annuler l’enregistrement des vues dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.unregister_managed_access_view
plutôt.
Entrée : view_name (array)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.unregister_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
bibliothèque.unregister_managed_access_view¶
Description : similaire à unregister_view
, mais annule l’enregistrement des vues dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS).
Entrée : view_name (array)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Ajouter des ensembles de données et créer des politiques¶
Utilisez les commandes suivantes pour ajouter des données et définir des politiques pour la salle blanche.
provider.link_datasets¶
Description : relie une table Snowflake à la salle blanche. La procédure rend automatiquement la table accessible à la salle blanche en créant une vue sécurisée de la table depuis l’intérieur de la salle blanche, évitant ainsi tout besoin de faire une copie de votre table.
Le troisième argument est facultatif. Si vous ne l’utilisez pas pour spécifier une liste de consommateurs, tous les consommateurs de la salle blanche peuvent accéder aux tables spécifiées. Si vous spécifiez des consommateurs, seuls ces consommateurs peuvent accéder aux tables spécifiées.
Entrée : cleanroom_name (string), tables_list (array), consumer_list (array)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.link_datasets($cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES']);
Note
Avant de relier une vue à la salle blanche, un utilisateur ayant le rôle ACCOUNTADMIN doit exécuter les opérations suivantes dans Snowflake :
grant reference_usage on database <DB NAME> to share in application package samooha_cleanroom_<cleanroom_name>;
provider.restrict_table_options_to_consumers¶
Description : contrôle si un consommateur particulier peut accéder à une table dans la salle blanche.
Le deuxième argument est un objet JSON, où chaque paire de nom/valeur est le nom d’une table et un tableau de consommateurs qui peuvent y accéder. Chaque consommateur est spécifié à l’aide de son localisateur de compte.
Entrée : cleanroom_name(string), access_details(variant)
Sortie : message de réussite (string)
Exemple :
call samooha_by_snowflake_local_db.provider.restrict_table_options_to_consumers(
$cleanroom_name,
{
'DB.SCHEMA.TABLE1': ['CONSUMER_1_LOCATOR'],
'DB.SCHEMA.TABLE2': ['CONSUMER_1_LOCATOR', 'CONSUMER_2_LOCATOR']
}
);
provider.set_join_policy¶
Description : spécifie les colonnes sur lesquelles le consommateur est autorisé à effectuer une jointure lors de l’exécution de modèles dans la salle blanche. Notez que la politique de colonne est replace only, donc si la fonction est appelée à nouveau, la politique de colonne précédemment définie est complètement remplacée par la politique actuelle.
Notez que les vérifications sont effectuées en examinant soit l’argument where_clause d’un modèle SQL Jinja, soit tout argument auquel le filtre join_policy a été ajouté. Ce contrôle permet de vérifier s’il existe des colonnes non autorisées. Les requêtes comportant des caractères génériques peuvent ne pas être détectées par ces contrôles, et il convient de faire preuve de discernement lors de la conception du modèle d’analyse.
Par défaut, les vérifications sont effectuées sur des arguments SQL Jinja appelés where_clause. Veillez à utiliser cette balise pour activer cette vérification.
Entrée : cleanroom_name(chaîne), table_and_col_names(tableau)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.set_join_policy($cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:EMAIL', 'SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES:EMAIL']);
Modèles¶
Utilisez les commandes suivantes pour ajouter les modèles/analyses pris en charge dans cette salle blanche.
provider.add_templates¶
Description : ajoute une liste de modèles prédéfinis à l’aide de leurs identificateurs de noms. Les exemples incluent « prod_overlap_analysis » et « prod_provider_data_analysis ».
Entrée : cleanroom_name(chaîne), template_names(tableau)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.add_templates($cleanroom_name, ['prod_overlap_analysis']);
provider.view_template_definition¶
Description : étant donné le nom du modèle, récupère la définition du modèle dans la salle blanche. Cela permet à l’utilisateur de l’inspecter visuellement et de déterminer les paramètres qu’il doit passer lors de l’exécution du modèle.
Entrée : cleanroom_name (chaîne), template_name (chaîne)
Sortie : la définition du modèle (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.view_template_definition($cleanroom_name, 'prod_overlap_analysis');
provider.clear_template¶
Description : supprime un modèle spécifié (désigné par son nom) de la salle blanche.
Entrée : cleanroom_name(chaîne), template_name(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.clear_template($cleanroom_name, 'prod_custom_template');
provider.clear_all_templates¶
Description : supprime tous les modèles qui ont été ajoutés à la salle blanche. Une fois cet appel effectué, les modèles devront être ajoutés à nouveau.
Entrée : cleanroom_name(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.clear_all_templates($cleanroom_name);
provider.set_column_policy¶
Description : définit les colonnes des données sur lesquelles le consommateur peut effectuer des opérations. Cette fonction ne doit être appelée qu’après l’ajout du modèle. Il s’agit également d’une fonction du modèle, de sorte que les entrées doivent être de la forme template_name:full_table_name:column_name
. Notez que la politique de colonne est replace only, donc si la fonction est rappelée, la politique de colonne précédemment définie est complètement remplacée par la politique actuelle.
L’API de politique de colonne ne doit pas être appelée sur des colonnes d’identité telles que l’adresse e-mail. Elle ne doit être utilisée que pour les colonnes d’agrégats et de groupes.
Notez que les contrôles sont effectués en analysant la requête SQL à exécuter sur les données pour toute colonne non autorisée. Les requêtes comportant des caractères génériques peuvent ne pas être détectées par ces contrôles, et il convient de faire preuve de discernement lors de la conception du modèle d’analyse.
Par défaut, les vérifications sont effectuées sur des arguments SQL Jinja appelés dimensions ou measure_columns. Veillez à utiliser ces balises pour activer cette vérification.
Vous pouvez également utiliser les balises join_policy et column_policy dans le modèle SQL Jinja pour appliquer des politiques de sécurité aux arguments personnalisés SQL Jinja.
Entrée : cleanroom_name(chaîne), analysis_and_table_and_columns(tableau)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.set_column_policy($cleanroom_name,
['prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:STATUS',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES:CAMPAIGN']);
provider.add_custom_sql_template¶
Description : ajoute un modèle SQL Jinja personnalisé dans la salle blanche. Le modèle peut ainsi être appelé par le consommateur.
Vous pouvez appeler cette API plusieurs fois pour ajouter plusieurs modèles personnalisés à la salle blanche. Notez que cette procédure écrase tout modèle précédent portant le même nom. Si vous souhaitez modifier un modèle existant, transmettez le nom du modèle existant comme argument à l’API.
Si le consommateur utilise le modèle pour activer les résultats renvoyés au fournisseur, la commande doit répondre aux exigences suivantes :
Le nom du modèle personnalisé doit commencer par la chaîne
activation
. Par exemple,activation_custom_template
.La définition du modèle doit créer une table qui commence par
cleanroom.activation_data_
. Par exemple,CREATE TABLE cleanroom.activation_data_analysis_results AS ...
.La définition du modèle doit renvoyer la partie unique du nom de la table qui a été créée dans la définition, qui est la chaîne ajoutée à
cleanroom.activation_data_
. Par exemple,return 'data_analysis_results'
.
Dans les modèles SQL Jinja, il y a deux arguments spéciaux :
source_table : un tableau de tables du côté du fournisseur
my_table : un tableau de tables du côté du consommateur
Il faut faire référence à toutes les tables fournisseur/consommateur en utilisant ces arguments, car le nom de la vue sécurisée effectivement liée à la salle blanche sera différent du nom de la table. Il est essentiel que les alias de table de fournisseurs doivent être p (ou p1), p2, p3, p4, etc., et que les alias de table de consommateurs doivent être c (ou c1), c2, c3, etc. Cela est nécessaire pour appliquer les politiques de sécurité dans la salle blanche.
En outre, pour que « column_policy » et « join_policy » effectuent des contrôles sur les requêtes d’analyse des consommateurs, tous les noms de colonnes doivent être référencés comme dimensions ou measure_columns dans le modèle SQL Jinja. Veillez à utiliser ces balises pour faire référence aux colonnes que vous souhaitez voir cochées par défaut dans les modèles SQL Jinja personnalisés.
Il est également possible de vérifier la conformité de tout argument d’un modèle SQL Jinja personnalisé avec les politiques de jointure et de colonne à l’aide des filtres suivants :
join_policy : vérifie si une valeur de chaîne ou une clause de filtre est conforme à la politique de jointure
politique_de_colonne : vérifie si une valeur de chaîne ou une clause de filtrage est conforme à la politique de colonne
join_and_column_policy : vérifie que les colonnes utilisées pour une jointure dans une clause de filtrage sont conformes à la politique de jointure et que les colonnes utilisées comme filtre sont conformes à la politique de colonne.
Par exemple, dans la clause {{ where_clause | sqlsafe | join_and_column_policy }}, une entrée p.HEM = c.HEM et p.STATUS = 1 sera analysée pour vérifier si p.HEM fait partie de la politique de jointure et p.STATUS de la politique de colonne.
Remarque : n’utilisez le filtre sqlsafe qu’avec précaution, car il permet aux collaborateurs d’introduire du code SQL pur dans le modèle.
Si vous ne spécifiez pas de liste de consommateurs, tous les consommateurs peuvent utiliser le modèle personnalisé. Si vous utilisez le paramètre pour spécifier une liste de consommateurs, seuls ces consommateurs peuvent utiliser le modèle dans la salle blanche.
Entrée : cleanroom_name(string), template_name(string), template(string), differential_privacy_sensitivity(float, OPTIONAL), consumer_list(array, OPTIONAL)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.add_custom_sql_template(
$cleanroom_name, 'prod_custom_template',
$$
select
identifier({{ dimensions[0] | column_policy }})
from
identifier({{ my_table[0] }}) c
inner join
identifier({{ source_table[0] }}) p
on
c.identifier({{ consumer_id }}) = identifier({{ provider_id | join_policy }})
{% if where_clause %} where {{ where_clause | sqlsafe | join_and_column_policy }} {% endif %};
$$);
provider.restrict_template_options_to_consumers¶
Description : contrôle si un consommateur particulier peut utiliser un modèle dans la salle blanche.
Le deuxième argument est un objet JSON, où chaque paire de nom/valeur est le nom d’un modèle et un tableau de consommateurs qui peuvent l’utiliser. Chaque consommateur est spécifié à l’aide de son localisateur de compte.
Entrée : cleanroom_name(string), access_details(variant)
Sortie : message de réussite (string)
Exemple :
call samooha_by_snowflake_local_db.provider.restrict_template_options_to_consumers(
$cleanroom_name,
{
'prod_template_1': ['CONSUMER_1_LOCATOR', 'CONSUMER_2_LOCATOR']
}
);
Modèles définis par le consommateur¶
Les APIs suivantes vous permettent d’approuver ou de rejeter une requête d’un consommateur pour ajouter un modèle à la salle blanche. Un modèle défini par le consommateur n’est ajouté à une salle blanche que si le fournisseur approuve la requête d’ajout du consommateur. Pour plus d’informations, voir Utilisation de l’API du développeur pour ajouter des modèles définis par le consommateur.
provider.list_template_requests¶
Description : répertorie toutes les requêtes des consommateurs qui souhaitent ajouter un modèle défini par le consommateur à une salle blanche. Cela inclut les requêtes en attente, approuvées et rejetées.
Entrée : cleanroom_name (chaîne)
Sortie : request_id(string), consumer_identifier(string), template_name(string), template_definition(string), status(string)
Exemple :
CALL samooha_by_snowflake_local_db.provider.list_template_requests('dcr_cleanroom');
provider.approve_template_request¶
Description : approuve une requête d’ajout d’un modèle à la salle blanche. Pour obtenir l’argument <request_id>, exécutez la commande provider.list_template_requests
pour récupérer l’UUID de la demande.
Entrée : cleanroom_name (string), request_id (string)
Sortie : success message (chaîne)
Exemple :
CALL samooha_by_snowflake_local_db.provider.approve_template_request('dcr_cleanroom',
'01b4d41d-0001-b572');
provider.reject_template_request¶
Description : rejette une requête d’ajout d’un modèle à la salle blanche. Pour obtenir l’argument <request_id>, exécutez la commande provider.list_template_requests
pour récupérer l’UUID de la demande.
Entrée : cleanroom_name (string), request_id (string), reason_for_rejection(string)
Sortie : success message (chaîne)
Exemple :
CALL samooha_by_snowflake_local_db.provider.reject_template_request('dcr_cleanroom',
'01b4d41d-0001-b572',
'Failed security assessment');
Configurer les personnes autorisées à effectuer des analyses¶
Utilisez les commandes suivantes pour configurer les personnes autorisées à effectuer des analyses dans la salle blanche. Vous pouvez spécifier le fournisseur (créateur de salle blanche), le consommateur (installateur de salle blanche) ou les deux.
provider.enable_provider_run_analysis¶
Description : permet au fournisseur (créateur de la salle blanche) d’effectuer des analyses dans la salle blanche (cette fonction est désactivée par défaut).
Note
Très important : cette opération doit être appelée après provider.add_consumer
, et avant qu’un consommateur installe une salle blanche. Si cette configuration est modifiée alors que le consommateur a déjà installé sa salle blanche, il devra réinstaller la salle blanche pour tenir compte de la nouvelle configuration.
Entrée : cleanroom_name(chaîne), consumer_account_locator(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.enable_provider_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
provider.disable_provider_run_analysis¶
Description : empêche le fournisseur (créateur de la salle blanche) d’effectuer des analyses dans la salle blanche (cette fonction est désactivée par défaut).
Note
Très important : cette opération doit être appelée après provider.add_consumer
, et avant qu’un consommateur installe une salle blanche. Si cette configuration est modifiée alors que le consommateur a déjà installé sa salle blanche, il devra réinstaller la salle blanche pour tenir compte de la nouvelle configuration.
Entrée : cleanroom_name(chaîne), consumer_account_locator(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.disable_provider_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
provider.enable_consumer_run_analysis¶
Description : permet au consommateur (installateur de la salle blanche) d’effectuer des analyses dans la salle blanche (cette fonction est activée par défaut).
Note
Très important : cette opération doit être appelée après provider.add_consumer
, et avant qu’un consommateur installe une salle blanche. Si cette configuration est modifiée alors que le consommateur a déjà installé sa salle blanche, il devra réinstaller la salle blanche pour tenir compte de la nouvelle configuration.
Entrée : cleanroom_name(chaîne), consumer_account_locator(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.enable_consumer_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
provider.disable_consumer_run_analysis¶
Description : empêche le consommateur (installateur de la salle blanche) d’effectuer des analyses dans la salle blanche (cette fonction est activée par défaut).
Note
Très important : cette opération doit être appelée après provider.add_consumer
, et avant qu’un consommateur installe une salle blanche. Si cette configuration est modifiée alors que le consommateur a déjà installé sa salle blanche, il devra réinstaller la salle blanche pour tenir compte de la nouvelle configuration.
Entrée : cleanroom_name(chaîne), consumer_account_locator(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.disable_consumer_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
library.is_provider_run_enabled¶
Description : vérifie si l’analyse de l’exécution du fournisseur est activée dans cette salle blanche. Remarque : l’approbation explicite doit encore être donnée en appelant consumer.enable_templates_for_provider_run
(voir ci-dessous).
Entrée : cleanroom_name (chaîne)
Sortie : enabled message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
library.is_consumer_run_enabled¶
Description : vérifie si l’analyse du cycle du consommateur est activée dans cette salle blanche. Cet indicateur détermine si le consommateur de la salle blanche (l’installateur) peut effectuer des analyses, ou agir en tant que fournisseur de données dans le cadre de la collaboration.
Entrée : cleanroom_name (chaîne)
Sortie : enabled message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name)
Chaînes de modèles¶
Utilisez les commandes suivantes pour créer et gérer des chaînes de modèles. Pour des informations générales sur l’utilisation des chaînes de modèles, voir Utilisation des APIs du développeur pour exécuter les modèles de manière séquentielle.
provider.add_template_chain¶
Description : crée une nouvelle chaîne de modèles. Les modèles doivent exister avant d’être ajoutés à la chaîne de modèles.
Entrée : cleanroom_name(string), template_chain_name(string), templates(array of objects)
L’objet JSON qui représente un modèle peut contenir les champs suivants :
template_name
(string) - Spécifie le modèle ajouté à la chaîne de modèles. Le modèle doit déjà exister.cache_results
(boolean) - Détermine si les résultats du modèle sont temporairement enregistrés afin que d’autres modèles de la chaîne de modèles puissent y accéder. Pour mettre en cache les résultats, spécifiez TRUE.output_table_name
(string) - Lorsque cache_results = TRUE, spécifie le nom de la table Snowflake dans laquelle les résultats du modèle sont stockés.jinja_output_table_param
(string) - Lorsque cache_results = TRUE, spécifie le nom du paramètre Jinja que les autres modèles doivent inclure pour accepter les résultats stockés dans output_table_name.cache_expiration_hours
(integer) - Lorsque cache_results = TRUE, spécifie le nombre d’heures avant que les résultats du cache ne soient supprimés. Lorsque le cache expire, la prochaine fois que la chaîne de modèles est exécutée, le cache est actualisé avec les résultats du modèle.
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.add_template_chain(
'collab_clean_room',
'my_chain',
[
{
'template_name': 'crosswalk',
'cache_results': True,
'output_table_name': 'crosswalk',
'jinja_output_table_param': 'crosswalk_table_name',
'cache_expiration_hours': 2190
},
{
'template_name': 'transaction_insights',
'cache_results': False
}
]
);
provider.view_added_template_chains¶
Description : permet de voir les chaînes de modèles actuellement actives dans la salle blanche.
Entrée : cleanroom_name (chaîne)
Sortie : les chaînes de modèles ajoutées (table)
Exemple :
call samooha_by_snowflake_local_db.provider.view_added_template_chains($cleanroom_name);
provider.view_template_chain_definition¶
Description : renvoie les attributs d’une chaîne de modèles.
Entrée : cleanroom_name (string), template_chain_name (string)
Sortie : la définition de la chaîne de modèles (string)
Exemple :
call samooha_by_snowflake_local_db.provider.view_template_chain_definition($cleanroom_name, 'insights_chain');
provider.clear_template_chain¶
Description : supprime une chaîne de modèle spécifié (désigné par son nom) de la salle blanche.
Entrée : cleanroom_name(string), template_name(string)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.clear_template_chain($cleanroom_name, 'insights_chain');
provider.clear_all_template_chains¶
Description : supprime toutes les chaînes de modèles qui ont été ajoutées à la salle blanche.
Entrée : cleanroom_name(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.clear_all_template_chains($cleanroom_name);
Analyses d’exécution en tant que créateur de salles blanches¶
provider.submit_analysis_request¶
Description : l’exécution d’une analyse en tant que fournisseur de salle blanche se fait en soumettant une requête d’analyse. Cette requête d’analyse est transmise à la salle blanche et vérifiée par rapport aux politiques de sécurité du consommateur. Une fois que les contrôles de sécurité et les couches de confidentialité différentielles autorisent l’analyse, celle-ci est exécutée dans la salle blanche et les résultats sont stockés en toute sécurité à l’intérieur de la salle blanche.
Lorsque l’on permet au fournisseur d’effectuer des analyses, on ajoute à la salle blanche une clé sécurisée par chiffrement que seul le fournisseur connaît. Cette clé est utilisée pour chiffrer les résultats de l’analyse, avant qu’ils ne transitent à nouveau vers le client fournisseur, où ils sont alors déchiffrés à l’aide de la clé sécurisée. Cela garantit que personne d’autre que le fournisseur ne peut jamais voir les résultats d’une analyse que le fournisseur a demandée.
Entrée : cleanroom_name (chaîne), consumer_account_locator (chaîne), template_name (chaîne), consumer_tables (tableau), provider_tables (tableau), analysis_arguments (objet)
Sortie : ID de requête (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.submit_analysis_request(
$cleanroom_name,
'<CONSUMER_ACCOUNT>',
'prod_overlap_analysis',
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
object_construct(
'dimensions', ['c.REGION_CODE'],
'measure_type', ['AVG'],
'measure_column', ['c.DAYS_ACTIVE']
));
-- This API returns a request ID that we save into a local variable.
set request_id = '<REQUEST_ID';
provider.check_analysis_status¶
Description : une fois qu’une requête d’analyse a été soumise, utilisez cette API pour vérifier le statut de la requête. L’affichage de la requête peut prendre jusqu’à une minute après sa soumission. Une fois cette opération effectuée, le statut apparaît sous la forme suivante : COMPLETED.
Entrée : cleanroom_name (chaîne), request_id (chaîne), consumer_account_locator (chaîne)
Sortie : statut (chaîne)
Exemple :
-- It can take up to 2 minutes for this to pick up the request ID after the initial request
call samooha_by_snowflake_local_db.provider.check_analysis_status(
$cleanroom_name,
$request_id,
'<CONSUMER_ACCOUNT>'
);
provider.get_analysis_result¶
Description : une fois que le statut de l’analyse apparaît comme COMPLETED pour un ID de requête donné, les résultats pour un request_id peuvent être obtenus en utilisant cette API. Celle-ci prend les résultats, les déchiffre à l’aide de la clé secrète créée dans votre compte lors de l’activation de l’analyse, et produit les résultats de l’analyse.
Entrée : cleanroom_name (chaîne), request_id (chaîne), consumer_account_locator (chaîne)
Sortie : résultats de l’analyse (table)
Exemple :
call samooha_by_snowflake_local_db.provider.get_analysis_result(
$cleanroom_name,
$request_id,
'<CONSUMER_ACCOUNT>'
);
Fonctions pour charger le code Python dans la salle blanche¶
provider.load_python_into_cleanroom¶
Description : charge confidentiellement n’importe quelle fonction Python dans la salle blanche. Tout code chargé dans la salle blanche à l’aide de cette API ne sera pas visible pour le consommateur. La fonction résultante peut être appelée à l’intérieur de n’importe quel modèle SQL Jinja comme salle blanche.
Note
Cette procédure ajoute votre code Python à la salle blanche en tant que correctif de la version existante. Cela déclenchera à nouveau l’analyse de sécurité et vous devrez peut-être attendre qu’elle soit APPROVED avant de partager la dernière version avec les collaborateurs. Si c’est le cas, appelez provider.set_default_release_directive
avant de partager la salle blanche avec les fournisseurs disposant de la dernière version/du dernier correctif. Consultez [la documentation de l’application native de Snowflake] (https://docs.snowflake.com/fr/developer-guide/native-apps/native-apps-about) pour plus de détails.
Entrée : cleanroom_name(string), function_name(chaîne), arguments(tableau), packages(tableau), ret_type(tableau), handler(chaîne), code(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
$cleanroom_name,
'assign_group', // Name of the UDF
['data variant', 'index integer'], // Arguments of the UDF, along with their type
['pandas', 'numpy'], // Packages UDF will use
'integer', // Return type of UDF
'main', // Handler
$$
import pandas as pd
import numpy as np
def main(data, index):
df = pd.DataFrame(data) # you can do something with df but this is just an example
return np.random.randint(1, 100)
$$
);
Méthodes d’enregistrement d’UI de salle blanche¶
Utilisez les commandes suivantes pour enregistrer une salle blanche chargée avec des analyses personnalisées dans l”[application Web d’une Snowflake Data Clean Room] (web-app-introduction.rst) sous l’onglet Analyse personnalisée.
provider.add_ui_form_customizations¶
Description: : ajoute des personnalisations pour le formulaire d’UI pour les salles blanches que vous voulez enregistrer dans l’application Web pour vos consommateurs. Vous devez au moins spécifier des valeurs pour display_name
, description
, et methodology
.
Les personnalisations autorisées sont les suivantes :
type
: un des éléments d’UI suivants :boolean
: sélecteur vrai/fauxinteger
: utilisez les flèches pour changer le nombremultiselect
: sélectionnez plusieurs éléments dans un menu déroulantdropdown
: sélectionnez 1 élément dans un menu déroulantdate
: sélecteur de dateany
: champ de saisie de texte régulier
choices
: liste des choix disponibles pour les types dropdown et multiselectdefault
: toute valeur par défautdisplay_name
(Obligatoire) : nom d’affichage de l’élément UIdescription
(Obligatoire) : description apparaissant sous le nommethodology
(Obligatoire) : description de la manière dont le consommateur doit utiliser la forme pour exécuter une analyse.infoMessage
: message d’information qui s’affiche lorsque vous survolez l’icône « i » à côté du nomsize
: choisissez la taille de l’élément entreXS
,S
,M
,L
,XL
required
: indique si l’élément est obligatoire. SpécifiezTRUE
ouFALSE
.group
: mettez la même valeur pour plusieurs éléments afin de les regrouper dans le formulaire d’UIrender_table_dropdowns
: contrôle si les listes déroulantes par défaut qui permettent aux utilisateurs de sélectionner des tables apparaissent dans l’annonce. Si elle n’est pas spécifiée, une liste déroulante apparaît pour les tables des fournisseurs et des consommateurs. Si vous souhaitez une liste déroulante composée de toutes les tables de fournisseurs ou de toutes les tables de consommateurs, mais que vous ne souhaitez pas avoir à les répertorier, utilisez le paramètrereferences
à la place.La valeur de
render_table_dropdowns
est un dict composé des clés suivantes :render_consumer_table_dropdown
: siFALSE
, la liste déroulante par défaut des tables de consommateurs est masquée. La valeur par défaut estTRUE
.render_provider_table_dropdown
: siFALSE
, la liste déroulante par défaut des tables de fournisseurs est masquée. La valeur par défaut estTRUE
.
Si vous masquez les listes déroulantes par défaut, vous pouvez utiliser les arguments spéciaux
{{ source_table }}
et{{ my_table}}
dans le modèle personnalisé, puis définir votre propre liste déroulante contenant les tables souhaitées. Pour plus de détails sur l’utilisation de ces variables spéciales lors de la définition du modèle personnalisé, voir provider.add_custom_sql_template.references
: crée une liste déroulante contenant des tables ou des colonnes disponibles dans la salle blanche. Permet aux utilisateurs de sélectionner des tables et des colonnes lors de l’exécution d’une analyse dans l’application Web sans avoir à spécifier chaque table ou colonne individuellement lors de la création de l’interface utilisateur.Il possède les valeurs de chaîne possibles suivantes :
PROVIDER_TABLES
: la liste déroulante contient toutes les tables du fournisseur dans la salle blanche.CONSUMER_TABLES
: la liste déroulante contient toutes les tables du consommateur dans la salle blanche.PROVIDER_COLUMN_POLICY
: la liste déroulante contient les colonnes des politiques de colonnes du fournisseur, par exemple, les colonnes sur lesquelles il est possible de filtrer. Si spécifié, vous devez également inclure le paramètreprovider_parent_table_field
permettant d’identifier quelle table de fournisseur contient les politiques de colonne.PROVIDER_JOIN_POLICY
: la liste déroulante contient les colonnes des politiques de jointure du fournisseur, c’est-à-dire les colonnes de la table du fournisseur que le consommateur peut utiliser comme clé de jointure. Si spécifié, vous devez également inclure le paramètreprovider_parent_table_field
permettant d’identifier quelle table de fournisseurs contient les politiques de jointure.CONSUMER_COLUMNS
: la liste déroulante contient les colonnes des politiques de jointure du consommateur, c’est-à-dire les colonnes de la table du consommateur que l’analyste peut utiliser comme clé de jointure. Si spécifié, vous devez également inclure le paramètreconsumer_parent_table_field
permettant “identifier quelle table de consommateurs contient les politiques de jointure.
provider_parent_table_field
: spécifie le nom d’un champ UI qui permet à un utilisateur de sélectionner une table de fournisseurs. Obligatoire si le paramètrereferences
spécifiePROVIDER_COLUMN_POLICY
ouPROVIDER_JOIN_POLICY
.Par exemple, si
a_provider_table
est le nom d’un champ UI qui permet à l’analyste de sélectionner une table de fournisseurs, le champ UI qui permet à l’utilisateur de sélectionner des colonnes dans une table de fournisseur peut inclure la paire de nom/valeur'provider_parent_table_field': 'a_provider_table'
.consumer_parent_table_field
: spécifie le nom d’un champ UI qui permet à un utilisateur de sélectionner une table de fournisseurs. Obligatoire si le paramètrereferences
spécifieCONSUMER_COLUMNS
.Par exemple, si
a_consumer_table
est le nom d’un champ UI qui permet à l’analyste de sélectionner une table de consommateurs, le champ UI qui permet à l’utilisateur de sélectionner des colonnes dans une table de consommateurs peut inclure la paire de nom/valeur'consumer_parent_table_field': 'a_consumer_table'
.warehouse_hints
: personnalisation facultative qui contrôle le type d”entrepôt que le compte du consommateur utilisera pour effectuer des analyses. Par exemple, pour la plupart des cas d’utilisation du machine learning, Snowflake recommande de spécifier un [entrepôt optimisé par Snowpark] (https://docs.snowflake.com/fr/user-guide/warehouses-snowpark-optimized). Pour connaître les valeurs valables pourwarehouse_size
, voir CREATE WAREHOUSE.
Les personnalisations visuelles sont les suivantes :
measure_columns
: points de données quantitatifs affichés dans la sortie. Ces colonnes incluent des métriques et des dimensions qui permettent une analyse détaillée des données.default_output_type
: format dans lequel les données seront visualisées. Types prises en charge :TABLE
: affiche les données sous forme de tableau. Il s’agit du type de sortie par défaut.BAR
: visualise les données à l’aide de graphiques à barres, idéaux pour comparer différentes catégories.LINE
: utilise des graphiques linéaires pour afficher les tendances au fil du temps ou des données continues.PIE
: représente les données sous forme de graphique à secteurs, adapté pour afficher des proportions ou des pourcentages.
Entrée : nom du modèle (chaîne), template_description (dict), personnalisations (dict), output_config (dict)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.add_ui_form_customizations(
$cleanroom_name,
'prod_custom_template',
{
'display_name': 'Custom Analysis Template',
'description': 'Use custom template to run a customized analysis.',
'methodology': 'This custom template dynamically renders a form for you to fill out, which are then used to generate a customized analysis fitting your request.',
'warehouse_hints': {
'warehouse_size': 'xsmall',
'snowpark_optimized': FALSE
},
'render_table_dropdowns': {
'render_consumer_table_dropdown': false,
'render_provider_table_dropdown': false
}
},
{
'a_provider_table': {
'display_name': 'Provider table',
'order': 3,
'description': 'Provider table selection',
'size': 'S',
'group': 'Seed Audience Selection',
'references': ['PROVIDER_TABLES'],
'type': 'dropdown'
},
'a_provider_col': {
'display_name': 'Provider column',
'order': 4,
'description': 'Which col do you want to count on',
'size': 'S',
'group': 'Seed Audience Selection',
'references': ['PROVIDER_COLUMN_POLICY'],
'provider_parent_table_field': 'a_provider_table',
'type': 'dropdown'
}
},
{
'measure_columns': ['col1', 'col2'],
'default_output_type': 'PIE'
}
);
provider.register_cleanroom_in_ui¶
Description : enregistre une salle blanche en vue de son utilisation par le consommateur dans l’application Web. La salle blanche est créée et configurée par le fournisseur à l’aide des APIs du développeur. Cette méthode l’enregistre ensuite dans l’application Web pour que les consommateurs puissent l’installer, ajouter leur table et exécuter toutes les analyses personnalisées que vous avez ajoutées sans avoir besoin d’utiliser d’APIs du développeur. Ils travaillent avec la salle blanche entièrement via l’interface utilisateur de l’application Web.
Vous pouvez appeler cette API plus d’une fois pour inclure plusieurs modèles personnalisés dans l’application Web.
Entrée : cleanroom_name(chaîne), template name(chaîne), consumer_account_locator(chaîne), user_email(chaîne)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.register_cleanroom_in_ui($cleanroom_name, 'prod_custom_template', <CONSUMER ACCOUNT LOCATOR>, <USER_EMAIL>)
provider.view_ui_registration_request_log¶
Description : vue de la liste des requêtes émises à partir du compte pour enregistrer les salles blanches dans l’application Web. Chaque requête est associée à un ID qui peut être utilisé conjointement avec la procédure view_ui_registration_log
pour voir le statut des requêtes. Les requêtes sont partagées avec le backend où elles sont traitées et où la salle blanche est ajoutée à la salle blanche.
Entrée :
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.view_ui_registration_request_log();
Méthodes d’obtention des métadonnées de la salle blanche¶
Utilisez les commandes suivantes pour afficher les propriétés pertinentes de la salle blanche.
provider.describe_cleanroom¶
Description : crée un résumé textuel contenant toutes les informations sur ce qui a été ajouté à la salle blanche, y compris les modèles, les ensembles de données et les politiques.
Entrée : cleanroom_name(chaîne)
Sortie : chaîne de description complète de la salle blanche (table)
Exemple :
call samooha_by_snowflake_local_db.provider.describe_cleanroom($cleanroom_name);
provider.view_provider_datasets¶
Description : permet de voir tous les ensembles de données qui ont été ajoutés à la salle blanche.
Entrée : cleanroom_name(chaîne)
Sortie : tous les noms des ensembles de données des fournisseurs dans la salle blanche (table)
Exemple :
call samooha_by_snowflake_local_db.provider.view_provider_datasets($cleanroom_name);
provider.view_join_policy¶
Description : permet de voir les politiques de jointure actuellement actives dans la salle blanche.
Entrée : cleanroom_name (chaîne)
Sortie : la politique de jointure (table)
Exemple :
call samooha_by_snowflake_local_db.provider.view_join_policy($cleanroom_name);
provider.view_added_templates¶
Description : permet de voir les modèles actuellement actifs dans la salle blanche.
Entrée : cleanroom_name (chaîne)
Sortie : les modèles ajoutés (table)
Exemple :
call samooha_by_snowflake_local_db.provider.view_added_templates($cleanroom_name);
provider.view_column_policy¶
Description : permet de voir les politiques de colonne actuellement actives dans la salle blanche.
Entrée : cleanroom_name (chaîne)
Sortie : la politique de colonne (table)
Exemple :
call samooha_by_snowflake_local_db.provider.view_column_policy($cleanroom_name);
provider.view_consumers¶
Description : donne une vue sur les consommateurs avec lesquels la salle blanche a été partagée.
Entrée : cleanroom_name (chaîne)
Sortie : comptes de consommateurs ayant accès à la salle blanche (table)
Exemple :
call samooha_by_snowflake_local_db.provider.view_consumers($cleanroom_name);
provider.view_cleanrooms¶
Description : vue de toutes les salles blanches récemment créées, triées en fonction de leur date de création.
Entrée :
Sortie : toutes les salles blanches existantes classées par date de création (table)
Exemple :
call samooha_by_snowflake_local_db.provider.view_cleanrooms();
provider.view_request_logs¶
Description : permet de voir les journaux de requêtes envoyées par les consommateurs de cette salle blanche.
Entrée : cleanroom_name (chaîne)
Sortie : un ensemble de journaux enregistrés des requêtes exécutées sur la salle blanche (table)
Exemple :
call samooha_by_snowflake_local_db.provider.view_request_logs($cleanroom_name);
Méthodes d’aide générales¶
Utilisez les méthodes suivantes pour vous aider à tirer parti de la fonctionnalité de la salle blanche et des flux pris en charge.
provider.grant_reference_usage¶
Description : permet aux bases de données en amont qui contiennent des données de se voir accorder reference_usage à la salle blanche.
Note
Cette commande ne peut être utilisée qu’avec l’application Web.
Il s’agit d’une autorisation beaucoup plus limitée que celles qui figurent dans register_db
. Cette procédure est nécessaire lorsque vous ajoutez des vues ou des UDTFs qui font référence à des données provenant de bases de données en amont, mais elle ne permet pas au rôle SAMOOHA_APP_ROLE de voir les tables réelles ou d’afficher ces bases de données dans le menu déroulant de l’application Web.
Cette commande doit être appelée sur les bases de données qui contiennent des données utilisées dans les vues liées et les UDTFs.
Entrée : database_names (tableau)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.grant_reference_usage(['<DATABASE_NAME>']);
provider.revoke_reference_usage¶
Description : supprime les bases de données de la liste des bases de données référencées créée par provider.grant_reference_usage
.
Note
Cette commande ne peut être utilisée qu’avec l’application Web.
Entrée : database_names (tableau)
Sortie : success message (chaîne)
Exemple :
call samooha_by_snowflake_local_db.provider.revoke_reference_usage(['<DATABASE_NAME>']);
provider.mount_request_logs_for_all_consumers¶
Description : permet aux fournisseurs d’accéder aux informations qui leur sont communiquées par les consommateurs d’une salle blanche.
Entrée : cleanroom_name (chaîne)
Sortie : success message (chaîne)
Exemple :
CALL samooha_by_snowflake_local_db.provider.mount_request_logs_for_all_consumers($cleanroom_name);
library.enable_local_db_auto_upgrades¶
Description : active la tâche, samooha_by_snowflake_local_db.admin.expected_version_task
, qui met automatiquement à niveau la Snowflake Native App pour Snowflake Data Clean Rooms à mesure que de nouvelles versions sont publiées.
Entrée : Aucune
Sortie : success message (chaîne)
Exemple :
CALL samooha_by_snowflake_local_db.library.enable_local_db_auto_upgrades();
library.disable_local_db_auto_upgrades¶
Description : désactive la tâche, samooha_by_snowflake_local_db.admin.expected_version_task
, qui met automatiquement à niveau la Snowflake Native App pour Snowflake Data Clean Rooms à mesure que de nouvelles versions sont publiées.
Entrée : Aucune
Sortie : success message (chaîne)
Exemple :
CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();