Snowflake Data Clean Rooms : guide de référence pour l’API fournisseurs¶
Cette page décrit les procédures utilisées par les consommateurs d’API de clean rooms pour gérer leurs clean rooms. Pour les instructions de mise en place du codage, voir Configuration du codage.
Créer, configurer et supprimer des salles blanches¶
view_cleanrooms¶
- Schéma:
PROVIDER
Description : Liste toutes les salles blanches existantes qui ont été créées par ce compte fournisseur.
Arguments : Aucun
Retourne : (Table) Une liste des salles blanches créées par ce compte fournisseur. Les salles blanches ne doivent pas nécessairement être partagées avec les consommateurs, ni être installées ou utilisées par eux. Les salles blanches supprimées sont effacées de la base de données et n’apparaissent pas dans cette liste.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_cleanrooms();
describe_cleanroom¶
- Schéma:
PROVIDER
Description : Obtenez un résumé des informations relatives à une salle blanche, telles que les modèles, les politiques de jointure, les politiques de colonne et les consommateurs.
Arguments :
cleanroom_name (string) - Nom de la salle blanche pour laquelle vous souhaitez obtenir des informations.
Retourne : (string) Résumé des métadonnées de la salle blanche.
Exemple :
CALL samooha_by_snowflake_local_db.provider.describe_cleanroom($cleanroom_name);
cleanroom_init¶
- Schéma:
PROVIDER
Description : crée une salle blanche avec le nom spécifié dans votre compte. L’exécution de cette procédure peut prendre une minute ou plus. La salle blanche ne sera visible dans l’UI des salles blanches ou pour les collaborateurs qu’après avoir appelé create_or_update_cleanroom_listing
.
Arguments :
cleanroom_name (string) - Nom de la salle blanche, 80 caractères maximum. Le nom comprend [A‑Z,a‑z,0‑9, ,_].
distribution (String, Optional) - Une des valeurs suivantes :
INTERNAL (Default) - La salle blanche n’est peut être vue que par les utilisateurs de la même organisation et ne déclenche pas d’analyse de sécurité avant le changement de la version par défaut.
EXTERNAL - La salle blanche est prête pour la production et peut être partagée en dehors de l’organisation. La salle blanche déclenche une analyse de sécurité avant le changement de la version par défaut. Si vous souhaitez modifier la distribution après la création d’une salle blanche, appelez
ALTER PACKAGE
comme indiqué ici :ALTER APPLICATION PACKAGE samooha_cleanroom_<CLEANROOM_ID> SET DISTRIBUTION = EXTERNAL;
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
-- Create an internal clean room
CALL samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
set_default_release_directive¶
- Schéma:
PROVIDER
**Description **: spécifie la version et le correctif d’une salle blanche chargée par les collaborateurs lorsqu’ils démarrent une nouvelle session de navigateur dans l’UI des salles blanches ou accèdent à la salle blanche depuis l’API. Celle-ci doit être appelée avant que la salle blanche puisse être partagée avec les consommateurs.
L’application de salle blanche crée une nouvelle version d’une salle blanche chaque fois que vous importez ou modifiez le code Python. Si vous souhaitez que les utilisateurs reçoivent la version la plus récente, appelez cette procédure en indiquant le numéro de la nouvelle version. Pour voir les versions disponibles et connaître la version par défaut actuelle, exécutez :
Si vous avez oublié le dernier numéro de correctif, vous pouvez exécuter le code suivant pour voir quelles versions sont disponibles (vous souhaiterez probablement utiliser la dernière version par défaut) :
SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_<cleanroom_name>
Où <cleanroom_name>
suit ce format.
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, cette procédure ne peut être appelée qu’après que le contrôle de sécurité de la salle blanche est passé à l’état APPROVED. Pour connaître le statut de sécurité, appelez view_cleanrooom_scan_status
.
Arguments :
cleanroom_name (string) - Nom de la salle blanche.
version (string) - Version. Doit toujours être « V1_0 ».
patch (string) - Numéro du correctif chargé par le consommateur. Cette valeur commence à 0, et vous devez l’incrémenter chaque fois qu’une nouvelle version de salle blanche est disponible. Vous pouvez voir les versions disponibles ci-dessus.
Retourne : (String) message de réussite.
Exemple :
CALL samooha_by_snowflake_local_db.provider.set_default_release_directive($cleanroom_name, 'V1_0', '0');
drop_cleanroom¶
- Schéma:
PROVIDER
Description : supprime la salle blanche. Les collaborateurs qui ont installé la salle blanche ne peuvent plus y accéder ni l’utiliser. La salle blanche n’apparaît plus dans l’UI des salles blanches la prochaine fois que le navigateur sera actualisé.
Arguments :
cleanroom_name (string) - Nom de la salle blanche à supprimer.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
enable_consumer_run_analysis¶
- Schéma:
PROVIDER
Description : Permet au consommateur d’effectuer des analyses dans la salle blanche. Cette fonction est activée par défaut dans toutes les nouvelles salles blanches, de sorte que cette procédure ne doit être exécutée que si vous avez explicitement désactivé l’analyse du cycle exécuté par les consommateurs pour une salle blanche.
Arguments :
cleanroom_name (string) - Nom de la salle blanche dans laquelle les analyses effectuées par les consommateurs sont autorisées.
consumer_accounts (Array of string) - Emplacements des comptes de tous les consommateurs pour lesquels cette fonction doit être activée. NOTE : Ces consommateurs doivent déjà avoir été ajoutés à la salle blanche.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.enable_consumer_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR_1>']);
isable_consumer_run_analysis¶
- Schéma:
PROVIDER
Description : Empêche les consommateurs spécifiés d’effectuer des analyses dans la salle blanche spécifiée. Par défaut, tous les consommateurs sont autorisés à effectuer une analyse dans une salle blanche.
Arguments :
cleanroom_name (string) - Salle blanche dans laquelle l’analyse du cycle du consommateur est désactivée.
consumer_accounts (Array of string) - Emplacements des comptes des consommateurs qui ne peuvent pas effectuer d’analyse dans cette salle blanche. NOTE : Ces consommateurs doivent déjà avoir été ajoutés à la salle blanche.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.disable_consumer_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR_1>']);
is_consumer_run_enabled¶
- Schéma:
LIBRARY
Description : Vérifie si cette salle blanche autorise les analyses effectuées par les consommateurs.
Arguments :
cleanroom_name (string) - Nom de la salle blanche à vérifier.
Retourne : (string) Indique si cette salle blanche autorise ou non les analyses effectuées par les consommateurs.
Exemple :
CALL samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name)
create_or_update_cleanroom_listing¶
- Schéma:
PROVIDER
Description : Publie une nouvelle salle blanche ou met à jour une salle blanche existante. Vous devez appeler cette méthode chaque fois que vous apportez des modifications à une salle blanche afin de vous assurer que les changements sont propagés aux consommateurs.
Lorsque vous publiez une salle blanche pour la première fois, cela peut prendre un certain temps avant que la salle blanche ne soit visible dans l’UI des salles blanches (jusqu’à 15 minutes).
Si vous effectuez des mises à jour dans une salle blanche sans appeler cette méthode par la suite, il n’y a aucune garantie que les changements seront propagés aux consommateurs.
Il y a une limite au nombre de salles blanches et de collaborateurs que vous pouvez créer dans un seul compte. Si vous créez trop de salles blanches de tests, vous devrez peut-être en supprimer quelques-unes afin de créer de nouvelles salles blanches. Si vous avez besoin de plus de salles blanches que votre compte ne peut en contenir, contactez l’assistance de Snowflake.
Note
Vous devez définir la directive de version au moins une fois avant d’appeler cette procédure. Pour plus d’informations, voir provider.set_default_release_directive.
Arguments :
cleanroom_name (string) - Nom de la salle blanche à publier ou à mettre à jour.
Renvoie : (string) Message de réussite ou d’échec.
Traitement des erreurs :
Si vous obtenez une erreur indiquant que « L’exécution automatique inter-Cloud n’est pas activée pour ce compte », cela signifie que l’un des consommateurs se trouve dans une autre région d’hébergement Cloud. Vous devez activer l’exécution automatique inter-Cloud comme décrit dans Gestion de la réplication automatique dans le Cloud Snowflake Data Clean Rooms.
Exemple :
CALL samooha_by_snowflake_local_db.provider.create_or_update_cleanroom_listing($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.
En savoir plus sur l’enregistrement des données
registre_bd¶
- Schéma:
PROVIDER
Description : permet à une base de données et à tous les objets qu’elle contient d’être liés à des salles blanches individuelles dans cet environnement de salle blanche. Cette procédure accorde les privilèges USAGE et SELECT sur la base de données au rôle SAMOOHA_APP_ROLE, qui est utilisé par l’environnement de la salle blanche pour accéder aux données.
Vous devez avoir l’accès à la base de données à l’adresse MANAGE GRANTS pour pouvoir appeler cette procédure. D’autres fournisseurs de cet environnement de salle blanche peuvent ensuite lier ces objets à leurs propres salles blanches sans avoir besoin de leur propre privilège SELECT.
En savoir plus sur l’enregistrement des données
Important
Cette procédure n’enregistre pas les objets créés après son appel. Si de nouveaux objets ont été ajoutés à la base de données et que vous souhaitez les enregistrer également, vous devez rappeler cette procédure.
Arguments :
db_name (string) - Nom de la base de données à enregistrer.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
USE ROLE <ROLE_WITH_MANAGE_GRANTS>;
CALL samooha_by_snowflake_local_db.provider.register_db('SAMOOHA_SAMPLE_DATABASE');
register_schema¶
- Schéma:
LIBRARY
Description : Similaire à register_db
, mais opère au niveau du schéma. Vous devez disposer du privilège MANAGE GRANTS sur le schéma pour appeler cette procédure.
Cette procédure accorde les privilèges USAGE et SELECT sur le schéma au rôle SAMOOHA_APP_ROLE, qui est utilisé par l’environnement de la salle blanche pour accéder aux données.
Si vous souhaitez enregistrer un schéma d’accès géré (c’est-à-dire un schéma créé à l’aide du paramètre WITH MANAGED ACCESS), utilisez plutôt library.register_managed_access_schema
.
Important
Cette procédure n’enregistre pas les objets créés après son appel. Si de nouveaux objets ont été ajoutés à la base de données et que vous souhaitez les enregistrer également, vous devez rappeler cette procédure.
Arguments :
schema_name (Array of string) - Un tableau d’un ou plusieurs noms de schémas entièrement qualifiés à enregistrer.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.register_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
register_managed_access_schema¶
- Schéma:
LIBRARY
Description : semblable à register_schema
, mais enregistre un schéma créé à l’aide du paramètre WITH MANAGED ACCESS. Vous devez disposer des privilèges MANAGE GRANTS sur le schéma pour appeler cette procédure.
Cette procédure accorde des privilèges d’utilisation sur le schéma géré à SAMOOHA_APP_ROLE, qui est utilisé par l’environnement de la salle blanche pour accéder aux données.
Important
Cette procédure n’enregistre pas les objets créés après son appel. Si de nouveaux objets ont été ajoutés à la base de données et que vous souhaitez les enregistrer également, vous devez rappeler cette procédure.
Arguments :
schema_name (Array of string) - Un tableau d’un ou plusieurs noms de schémas pleinement qualifiés.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
register_objects¶
- Schéma:
LIBRARY
Description : Accorde l’accès en salle blanche aux tables et aux vues de tous types, les rendant ainsi disponibles pour les lier dans la salle blanche via l’appel à provider.link_datasets
. Vous pouvez enregistrer des groupes d’objets plus larges en appelant library.register_schema
, library.register_managed_access_schema
ou provider.register_db
.
Cette procédure accorde des privilèges d’utilisation sur l’objet à SAMOOHA_APP_ROLE, qui est utilisé par l’environnement de la salle blanche pour accéder aux données.
Vous devez disposer du privilège MANAGE GRANTS sur l’objet pour appeler cette procédure. Cette procédure ne peut pas être utilisée pour enregistrer une base de données.
Si vous enregistrez une vue basée sur un objet d’une autre base de données, vous devez également accorder à l’application native l’autorisation d’accéder à l’objet source.
Arguments :
object_names (array) - Tableau de noms d’objets pleinement qualifiés. Ces objets peuvent ensuite être reliés à la salle blanche.
Renvoie : (string) Message de réussite ou d’échec.
Exemples
Pour enregistrer une table et une vue :
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.register_objects(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS',
'SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS'
]
);
enable_external_tables_on_account¶
- Schéma:
LIBRARY
Description : activez l’utilisation de tables Iceberg ou externes dans toutes les clean rooms de ce compte. Doit être appelé par un ACCOUNTADMIN dans les comptes fournisseur et consommateur pour permettre à Iceberg ou à des tables externes d’être liés par l’un ou l’autre des comptes. Pour limiter cette possibilité à des clean rooms spécifiques de ce compte, appelez plutôt enable_external_tables_for_cleanroom
.
En cas de réussite, et si toutes les analyses de sécurité réussissent également, cela génère une nouvelle version du correctif de la salle blanche.
Arguments : Aucun
Renvoie : (string) Message de réussite ou d’échec. En cas de succès, il déclenche une analyse de sécurité et fournit également le numéro du correctif qui sera généré si l’analyse de sécurité réussit.
Exemple :
USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
enable_external_tables_for_cleanroom¶
- Schéma:
PROVIDER
Description : Permet aux tables Iceberg ou externes d’être liées à la clean room spécifiée dans ce compte par le fournisseur. Pour autoriser Iceberg et les tables externes pour toutes les clean rooms de ce compte, appelez plutôt enable_external_tables_on_account
.
En cas de succès, cette opération générera une nouvelle version de patch de la clean room.
Arguments :
cleanroom_name (String) - Le nom de la clean room dans laquelle le fournisseur peut lier des tables Iceberg ou externes.
Renvoie : (string) Message de réussite ou d’échec. En cas de succès, il déclenche une analyse de sécurité et fournit également le numéro du correctif qui sera généré si l’analyse de sécurité réussit.
Exemple :
CALL samooha_by_snowflake_local_db.provider.enable_external_tables_for_cleanroom(
$cleanroom_name);
unregister_db¶
- Schéma:
LIBRARY
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. Cela permet également de supprimer toute base de données du sélecteur dans l’UI des salles blanches.
Arguments :
db_name (string) - Nom de la base de données dont il faut annuler l’enregistrement.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
unregister_schema¶
- Schéma:
LIBRARY
Description : Annule l’enregistrement d’un schéma, ce qui empêche les utilisateurs de lier ses tables et ses vues dans 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éé à l’aide du paramètre WITH MANAGED ACCESS), utilisez plutôt library.unregister_managed_access_schema
.
Arguments :
schema_name (array) - Schémas à désenregistrer.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
unregister_managed_access_schema¶
- Schéma:
LIBRARY
Description : Semblable à unregister_schema
, mais annule l’enregistrement d’un schéma créé à l’aide du paramètre WITH MANAGED ACCESS.
Arguments :
schema_name (array) - Schémas gérés à désenregistrer.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
unregister_objects¶
- Schéma:
LIBRARY
Description : Révoque l’accès en salle blanche aux tables et vues de tous types. Les objets ne seront plus disponibles pour les utilisateurs dans les salles blanches gérées par ce compte.
Arguments :
object_names (array) - Tableau de noms d’objets pleinement qualifiés pour lesquels l’accès doit être révoqué.
Renvoie : (string) Message de réussite ou d’échec.
Exemples
Pour annuler l’enregistrement d’une table et d’une vue :
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
CALL samooha_by_snowflake_local_db.library.unregister_objects(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS',
'SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS'
]
);
Lier les données et les tables¶
Utilisez les commandes suivantes pour ajouter ou supprimer des tables et des vues dans une salle blanche.
link_datasets¶
- Schéma:
PROVIDER
Description : lie une table de Snowflake ou une vue dans 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 au sein de la salle blanche, évitant ainsi de devoir faire une copie de votre table. La table est toujours liée à sa source, de sorte que les mises à jour de la source seront répercutées dans la version sécurisée au sein de la salle blanche.
Tous les éléments liés ici doivent d’abord être enregistrés au niveau de la base de données, du schéma ou de l’objet.
Arguments :
cleanroom_name (string) - Nom de la salle blanche ayant accès aux objets.
tables_list (Array of string) - Liste des tables ou des vues à lier dans la salle blanche. Les objets doivent être enregistrés avant de pouvoir être liés.
consumer_list (Array of string, Optional) - S’il est présent, il permet uniquement aux consommateurs listés ici d’accéder à ces objets. En cas d’absence, permet à toute personne ayant accès à la salle blanche d’accéder à ces données.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.link_datasets(
$cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS',
'MYDB.MYSCH.EXPOSURES'
]
);
Note
Si vous liez une vue à la clean room et que cette vue est basée sur une table d’une autre base de données, vous devez enregistrer à la fois la vue et la source de la vue
unlink_datasets¶
- Schéma:
PROVIDER
Description : Supprime l’accès aux tables spécifiées dans la salle blanche spécifiée pour tous les utilisateurs. Les tables spécifiées doivent avoir été liées par le fournisseur.
Arguments :
cleanroom_name (string) - Nom de la salle blanche liée à ces ensembles de données.
tables_list (array) - Tableau de noms de tables ou de vues à dissocier de la salle blanche.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.unlink_datasets(
$cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS',
'MYDB.MYSCH.EXPOSURES'
]
);
view_provider_datasets¶
- Schéma:
PROVIDER
Description : Voir toutes les tables et vues liées à la salle blanche spécifiée par n’importe quel fournisseur de ce compte.
Arguments :
cleanroom_name (string) - Nom de la salle blanche.
Retourne : Table des objets liés à la salle blanche spécifiée, ainsi que le nom de la vue interne de la salle blanche pour chaque objet.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_provider_datasets($cleanroom_name);
restrict_table_options_to_consumers¶
- Schéma:
PROVIDER
Description : Contrôle si un consommateur particulier peut accéder à une table dans la salle blanche. Cette procédure est replace only, ce qui signifie qu’elle écrase complètement toute valeur établie lors d’un appel précédent.
Les consommateurs auxquels l’accès a été accordé via provider.link_datasets
, provider.restrict_table_options_to_consumers
, ou toute autre méthode, perdront l’accès à une table si celle-ci n’est pas spécifiée lors de l’appel de cette méthode.
Note
Les restrictions que vous créez en appelant cette procédure peuvent ne pas se comporter comme prévu dans l’UI des salles blanches. Vous ne devez pas appeler cette procédure sur une salle blanche qui peut être utilisée dans l’UI des salles blanches.
Arguments :
cleanroom_name (String) - Nom de la clean room à restreindre.
*access_details (Object) - Un objet JSON, où chaque nom de champ est le nom complet d’une table ou d’une vue, et la valeur du champ est un tableau de localisateurs de comptes des utilisateurs qui peuvent accéder à cette table ou à cette vue.
Renvoie : (string) Message de réussite ou d’échec.
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']
}
);
Gérer les politiques¶
Les politiques de jointure dans les clean rooms de données ne sont pas les mêmes que les politiques de jointure à l’échelle de Snowflake. Les politiques de jointure pour les clean rooms ne sont définies qu’en utilisant cette procédure ; les politiques de jointure définies sur des tables en dehors des clean rooms sont ignorées par les salles blanches.
En savoir plus sur les politiques de table dans les clean rooms.
view_join_policy¶
- Schéma:
PROVIDER
Description : Affiche les politiques de jointure actuellement appliquées à la salle blanche.
Arguments :
cleanroom_name (string) - Nom de la salle blanche à interroger.
Retourne : (Table) Liste des lignes joignables sur toutes les tables ou vues de la salle blanche.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_join_policy($cleanroom_name);
set_join_policy¶
- Schéma:
PROVIDER
Description : Spécifie les colonnes sur lesquelles le consommateur peut se joindre lors de l’exécution de modèles dans cette salle blanche. Notez que la politique est replace only, de sorte que si la procédure est appelée à nouveau, la politique de jointure précédemment définie est entièrement remplacée par la nouvelle.
Important
Les politiques de jointure sont appliquées uniquement lorsque le modèle applique les filtres join_policy
ou join_and_column_policy
JinjaSQL aux lignes de jointure.
Note
Les politiques de jointure dans les salles blanches de données ne sont pas les mêmes que les politiques de jointure à l’échelle de Snowflake. Les politiques de jointure pour les salles blanches ne sont définies qu’en utilisant cette procédure ; les politiques de jointure définies sur des tables en dehors des salles blanches sont ignorées par les salles blanches.
Arguments :
cleanroom_name (string) - Nom de la salle blanche où la politique de jointure doit être appliquée.
table_and_col_names (Array of string) - Nom de colonne entièrement qualifié au format
database_name.schema_name.table_or_view_name:column_name
. Notez l’utilisation correcte de . par rapport aux marques
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.set_join_policy(
$cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',
'MYDB.MYSCH.EXPOSURES:HASHED_EMAIL'
]
);
Gérer les modèles de fournisseurs¶
Utilisez les commandes suivantes pour ajouter les modèles/analyses pris en charge dans cette salle blanche.
view_added_templates¶
- Schéma:
PROVIDER
Description : Permet de voir les modèles ajoutés par le fournisseur dans la salle blanche. Il n’existe pas de méthode pour dresser la liste de tous les modèles dans toutes les salles blanches pour ce fournisseur.
Arguments :
cleanroom_name (string) - Salle blanche à interroger.
Retourne : (Table) - Liste des modèles disponibles dans la salle blanche spécifiée, avec des détails sur chaque modèle.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_added_templates($cleanroom_name);
view_template_definition¶
- Schéma:
PROVIDER
Description : Affiche les informations relatives à un modèle spécifique. Les consommateurs qui consultent un modèle de fournisseur doivent utiliser consumer.view_template_definition
.
Arguments :
cleanroom_name (string) - Nom de la salle blanche avec ce modèle.
template_name (string) - Nom du modèle sur lequel la requête d’informations porte.
Retourne : La définition du modèle (string)
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_template_definition(
$cleanroom_name,
$template_name);
add_templates¶
- Schéma:
PROVIDER
Description : Ajoute une liste d’annonces à la salle blanche. Cela ne remplace pas la liste de modèles existante.
Arguments :
cleanroom_name (string) - Nom de la salle blanche à laquelle ajouter des modèles.
template_names (Array of string) - Nom des modèles à ajouter. Il s’agit uniquement de modèles fournis par Snowflake. Pour ajouter un modèle personnalisé, appelez
add_custom_sql_template
.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.add_templates(
$cleanroom_name,
['my_custom_template']);
clear_template¶
- Schéma:
PROVIDER
Description : Supprime un modèle spécifié de la salle blanche.
Arguments :
cleanroom_name (string) - Nom de la salle blanche.
template_name (string) - Nom du modèle à supprimer de cette salle blanche.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.clear_template(
$cleanroom_name,
'prod_custom_template');
clear_all_templates¶
- Schéma:
PROVIDER
Description : Supprime tous les modèles qui ont été ajoutés à la salle blanche.
Arguments :
cleanroom_name (string) - Nom de la salle blanche dont il faut retirer tous les modèles.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.clear_all_templates($cleanroom_name);
set_column_policy¶
- Schéma:
PROVIDER
Description : Définit les colonnes des données qui sont disponibles pour un modèle spécifié dans la salle blanche en tant que lignes non jointives. Les colonnes doivent être déclarées ici ou dans set_join_policy
pour être utilisées dans la salle blanche. Les colonnes listées ici peuvent être utilisées n’importe où dans le modèle, sauf en tant que colonne de jointure. Une colonne ne peut pas être listée à la fois dans une politique de colonne et dans une politique de jointure.
Par défaut, la politique de colonne d’une table est vide, ce qui signifie qu’aucune colonne n’est visible dans les résultats.
Cette procédure a le comportement replace entirely, de sorte que chaque fois qu’elle est appelée, elle écrase entièrement la liste des colonnes précédente.
Notez que les contrôles de la politique des colonnes sont effectués en analysant la requête SQL qui doit être exécutée sur les données afin de détecter toute colonne non autorisée. Les requêtes comportant des caractères génériques peuvent ne pas être prises en compte par ces contrôles, et il convient de faire preuve de discernement lors de la conception du modèle d’analyse. Si certaines colonnes ne doivent jamais faire l’objet d’une requête, envisagez de créer une vue de votre table source qui élimine ces colonnes sensibles, et créez un lien dans cette vue à la place.
Arguments :
cleanroom_name (string) - Nom de la salle blanche.
analysis_and_table_and_cols(Array of string) - Tableau des colonnes pouvant être utilisées par les modèles. Le format est le suivant :
template_name:full_table_name:column_name
Renvoie : (string) Message de réussite ou d’échec.
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']);
-- Same example, but using a variable name for the template.
CALL samooha_by_snowflake_local_db.provider.set_column_policy($cleanroom_name,
[$template_name || ':SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:STATUS',
$template_name || ':SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
$template_name || ':SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE']);
view_column_policy¶
- Schéma:
PROVIDER
Description : Liste les politiques de colonne actuellement actives dans la salle blanche. Une politique de colonne indique quelles colonnes de table peuvent être affichées dans quels modèles.
**Arguments :**cleanroom_name (String)
Retourne : (Table) Quelles colonnes peuvent être utilisées dans quels modèles.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_column_policy($cleanroom_name);
add_custom_sql_template¶
- Schéma:
PROVIDER
Description : Ajoute un modèle personnalisé JinjaSQL dans la salle blanche. Cela permet au consommateur d’appeler le modèle. Apprenez à créer des modèles personnalisés
Vous pouvez appeler cette API plusieurs fois pour ajouter plusieurs modèles personnalisés à la salle blanche. La procédure écrase tout modèle précédent portant le même nom dans cette salle blanche.
Si le modèle est utilisé par le consommateur pour [activer les résultats au fournisseur] (/user-guide/cleanrooms/activation), 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
.Le modèle doit créer une table qui commence par
cleanroom.activation_data_
. Par exemple,CREATE TABLE cleanroom.activation_data_analysis_results AS ...
.Le modèle doit renvoyer la partie unique du nom de la table créée dans la définition, qui est la chaîne ajoutée à
cleanroom.activation_data_
. Par exemple,return 'data_analysis_results'
.
Arguments :
cleanroom_name (string) - Nom de la salle blanche à laquelle ce modèle est appliqué.
template_name (string) - Nom du modèle. Il doit s’agir de lettres minuscules, de chiffres, d’espaces ou de traits de soulignement. Les modèles d’activation doivent avoir un nom commençant par « activation ».
template (string) - Le modèle JinjaSQL.
sensitivity (Float, Optional) - Si la confidentialité différentielle est activée pour cette clean room, elle contrôle la quantité de bruit de confidentialité différentielle appliquée aux données renvoyées par ce modèle. Doit être un nombre supérieur à 0. La valeur par défaut est 1.0. La tâche de confidentialité différentielle doit être exécutée dans cette clean room pour que cet argument ait un effet.
consumer_locators (Array of string, Optional) - Un tableau d’un ou plusieurs localisateurs de comptes. S’il est présent, ce modèle sera ajouté à la salle blanche uniquement pour ces comptes. Vous pouvez modifier cette liste ultérieurement en annonçant
provider.restrict_template_options_to_consumers
. Si vous ne spécifiez pas de liste de consommateurs, tous les consommateurs peuvent utiliser le modèle personnalisé dans la salle blanche spécifiée.is_obfuscated (Boolean, Optional) - Si TRUE, les consommateurs ne peuvent pas voir le corps du modèle. Notez que vous devez utiliser Snowflake Enterprise Edition ou une version plus récente pour exécuter un modèle obscurci. Si ce modèle est utilisé pour une analyse gérée par le fournisseur, le consommateur doit approuver à nouveau la requête d’analyse chaque fois que vous modifiez l’état
is_obfuscated
.is_obfuscated
ne peut pas être utilisé en même temps quesensitivity
.
Renvoie : (string) Message de réussite ou d’échec.
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 %};
$$);
add_ui_form_customizations¶
- Schéma:
PROVIDER
Description : définit un formulaire de personnalisation pour un modèle dans une salle blanche lorsque la salle blanche est exécutée dans l’UI des salles blanches. Ceci est utile pour permettre aux consommateurs de choisir les paramètres du modèle tels que les tables ou les colonnes. Vous devez au moins spécifier des valeurs pour display_name
, description
et methodology
dans l’argument template_information
.
Il est recommandé de placer les éléments de sélection de table avant les éléments de sélection de colonne, en particulier lorsque les sélecteurs de colonne se remplissent sur la base de la sélection de table.
Apprenez à concevoir des formulaires de saisie pour des modèles personnalisés.
Vous devez mettre à jour la clean room après avoir appelé cette fonction. Si vous n’appelez pas provider.create_or_update_cleanroom_listing
après avoir mis à jour l’UI, les collaborateurs ne verront aucune mise à jour.
Arguments :
cleanroom_name (string) : Le nom de la salle blanche qui contient ce modèle. La forme soumise s’applique uniquement au modèle spécifié dans la salle blanche spécifiée.
template_name (String) : Nom du modèle auquel cette UI s’applique. Il ne s’agit pas du titre visible par l’utilisateur, qui est spécifié à l’aide du champ
template_information.display_name
.template_information (Dict) : méta-informations sur le modèle à afficher dans l’UI des salles blanches. Les propriétés suivantes doivent ou peuvent être définies :
display_name
(Requis) : nom d’affichage du modèle dans l’UI des salles blanches.description
(Requis) : Description du modèle.methodology
(Requis) : description de tous les arguments, et quel est le résultat.warehouse_hints
(Objet) : Recommande le type d’entrepôt à utiliser pour effectuer l’analyse. Il s’agit d’un objet comportant les champs suivants :warehouse_size
: Voir warehouse_size dans CREATE WAREHOUSE pour les valeurs valides.snowpark_optimized
(Boolean) : indique s’il faut utiliser un entrepôt optimisé pour Snowpark pour traiter la requête. Pour la plupart des cas d’utilisation de machine learning, Snowflake recommande TRUE.
render_table_dropdowns
(Objet) : indique s’il faut afficher les listes déroulantes par défaut qui permettent à l’utilisateur de sélectionner les tables du fournisseur ou du consommateur à utiliser dans la requête. Il s’agit d’un objet comportant les champs suivants :render_consumer_table_dropdown
: (Boolean) Si TRUE, afficher le sélecteur de table consommateur par défaut. Si FALSE, cacher le sélecteur de tables des consommateurs. Le modèle peut accéder aux valeurs choisies sous forme de liste à l’aide de la variable de modèlemy_table
. Si un élément définitreferences=CONSUMER_TABLES
, la valeur par défaut est FALSE, sinon la valeur par défaut est TRUE.render_provider_table_dropdown
: (Boolean) si TRUE, afficher le sélecteur de table du fournisseur par défaut. Si FALSE, cacher le sélecteur de tables du fournisseur. Le modèle peut accéder aux valeurs choisies sous forme de liste à l’aide de la variable de modèlesource_table
. Si un élément définitreferences=PROVIDER_TABLES
, la valeur par défaut est FALSE, sinon la valeur par défaut est TRUE.
activation_template_name
: (String) nom d’un modèle d’activation dans cette salle blanche. Utiliser le nom du modèle sans préfixecleanroom
. En savoir plus sur les modèles d’activation.enabled_activations
: (String) Quel type d’activités sont activées. Valeurs possibles :consommateur
,fournisseur
. Pas de valeur par défaut ; doit être fourni siactivation_template_name
est spécifié.
details (Dict, facultatif) : définit les champs d’entrée configurables par l’utilisateur qui transmettent des valeurs au modèle. Il s’agit d’un dictionnaire de paires clé/objet, chaque paire représentant un élément de formulaire. La clé est un nom de variable disponible pour le modèle JinjaSQL lié. La valeur est un objet qui définit l’élément de formulaire. Si une variable de modèle n’a pas d’élément de formulaire équivalent défini ici, l’interface de salles blanches génère automatiquement un élément de formulaire par défaut. Chaque objet peut définir les champs suivants :
<field_name>: { ['display_name': <string>,] ['order': <number>,] ['description': <string>,] ['type': <enum>,] ['default': <value>,] ['choices': <string array>,] ['infoMessage': <string>,] ['size': <enum>,] ['required': <bool>,] ['group': <string>,] ['references': <array of string>,] ['provider_parent_table_field': <string>,] ['consumer_parent_table_field': <string>] }
display_name
: Texte de l’étiquette pour cet élément dans la forme d’UI.order
: ordre basé sur 1 dans lequel cet élément doit être affiché dans le formulaire. Si la valeur du champ n’est pas spécifiée, les éléments seront rendus dans l’ordre dans lequel ils apparaissent dans l’objet.description
: description de la fonction de l’élément, indiquée sous l’étiquette. Fournissez ici une aide brève ou des exemples. Si vous n’en fournissez pas, rien ne sera affiché.type
: Le type de l’élément UI. Si les références sont spécifiées pour ce champ d’entrée, omettez cette entrée (le type est déterminé pour vous). Valeurs prises en charge :any
(Défaut) : Champ de saisie de texte normal.boolean
: Sélecteur vrai/fauxinteger
: utilisez les flèches pour changer le nombremultiselect
: Sélectionner plusieurs éléments dans une liste déroulantedropdown
: Sélectionner un élément dans une liste déroulantedate
: sélecteur de date
default
: Valeur par défaut de cet élémentchoices
: (Array of string) Liste de choix pour les éléments dropdown et multiselectinfoMessage
: Texte en surimpression informatif affiché à côté de l’élément. Si non fourni, aucune info-bulle n’est fournie.taille
: Taille de l’élément. Valeurs prises en charge :XS
,S
,M
,L
,XL
required
: Indique si une valeur est exigée par l’utilisateur. Spécifiez TRUE ou FALSE.group
: un nom de groupe, utilisé pour regrouper des éléments dans l’UI. Utilisez le même nom de groupe pour les éléments qui doivent être regroupés dans l’UI. 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 d’informations sur l’utilisation de ces variables spéciales lors de la définition du modèle personnalisé, voir provider.add_custom_sql_template.references
: renseigne une liste déroulante avec des tables ou des colonnes du type spécifié dans la salle blanche. Si ce champ est utilisé, letype
doit êtremultiselect
oudropdown
. Les valeurs de chaîne suivantes sont prises en charge :PROVIDER_TABLES
: répertorie toutes les tables du fournisseur dans la salle blanche. Si spécifié,render_table_dropdowns.r render_provider_table_dropdown
doit être FALSE.PROVIDER_JOIN_POLICY
: répertorie toutes les colonnes dans la politique de jointure du fournisseur pour la table actuellement sélectionnée dans l’élémentprovider_parent_table_field
.PROVIDER_COLUMN_POLICY
: répertorie toutes les colonnes dans la politique de colonnes du fournisseur pour le modèle actuel et la table sélectionnée dans l’élémentprovider_parent_table_field
.PROVIDER_ACTIVATION_POLICY
: répertorie toutes les colonnes dans la politique d’activation du fournisseur.CONSUMER_TABLES
: répertorie toutes les tables de consommateurs dans la salle blanche. Si spécifié,render_table_dropdowns.render_consumer_table_dropdown
doit être FALSE.CONSUMER_COLUMNS
: répertorie toutes les colonnes dans la table du consommateur spécifiée parconsumer_parent_table_field
. Vous ne devez pas utiliser de références à des colonnes de consommateurs dans des modèles gérés par le fournisseur, car le consommateur peut appliquer des politiques de jointure et de colonne à ces colonnes, utilisezCONSUMER_JOIN_POLICY
ouCONSUMER_COLUMN_POLICY
pour les modèles gérés par le fournisseur.CONSUMER_JOIN_POLICY
: répertorie toutes les colonnes dans la politique de jointure du consommateur pour la table sélectionnée dans l’élémentconsumer_parent_table_field
.CONSUMER_COLUMN_POLICY
: répertorie toutes les colonnes dans la politique de colonnes du consommateur pour le modèle actuel et la table sélectionnée dans le champconsumer_parent_table_field
.
provider_parent_table_field
: Le nom de l’élément UI dans lequel l’utilisateur sélectionne une table de fournisseurs ; ne fournissez pas le nom de la table elle-même ici. Utilisez uniquement lorsquereferences
est défini surPROVIDER_COLUMN_POLICY
ouPROVIDER_JOIN_POLICY
. Pour faire référence au sélecteur de table du fournisseur par défaut, spécifiezsource_table
ici et définissezrender_table_dropdowns.render_provider_table_dropdown
sur TRUE.consumer_parent_table_field
: le nom de l’élément UI dans lequel l’utilisateur sélectionne une table de fournisseurs ; ne fournissez pas le nom de la table elle-même ici. Utilisez uniquement lorsquereferences
est défini surCONSUMER_COLUMNS
,CONSUMER_JOIN_POLICY
, ouCONSUMER_COLUMN_POLICY
. Pour faire référence au sélecteur de table consommateur par défaut, indiquezmy_table
ici et définissezrender_table_dropdowns.render_provider_table_dropdown
sur TRUE.
output_config (Dict) : définit la manière d’afficher graphiquement les résultats du modèle dans l’application Web. S’il n’est pas fourni, les résultats ne sont pas affichés dans un graphique, mais uniquement dans une table. Si vous ne souhaitez pas de graphique, fournissez un objet vide {} pour cet argument. Champs autorisés :
measure_columns
: noms des colonnes contenant des mesures et des dimensions à utiliser dans le graphique généré par l’UI des salles blanches.default_output_type
: Le format par défaut pour l’affichage des résultats. L’utilisateur pourra généralement modifier le format d’affichage dans l’UI si les données sont dans le bon format. Types prises en charge :TABLE
: (Default) Format tabulaireBAR
: Diagramme en barres, qui permet de comparer différentes catégoriesLINE
: Le graphique en ligne, qui permet de montrer des tendances dans le temps ou des données continuesPIE
: Le diagramme circulaire, qui permet d’illustrer des proportions ou des pourcentages
Le tableau suivant montre une matrice de valeurs autorisées dans l’objet détails
pour les valeurs qui peuvent entrer en conflit :
|
|
|
|
|
|
---|---|---|---|---|---|
|
|
Non autorisé |
Non autorisé |
FALSE |
TRUE ou FALSE |
|
|
Non autorisé |
TRUE |
TRUE ou FALSE |
|
|
|
Non autorisé |
TRUE ou FALSE |
TRUE ou FALSE |
|
|
|
Non autorisé |
TRUE |
TRUE ou FALSE |
|
|
|
Non autorisé |
TRUE ou FALSE |
TRUE ou FALSE |
|
|
Non autorisé |
Non autorisé |
TRUE ou FALSE |
FALSE |
|
|
Non autorisé |
|
TRUE ou FALSE |
TRUE |
|
|
Non autorisé |
|
TRUE ou FALSE |
TRUE |
|
|
Non autorisé |
|
TRUE ou FALSE |
TRUE |
|
|
Non autorisé |
Non autorisé |
TRUE ou FALSE |
TRUE ou FALSE |
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
-- Specify the display name, description, and warehouse, and hide the default table dropdown lists.
-- Define the following two fields in the UI:
-- A provider table selector that shows all provider tables. Chosen tables can be accessed by the template with the variable 'a_provider_table'
-- (This dropdown list is equivalent to setting `render_table_dropdowns.render_provider_table_dropdown: True`)
-- A column selector for the tables chosen in 'a_provider_table'. Chosen columns can be accessed by the template with the variable 'a_provider_col'
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
},
'activation_template_name': 'activation_my_template',
'enabled_activations': ['consumer', 'provider']
},
{
'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'
}
);
restrict_template_options_to_consumers¶
- Schéma:
PROVIDER
Description : Contrôle les utilisateurs qui peuvent accéder à un modèle donné dans une salle blanche donnée. Cette procédure remplace toute liste d’accès spécifiée précédemment par une autre procédure pour une paire salle blanche/modèle.
Note
Les restrictions que vous créez en appelant cette procédure peuvent ne pas se comporter comme prévu dans l’UI des salles blanches. Vous ne devez pas appeler cette procédure sur une salle blanche qui peut être utilisée dans l’UI des salles blanches.
Arguments :
cleanroom_name (string) - Le nom de la salle blanche.
access_details(JSON object) - Le nom d’un modèle et les utilisateurs qui peuvent accéder à ce modèle dans cette salle blanche. Si un modèle est spécifié, seuls les utilisateurs listés ici peuvent accéder à ce modèle dans cette salle blanche. Il s’agit d’un objet avec un objet enfant par modèle dans le format suivant :
\-'{template_name':['user1_locator','user2_locator','userN_locator']}
Renvoie : (string) Message de réussite ou d’échec.
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 du consommateur en ce sens. Pour plus d’informations, voir Modèles personnalisés rédigés par le consommateur.
list_pending_template_requests¶
- Schéma:
PROVIDER
Description : Annonce toutes les requêtes non approuvées des consommateurs qui veulent ajouter un modèle défini par le consommateur à une clean room. Cela inclut les requêtes en attente, approuvées et rejetées. Utilisez cette procédure pour vérifier les requêtes en attente et les approuver (provider.approve_template_request
) ou les rejeter (provider.reject_template_request
).
Arguments :
cleanroom_name (string) - Voir les requêtes des consommateurs pour ajouter un modèle à cette salle blanche.
Retourne : Une table contenant notamment les valeurs suivantes :
request_id (String) - ID de la requête, nécessaire pour accepter ou rejeter la requête.
consumer_locator (String) - Localisateur du compte de la personne qui fait la demande.
template_name (String) - Nom du modèle fourni par le consommateur.
template_definition (String) - Définition complète du modèle proposé par le consommateur.
Exemple :
CALL samooha_by_snowflake_local_db.provider.list_pending_template_requests($template_name);
list_template_requests¶
- Schéma:
PROVIDER
Description : Liste 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. Utilisez cela pour vérifier les requêtes en attente et les approuver (provider.approve_template_request
) ou les rejeter (provider.reject_template_request
).
Arguments :
cleanroom_name (string) - Voir les requêtes des consommateurs pour ajouter un modèle à cette salle blanche.
Retourne : Une table contenant notamment les valeurs suivantes :
request_id (String) - ID de la requête, nécessaire pour accepter ou rejeter la requête.
consumer_identifier (String) - Localisateur de compte de la personne qui fait la demande.
template_name (String) - Nom du modèle fourni par le consommateur.
template_definition (String) - Définition complète du modèle proposé par le consommateur.
status (string) - Statut de la requête : PENDING, APPROVED, REJECTED.
Exemple :
CALL samooha_by_snowflake_local_db.provider.list_template_requests($template_name);
approve_template_request¶
- Schéma:
PROVIDER
Description : Approuve une requête visant à ajouter un modèle à la salle blanche.
Arguments :
cleanroom_name (string) - Nom de la salle blanche à laquelle l’utilisateur souhaite ajouter le modèle.
request_id (string) - ID de la requête à approuver. Appelez
fournisseur.list_template_requests
pour voir les IDs de requête.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.approve_template_request($cleanroom_name,
'815324e5-54f2-4039-b5fb-bb0613846a5b');
approve_multiple_template_requests¶
- Schéma:
PROVIDER
Description : Approuve plusieurs requêtes de consommateurs pour ajouter un modèle à une clean room. Toutes les requêtes doivent concerner une seule clean room.
Arguments :
cleanroom_name (String) - Le nom de la clean room à laquelle cette requête s’applique.
request_ids (Array of strings) - Les IDs de toutes les requêtes de modèles à approuver. Pour obtenir un ID de requête, appelez
provider.list_template_requests
.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.approve_multiple_template_requests(
$cleanroom_name,
['cfd538e2-3a17-48e3-9773-14275e7d2cc9',
'2982fb0a-02b7-496b-b1c1-56e6578f5eac']);
reject_template_request¶
- Schéma:
PROVIDER
Description : Rejette une requête visant à ajouter un modèle à une salle blanche.
Arguments :
cleanroom_name (string) - Nom de la salle blanche à laquelle l’utilisateur souhaite ajouter le modèle.
request_id (string) - ID de la requête à rejeter. Appelez
fournisseur.list_template_requests
pour voir les IDs de requête.reason_for_rejection (string) - Raison du rejet de la requête.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.reject_template_request(
$cleanroom_name,
'cfd538e2-3a17-48e3-9773-14275e7d2cc9',
'Failed security assessment');
reject_multiple_template_requests¶
- Schéma:
PROVIDER
Description : Rejette plusieurs requêtes de consommateurs visant à ajouter un modèle à une clean room. Toutes les requêtes doivent concerner la même clean room.
Arguments :
cleanroom_name (string) - Nom de la clean room à laquelle cette requête s’applique.
rejected_templates (array of objects) - Un tableau d’objets avec les champs suivants, un par rejet :
request_id (string) - ID de la requête à rejeter. Pour obtenir un ID de requête, appelez
provider.list_template_requests
.reason_for_rejection(string) - Description en texte libre de la raison pour laquelle la requête est rejetée.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.reject_multiple_template_requests($cleanroom_name,
[OBJECT_CONSTRUCT('request_id', '815324e5-54f2-4039-b5fb-bb0613846a5b', 'reason_for_rejection', 'Failed security assessment'),
OBJECT_CONSTRUCT('request_id', '2982fb0a-02b7-496b-b1c1-56e6578f5eac', 'reason_for_rejection', 'Some other reason')
]);
Chaînes de modèles¶
Utilisez les commandes suivantes pour créer et gérer des chaînes de templates.
add_template_chain¶
- Schéma:
PROVIDER
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. Une fois qu’une chaîne de modèles est créée, elle ne peut pas être modifiée, mais vous pouvez créer une nouvelle chaîne de modèles portant le même nom pour remplacer l’ancienne.
Arguments :
cleanroom_name (string) - Nom de la salle blanche où la chaîne de modèles doit être ajoutée.
template_chain_name (string) - Nom de la chaîne de modèles.
templates(Array of objects) - Tableau d’objets, une par modèle. L’objet 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à être ajouté à la salle blanche en appelantprovider.add_template_chain
.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) - Lorsquecache_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) - Lorsquecache_results
= TRUE, spécifie le nom du paramètre Jinja que les autres modèles doivent inclure pour accepter les résultats stockés dansoutput_table_name
.cache_expiration_hours
(integer) - Lorsquecache_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.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.add_template_chain(
$cleanroom_name,
'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
}
]
);
view_added_template_chains¶
- Schéma:
PROVIDER
Description : Liste les chaînes de modèle dans la salle blanche spécifiée.
Arguments :
cleanroom_name (string) - Nom de la salle blanche.
Retourne : (Table) Description de toutes les chaînes de modèles ajoutées à cette salle blanche.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_added_template_chains($cleanroom_name);
view_template_chain_definition¶
- Schéma:
PROVIDER
Description : Renvoie la définition d’une chaîne de modèles.
Arguments :
cleanroom_name (string) - Nom de la salle blanche associée à cette chaîne de modèles.
template_chain_name (string) - Nom de la chaîne de modèles associée à cette salle blanche.
Retourne : (Table) Description de la chaîne de modèles spécifiée.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_template_chain_definition(
$cleanroom_name,
'my_chain');
clear_template_chain¶
- Schéma:
PROVIDER
Description : Supprime une chaîne de modèles spécifiée d’une salle blanche spécifiée. La chaîne n’est stockée nulle part. Si vous souhaitez recréer la chaîne, vous devez la recréer à partir de zéro.
Arguments :
cleanroom_name (string) - La salle blanche à laquelle est attribuée cette chaîne de modèles.
template_chain_name (string) - La chaîne de modèles à retirer de cette salle blanche.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.clear_template_chain($cleanroom_name, 'my_chain');
Analyses multi-fournisseurs¶
Ces procédures permettent une analyse multi-fournisseurs.
enable_multiprovider_computation¶
- Schéma:
PROVIDER
Description : cette procédure permet d’utiliser les tables de votre salle blanche en combinaison avec le modèle spécifié, lorsqu’il est demandé par l’utilisateur spécifié, et en combinaison avec les tables des salles blanches spécifiées. Cette procédure permet à un consommateur d’exécuter une requête sur les données de plusieurs salles blanches. Cette procédure n’approuve pas automatiquement ces requêtes, mais permet au processus d’approbation manuel ou automatisé de commencer pour l’utilisateur spécifié et les salles blanches en enregistrant les requêtes dans le journal des requêtes multi-fournisseurs pour cette salle blanche.
Tous les appels faits à cette clean room en utilisant consumer.prepare_multiprovider_flow
seront sauvegardés et visibles avant même que vous n’appeliez enable_multiprovider_computation
pour cette clean room.
Pour permettre à un consommateur d’accéder à plusieurs clean rooms de votre compte, indiquez une clean room dans l’argument cleanroom_name
, et les autres dans l’argument approved_other_cleanrooms
.
Cette procédure exige la mise en place d’une politique de jonction dans la clean room.
Lorsqu’une requête est connectée, l’approbation intervient conformément au flux de requêtes pour un utilisateur et une requête donnés.
Il n’existe aucun moyen de désactiver la connexion des requêtes après son lancement, mais vous pouvez suspendre l’approbation automatique pour un utilisateur donné (si vous l’avez autorisé en appelant provider.suspend_multiprovider_tasks
), puis ne plus approuver aucune requête.
Arguments :
cleanroom_name (string) - Nom d’une salle blanche dont vous êtes propriétaire. Toutes les données de cette clean room peuvent être partagées avec les salles blanches listées sur
approved_other_cleanrooms
dans le cadre de requêtes multi-fournisseurs parconsumer_account
.consumer_account (string) - Localisateur de compte d’un consommateur autorisé à faire la requête et, en cas d’approbation, à exécuter une requête sur toutes les tables de cette salle blanche combinées aux données de toutes les salles blanches annoncées dans
approved_other_cleanrooms
.approved_other_cleanrooms (Array of string) - Tableau de noms de salles blanches entièrement qualifiés avec lesquels les données de cette salle blanche peuvent être combinées. Le format de chaque entrée est
provider_org_name.provider_account_name.cleanroom_name
. Important : Indiquez le nom du compte ,, et non le localisateur de compte , dans chaque description de clean room.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.enable_multiprovider_computation(
$cleanroom_name,
$consumer_account_locator,
<org_name>.<account_locator>.<cleanroom_name>);
view_multiprovider_requests¶
- Schéma:
PROVIDER
Description : Affiche toutes les requêtes d’analyse multifournisseurs d’un compte et d’une salle blanche donnés. Cela comprend les requêtes approuvées et les requêtes refusées. Les fournisseurs peuvent utiliser cette procédure pour interroger les requêtes afin de les approuver manuellement en appelant provider.process_multiprovider_request
, ou comme moyen de voir toutes les requêtes d’un consommateur donné dans une clean room donnée.
Vous devez appeler enable_multiprovider_computation
pour cette clean room et ce compte consommateur avant de pouvoir appeler view_multiprovider_requests
.
Arguments :
cleanroom_name (String) - Affiche les requêtes du consommateur spécifié provenant de cette clean room.
consumer_account (String) - Afficher les requêtes de ce localisateur de compte consommateur à partir de la clean room spécifiée.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_multiprovider_requests(
$cleanroom_name,
$consumer_locator);
process_multiprovider_request¶
- Schéma:
PROVIDER
Description : Approuve l’exécution de la requête multi-fournisseurs spécifiée, si toutes les vérifications sont positives. Les contrôles portent notamment sur l’ancienneté de la requête et sur l’approbation ou non de la requête par le fournisseur lors d’un appel précédent à provider.enable_multiprovider_computation
. Le consommateur doit encore appeler consumer.execute_multiprovider_flow
pour exécuter la requête. Une requête sera abandonnée au bout de quatre heures si elle n’est pas approuvée.
Par défaut, toutes les requêtes multi-fournisseurs doivent être traitées à l’aide de cette procédure. Si vous préférez que toutes les requêtes de ce consommateur dans cette clean room soient approuvées automatiquement, indiquez -1
pour request_id
. Si vous souhaitez que toutes les requêtes de tous les consommateurs de cette clean room soient approuvées, appelez provider.resume_multiprovider_tasks
. Apprenez à révoquer les requêtes précédemment approuvées.
Une fois la requête évaluée, la requête et le statut de l’évaluation sont inscrits dans la table de connexion pour cette clean room.
Arguments :
cleanroom_name (string) - Le nom de votre salle blanche, qu’un consommateur demande à inclure dans une analyse multifournisseur.
consumer_account (string) - L’emplacement du compte consommateur de l’utilisateur requérant une analyse multifournisseur. Ce localisateur doit avoir été approuvé pour cette salle blanche et les autres salles blanches listées dans la requête dans un appel à
provider.enable_multiprovider_computation
.request_id (string) - ID de requête à approuver, provenant de
provider.view_multiprovider_requests
. Passez à-1
pour approuver toutes les requêtes pour ce consommateur dans cette clean room.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.process_multiprovider_request(
$cleanroom_name_1,
$consumer_account_locator,
$request_id);
suspend_multiprovider_tasks¶
- Schéma:
PROVIDER
Description : Arrête l’examen et l’approbation automatisés (pour les requêtes qualifiées) dans une requête multi-fournisseurs dans la clean room spécifiée. Les requêtes multi-fournisseurs sont toujours activées pour la clean room, mais chaque requête doit désormais être explicitement approuvée par le fournisseur en appelant provider.process_multiprovider_request
.
Le statut par défaut pour toutes les clean rooms est que l’approbation automatique multi-fournisseurs est désactivée. Pour l’activer, appelez provider.resume_multiprovider_tasks
.
Arguments :
cleanroom_name (string) - Nom de la salle blanche.
consumer_account (String) - Emplacement du compte du consommateur dont les requêtes multi-fournisseurs doivent être suspendues pour tous les modèles de cette clean room. Les requêtes ultérieures de cet utilisateur dans cette clean room seront abandonnées.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.suspend_multiprovider_tasks(
$cleanroom_name,
$consumer_locator);
resume_multiprovider_tasks¶
- Schéma:
PROVIDER
Description : permet d’examiner et d’approuver automatiquement les analyses multi-fournisseurs (afin de qualifier les requêtes) pour l’utilisateur donné dans la salle blanche donnée. L’examen automatisé est désactivé par défaut pour une salle blanche.
Pour arrêter l’approbation automatique, appelez provider.suspend_multiprovider_tasks
.
Arguments :
cleanroom_name (string) - Nom de la salle blanche.
consumer_account (String) - Emplacement du compte du consommateur dont les requêtes multi-fournisseurs dans cette clean room seront désormais mises en file d’attente.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.resume_multiprovider_tasks(
$cleanroom_name,
$consumer_locator);
Activation¶
L’activation signifie l’exportation des résultats vers un fournisseur, un consommateur ou un tiers. Pour en savoir plus sur l’activation.
set_activation_policy¶
- Schéma:
PROVIDER
Description : Définit les colonnes du fournisseur qui peuvent être utilisées dans un modèle d’activation. Seules les colonnes listées dans une politique d’activation peuvent être activées à partir de l’ensemble des données du fournisseur. L’absence de paramètre dans la politique d’activation empêche l’activation des données du fournisseur.
L’appel à cette procédure annule toute politique d’activation antérieure établie par le fournisseur.
Arguments :
cleanroom_name (string) - Nom de la salle blanche où l’activation doit être autorisée.
columns (Array of string) - Seules les colonnes listées ici peuvent être utilisées dans un modèle d’activation dans cette salle blanche. Le format des noms de colonnes est le suivant :
template_name:fully_qualified_table_name:column_name
. Notez l’utilisation correcte des marqueurs point . et deux points :.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.set_activation_policy('my_cleanroom', [
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:REGION_CODE' ]);
request_provider_activation_consent¶
- Schéma:
PROVIDER
Description : Envoie une requête au consommateur pour permettre au fournisseur d’exécuter un modèle spécifié et de pousser les résultats vers le compte Snowflake du fournisseur. En arrière-plan, il ajoute un modèle à la liste des modèles d’activation des fournisseurs dans la clean room. Une fois qu’un modèle est désigné comme modèle d’activation, il ne peut être utilisé que dans les requêtes d’activation.
Arguments :
cleanroom_name (string) - Salle blanche qui contient le modèle d’activation.
template_name (string) - Nom du modèle d’activation pour lequel une requête d’approbation doit être introduite. Ce modèle doit avoir été ajouté à la salle blanche lors d’un appel précédent. Le nom du modèle doit commencer par « activation_ ».
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.request_provider_activation_consent(
$cleanroom_name, 'activation_my_activation_template');
update_activation_warehouse¶
- Schéma:
PROVIDER
Description : Indiquez la taille de l’entrepôt à utiliser lors du déchiffrement des résultats dans la table de sortie lors d’une activation du fournisseur. L’entrepôt utilisé pour le déchiffrement est DCR_ACTIVATION_WAREHOUSE. Le fournisseur paie pour cet entrepôt.
Arguments :
size (String) - Taille de l’entrepôt. Choisissez l’une des valeurs WAREHOUSE_SIZE de la commande CREATE WAREHOUSE.
Retourne : (String) message de réussite.
Exemple :
CALL samooha_by_snowflake_local_db.provider.update_activation_warehouse('LARGE');
dcr_health.provider_run_provider_activation_history¶
Description : renvoie un historique des demandes d’activation des fournisseurs pour la salle blanche spécifiée. Les demandes d’activation de fournisseur initiées à la fois par le fournisseur et par le consommateur sont affichées. Cette procédure fournit des informations supplémentaires pour déboguer les problèmes liés à l’activation du fournisseur.
Arguments :
cleanroom_name (String) - Nom de la salle blanche dans laquelle l’activation a été demandée. Vous devez être un fournisseur ou un consommateur dans cette salle blanche.
Renvois : (Table) - Une liste de requêtes d’activation avec des informations sur chaque élément, y compris le modèle et le nom du segment, le statut, le localisateur de compte du consommateur et tout message d’erreur renvoyé par la requête.
Exemple :
CALL samooha_by_snowflake_local_db.dcr_health.provider_run_provider_activation_history(
$cleanroom_name);
view_external_activation_history¶
- Schéma:
LIBRARY
Description : vue de l’historique des requêtes d’activation dans le compte courant.
Arguments : Aucun
Retourne : une table avec les détails et le statut des requêtes d’activation.
Exemple:
CALL samooha_by_snowflake_local_db.library.view_external_activation_history();
Exécuter des analyses en tant que fournisseur¶
Découvrez comment exécuter une analyse fournisseur.
enable_provider_run_analysis¶
- Schéma:
PROVIDER
Description : Permet au fournisseur (créateur de la salle blanche) d’exécuter des analyses dans une salle blanche spécifiée. Cette fonction est désactivée par défaut. Le consommateur doit ensuite appeler consumer.enable_templates_for_provider_run
pour activer les analyses effectuées par le fournisseur pour des modèles spécifiques dans la clean room. Ensuite, le fournisseur peut exécuter une analyse en appelant provider.submit_analysis_request
.
En savoir plus sur les analyses effectuées par les fournisseurs.
Important
Cette procédure doit être appelée après provider.add_consumers
et avant qu’un consommateur n’installe une salle blanche. Si cette configuration est modifiée alors que le consommateur a déjà installé sa salle blanche, il doit la réinstaller pour qu’elle corresponde à la nouvelle configuration.
Arguments :
cleanroom_name (string) - Nom de la salle blanche qui doit permettre l’analyse par le fournisseur.
consumer_accounts (Array of string) - Emplacements des comptes de tous les consommateurs qui ont ajouté des données à cette salle blanche.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.enable_provider_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
disable_provider_run_analysis¶
- Schéma:
PROVIDER
Description : Empêche le fournisseur (créateur de la salle blanche) d’effectuer une analyse dans la salle blanche (cette fonction est désactivée par défaut).
Important
Cette procédure doit être appelée après provider.add_consumers
et avant qu’un consommateur n’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.
Arguments :
cleanroom_name (string) - Nom de la salle blanche dans laquelle l’analyse par le fournisseur doit être désactivée.
consumer_account_locator (string) - Même liste de noms de comptes de consommateurs que celle transmise à
provider.enable_provider_run_analysis
.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.disable_provider_run_analysis(
$cleanroom_name,
['<CONSUMER_ACCOUNT_LOCATOR>']);
is_provider_run_enabled¶
- Schéma:
LIBRARY
Description : Vérifie que cette salle blanche autorise les analyses effectuées par le fournisseur.
Arguments :
cleanroom_name (string) - Nom de la salle blanche à vérifier.
Retourne : (string) Indique si cette salle blanche autorise ou non les analyses effectuées par le fournisseur.
Exemple :
CALL samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
view_warehouse_sizes_for_template¶
- Schéma:
PROVIDER
Description : Voir la liste des tailles et des types d’entrepôts disponibles pour les analyses effectuées par le fournisseur avec un modèle donné. Le consommateur doit d’abord remplir la liste dans son appel à consumer.enable_templates_for_provider_run
.
Arguments :
consumer_account (String) - Emplacement du compte du consommateur qui approuvera la requête gérée par le fournisseur.
cleanroom_name (string) - Nom de la salle blanche.
template_name (String) - Nom du modèle que le fournisseur veut exécuter.
consumer_account (String) - Emplacement du compte du consommateur qui approuvera la requête gérée par le fournisseur.
Retours : Une table des tailles et types d’entrepôts autorisés. Les chaînes de type et de taille d’entrepôt prises en charge sont celles utilisées par les propriétés WAREHOUSE_TYPE et WAREHOUSE_SIZE dans la commande CREATE WAREHOUSE.
Exemple :
CALL samooha_by_snowflake_local_db.PROVIDER.VIEW_WAREHOUSE_SIZES_FOR_TEMPLATE(
$cleanroom_name,
$template_name,
$consumer_account_loc);
submit_analysis_request¶
- Schéma:
PROVIDER
Description : Soumet une analyse à exécuter dans la clean room. Toutes les conditions suivantes doivent être remplies avant d’appeler cette procédure :
Le fournisseur doit avoir activé les analyses effectuées par le fournisseur dans cette salle blanche.
Le consommateur doit disposer d”analyses approuvées par le fournisseur pour le modèle spécifié.
Toutes les politiques de jointure et de colonne sur les données du consommateur et le modèle doivent être respectées.
Le modèle est exécuté dans la salle blanche et les résultats sont stockés en toute sécurité à l’intérieur de la salle blanche. Les résultats sont chiffrés, de sorte que seul le fournisseur peut les consulter.
Arguments :
cleanroom_name (string) - Nom de la salle blanche où le modèle doit être exécuté.
consumer_account_locator (string) - Compte du consommateur de cette salle blanche qui a autorisé les analyses effectuées par le fournisseur en appelant
consumer.enable_templates_for_provider_run
.template_name (string) - Nom du modèle à exécuter.
provider_tables (array) - Liste des tables de fournisseurs à exposer au modèle. Cette liste alimentera la variable de tableau
source_table
.consumer_tables (array) - Liste des tables de consommateurs à exposer au modèle. Cette liste alimentera la variable de tableau
my_table
.analysis_arguments (object) - Objet JSON où chaque clé est un nom d’argument utilisé dans le modèle que vous avez créé. Si vous souhaitez utiliser un type et une taille d’entrepôt spécifiques, choisissez un type et une taille annoncés par
provider.view_warehouse_sizes_for_template
et spécifiez-les ensuite à l’aide des champs suivants :warehouse_type
(String) - Type d’entrepôt pris en charge par le consommateur pour les analyses effectuées par le fournisseur avec le modèle spécifié.warehouse_size
(String) - Taille de l’entrepôt prise en charge par le consommateur pour les analyses effectuées par le fournisseur avec le modèle spécifié.
Retourne : (string) Un ID de requête qui est utilisé pour vérifier le statut de la requête et également pour accéder aux résultats. Sauvegardez cet ID car vous en aurez besoin pour voir les résultats de l’analyse.
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'],
'warehouse_type', 'STANDARD', -- If this type and size pair were not listed by view_warehouse_sizes_for_template,
'warehouse_size', 'LARGE' -- the request will automatically fail.
));
check_analysis_status¶
- Schéma:
PROVIDER
Description : Le fournisseur appelle cette procédure pour vérifier le statut de la requête d’analyse du fournisseur. Un délai important peut s’écouler avant que vous puissiez connaître le statut d’une requête. Lorsqu’une analyse est marquée comme terminée, appelez provider.get_analysis_result
pour voir les résultats.
Arguments :
cleanroom_name (string) - Nom de la salle blanche où la requête a été faite.
request_id (string) - ID de la requête, renvoyée par
provider.submit_analysis_request
.consumer_account_locator (string) - Emplacement du compte du consommateur auquel la requête a été envoyée.
Renvoie : (string) Statut de la requête, où COMPLETED
signifie que l’analyse a été effectuée correctement. Statuts possibles :
IN-PROGRESS: L’analyse est en cours.
PENDING : Indique l’un des cas suivants :
La requête est toujours en cours de propagation, ce qui peut prendre quelques minutes. Veuillez réessayer dans quelques minutes.
L’utilisateur n’a pas approuvé la requête en appelant
consumer.enable_templates_for_provider_run
. Veuillez réessayer dans quelques minutes.Vous n’avez pas monté les journaux de requêtes pour ce consommateur. Appelez
provider.is_request_back_share_mounted
; si cette procédure ne renvoie pas SUCCESS, appelezprovider.mount_request_logs_for_all_consumers
.
COMPLETED : L’analyse est terminée. Vous pouvez appeler
provider.get_analysis_result
.
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>'
);
get_analysis_result¶
- Schéma:
PROVIDER
Description : obtient les résultats d’une analyse réalisée par un fournisseur. N’appelez get_analysis_result
que lorsque provider.check_analysis_status
retourne COMPLETED. Les résultats de l’analyse sont conservés indéfiniment dans la salle blanche.
Arguments :
cleanroom_name (string) - Nom de la salle blanche pour laquelle la requête a été envoyée.
request_id (string) - ID de la requête, renvoyée par
submit_analysis_request
.consumer_account_locator (string) - Emplacement du compte du consommateur transmis à
submit_analysis_request
.
Retourne : (Table) Résultats de la requête.
Exemple :
CALL samooha_by_snowflake_local_db.provider.get_analysis_result(
$cleanroom_name,
$request_id,
$locator
);
Gérer le partage des salles blanches¶
Utilisez les commandes suivantes pour gérer le partage d’une salle blanche avec des consommateurs.
view_consumers¶
- Schéma:
PROVIDER
Description : Liste les consommateurs auxquels l’accès à la salle blanche a été accordé. Il n’indique pas si le consommateur a installé la salle blanche.
Arguments :
cleanroom_name (string) - La salle blanche qui vous intéresse.
Retourne : (Table) - Liste des comptes consommateurs pouvant accéder à la salle blanche.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_consumers($cleanroom_name);
add_consumers¶
- Schéma:
PROVIDER
Description : accorde aux utilisateurs spécifiés l’accès à la salle blanche spécifiée. La salle blanche est accessible à la fois par l’UI et l’API des salles blanches. Cette opération ne remplace pas les listes de consommateurs des appels précédents. L’accès à la salle blanche est accordé à un utilisateur spécifique, et non à un compte entier. Le compte du consommateur doit se trouver dans la même région Snowflake que le fournisseur pour pouvoir accéder à une salle blanche. Vous pouvez vérifier votre région en appelant select current_region();
Vous pouvez consulter la liste actuelle des consommateurs en annonçant provider.view_consumers
.
Arguments :
cleanroom_name (String) - Nom de la salle blanche à partager avec les utilisateurs spécifiés. Les utilisateurs peuvent installer la salle blanche à l’aide de l’API ou de l’UI des salles blanches.
consumer_account_locators (string) - Une liste de localisateurs de comptes consommateurs, délimitée par des virgules, telle que renvoyée par CURRENT_ACCOUNT. Cette liste doit comprendre le même nombre d’entrées, dans le même ordre, que celles contenues dans
consumer_account_names
.consumer_account_names (String) - Une liste délimitée par des virgules d’IDs de comptes de partage de données de consommation pour le consommateur dans le format
org_name.account_name
Le nom de l’organisation peut être récupéré en appelant CURRENT_ORGANIZATION_NAME. Le nom du compte peut être récupéré en appelant CURRENT_ACCOUNT_NAME. Cette liste doit comprendre le même nombre d’éléments, dans le même ordre, que ceux annoncés dansconsumer_account_locators
.enable_differential_privacy_tasks (Boolean, optional) - TRUE pour appliquer la confidentialité différentielle dans toutes les requêtes des utilisateurs listés dans cette clean room. Il s’agit d’un moyen simple d’activer la confidentialité différentielle avec des valeurs par défaut pour les utilisateurs de la liste. Pour spécifier des paramètres avancés, fournissez l’argument
privacy_settings
à la place. La tâche de confidentialité différentielle doit être exécutée dans cette clean room pour activer la confidentialité différentielle. La valeur par défaut est FALSE.privacy_settings (String, optional) - Si présent, applique les paramètres de confidentialité aux modèles personnalisés lorsqu’ils sont utilisés par l’un des utilisateurs de
consumer_account_names
. Il s’agit d’une version chaîne d’un objet avec une seule clé NULL et une valeur qui spécifie divers paramètres de confidentialité. Ne spécifiez pas à la foisenable_differential_privacy_tasks
etprivacy_settings
. La tâche de confidentialité différentielle doit être en cours d’exécution dans cette clean room pour activer la confidentialité différentielle. Voir les champs disponibles pour cet objet.
Retourne : Message de réussite. Notez que la procédure ne valide pas les localisateurs d’utilisateurs ou les noms de comptes, de sorte que le succès indique seulement que les localisateurs soumis ont été ajoutés à la base de données pour cette salle blanche.
Exemples :
-- Add consumer without differential privacy.
CALL samooha_by_snowflake_local_db.provider.add_consumers($cleanroom_name,
'LOCATOR1,LOCATOR2',
'ORG1.NAME1,ORG2.NAME2');
-- Add consumer and turn on differential privacy for all their queries.
CALL samooha_by_snowflake_local_db.provider.add_consumers($cleanroom_name,
'LOCATOR1',
'ORGNAME.ACCOUNTNAME',
'{
"null": {
"threshold_value": 5000,
"differential": 1,
"privacy_budget": 10,
"epsilon": 0.1,
"noise_mechanism": "Laplace"
}}');
remove_consumers¶
- Schéma:
PROVIDER
Description : Supprime l’accès du compte à une salle blanche donnée. Cette méthode bloque l’accès de tous les utilisateurs des comptes fournis.
Vous pouvez consulter la liste actuelle des consommateurs en annonçant provider.view_consumers
.
Arguments :
cleanroom_name (string) - L’ID de la salle blanche (pas le nom convivial).
cleanroom_account_locators (string) - Une liste de localisateurs de comptes utilisateurs délimitée par des virgules. Tous les utilisateurs du compte perdront l’accès à la salle blanche.
Retourne : (string) - Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.remove_consumers($cleanroom_name, 'locator1,locator2,locator3');
set_cleanroom_ui_accessibility¶
- Schéma:
PROVIDER
Description : affiche ou masque la salle blanche dans l’UI des salles blanches pour tous les utilisateurs connectés à ce compte fournisseur.
Arguments :
cleanroom_name (string) - Le nom de la salle blanche.
visibility_status (string) - Une des valeurs suivantes sensibles à la casse :
HIDDEN - Cache la salle blanche dans l’UI des salles blanches pour tous les utilisateurs du compte fournisseur actuel. La salle blanche reste accessible pour les appels de l’API.
EDITABLE - Rend la salle blanche visible dans l’UI des salles blanches.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.set_cleanroom_ui_accessibility($cleanroom_name, 'HIDDEN');
Collaboration inter-Cloud¶
Permettez à une clean room d’être partagée avec un consommateur sur une autre région Cloud. En savoir plus.
enable_laf_on_account¶
- Schéma:
LIBRARY
Description : active l’exécution automatique inter-Cloud sur le compte actuel. L’exécution de cette procédure nécessite le rôle ACCOUNTADMIN.
Important
Vous devez d’abord activer l’exécution automatique inter-Cloud pour le compte en appelant SYSTEM$ENABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT. En savoir plus sur l’exécution automatique et la gestion des privilèges de l’exécution automatique.
Arguments : Aucun
Retourne : (String) message de réussite.
Exemple :
USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_laf_on_account();
disable_laf_on_account¶
- Schéma:
LIBRARY
Description : désactive l’exécution automatique inter-Cloud sur le compte actuel. L’exécution de cette procédure nécessite le rôle ACCOUNTADMIN.
Important
Vous devez d’abord appeler SYSTEM$ENABLE_GLOBAL_DATA_SHARING_FOR_ACCOUNT avant de pouvoir désactiver l’exécution automatique inter-Cloud sur un compte. En savoir plus sur l’exécution automatique et la gestion des privilèges de l’exécution automatique.
Arguments : Aucun
Retourne : (String) message de réussite.
Exemple :
USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.disable_laf_on_account();
is_laf_enabled_on_account¶
- Schéma:
LIBRARY
Description : Renvoie si l’exécution automatique inter-Cloud est activée pour ce compte.
Arguments : Aucun
Renvoie : TRUE si l’exécution automatique inter-Cloud est activée pour ce compte, FALSE dans le cas contraire.
Exemple :
CALL samooha_by_snowflake_local_db.library.is_laf_enabled_on_account();
set_laf_dcr_refresh_schedule¶
- Schéma:
PROVIDER
Description : définit l’intervalle d’actualisation pour les données de salle blanche entre le fournisseur et le consommateur lorsqu’ils sont situés sur des régions Cloud différentes. Ces données comprennent les ensembles de données des fournisseurs, les demandes d’exécution des fournisseurs, les politiques de salle blanche et les métadonnées de salle blanche. Si vous avez besoin d’une actualisation immédiate, vous pouvez appeler SYSTEM$TRIGGER_LISTING_REFRESH.
Arguments :
schedule (Int) - Intervalle, en minutes, entre les actualisations. La valeur minimale autorisée est 10.
Retourne : (String) - Message de réussite.
Exemple :
CALL samooha_by_snowflake_local_db.provider.set_laf_dcr_refresh_schedule(10);
Utiliser Python dans une salle blanche¶
load_python_into_cleanroom¶
- Schéma:
PROVIDER
Description : charge du code Python personnalisé dans la salle blanche. Le code chargé dans la salle blanche à l’aide de cette procédure n’est pas visible pour les consommateurs. Le code importé peut être appelé par votre modèle Jinja. Bien que votre code puisse inclure plusieurs définitions de fonctions, une seule fonction est exposée pour un modèle à appeler.
Apprenez à charger et à utiliser du code Python dans une salle blanche
Cette procédure incrémente le numéro de correctif de votre salle blanche et déclenche une analyse de sécurité. Vous devez attendre que le statut de l’analyse soit APPROVED avant de pouvoir partager la dernière version avec les collaborateurs.
Cette procédure est surchargée et possède deux signatures qui diffèrent par le type de données du cinquième argument, qui détermine si vous importez le code en ligne ou si vous le chargez à partir d’un fichier sur une zone de préparation :
load_python_into_cleanroom
possède la signature suivante pour charger du code en ligne. Transmettez votre chaîne de code dans l’argument code
.
(cleanroom_name String, function_name String, arguments Array, packages Array, rettype String, handler String, code String)
Arguments :
cleanroom_name (string) - Nom de la salle blanche où le script doit être chargé.
function_name (string) - Nom qu’un modèle utilise pour appeler la fonction spécifiée par
handler
. Le modèle doit qualifier le nom de la fonction avec l’espace de nomscleanroom
. Par exemple :cleanroom.my_func(val1, val2)
.arguments(Array of string pairs) - Un tableau d’arguments requis par la fonction
function_name
. Chaque élément est une pairename
data type
délimitée par des espaces qui spécifie le nom de l’argument et son type de données Snowflake SQL. Par exemple :['size INT', 'start_date DATE']
.packages(Array of string) - Liste des noms des paquets Python utilisés par le code. Les salles blanches prennent en charge nativement tous les packages [dans cette liste] (https://repo.anaconda.com/pkgs/snowflake/) ou l”API Snowpark. Si vous avez besoin d’un package qui n’est pas répertorié là, vous devez utiliser Snowpark Container Services dans une salle blanche.
ret_type (String) - SQL Type de données de la valeur renvoyée par la fonction
handler
. (Voir quelques types Python et SQL équivalents. Les SQL synonymes de types Snowflake sont acceptés tel que STRING pour VARCHAR.) Pour un UDF, le type de retour est un seul type SQL. Pour un UDTF, le type de retour est une fonction TABLE avec des paires<column name> <SQL column type>
. Par exemple :TABLE (item_name STRING, total FLOAT)
.handler (String) - La fonction appelée dans votre code lorsqu’un modèle appelle
function_name
. Pour un UDF il doit s’agir du nom de la fonction elle-même ; pour un UDTF, il doit s’agir du nom de la classe qui implémente l’UDTF.code (string) - Votre code Python sous forme de chaîne. Il doit s’agir d’un UDF Python.
Chargez votre code dans une zone de préparation Snowflake, puis indiquez l’emplacement de la zone de préparation à la salle blanche API. Vous devez utiliser la zone de préparation activée pour votre salle blanche spécifique en appelant provider.get_stage_for_python_files
.
load_python_into_cleanroom
possède la signature suivante pour charger du code dans la salle blanche à partir d’une zone de préparation.
(cleanroom_name String, function_name String, arguments Array, packages Array, imports Array, rettype String, handler String)
Arguments :
cleanroom_name (string) - Nom de la salle blanche où le script doit être chargé.
function_name (string) - Nom qu’un modèle utilise pour appeler la fonction spécifiée par
handler
. Le modèle doit qualifier le nom de la fonction avec l’espace de nomscleanroom
. Par exemple :cleanroom.my_func(val1, val2)
.arguments(Array of string pairs) - Un tableau d’arguments requis par la fonction
function_name
. Chaque élément est une pairename
data type
délimitée par des espaces qui spécifie le nom de l’argument et son type de données Snowflake SQL. Par exemple :['size INT', 'start_date DATE']
.packages(Array of string) - Liste des noms des paquets Python utilisés par le code. Les salles blanches prennent en charge nativement tous les packages [dans cette liste] (https://repo.anaconda.com/pkgs/snowflake/) ou l”API Snowpark.
imports (Array of string) - Liste des fichiers à importer à partir de la zone de préparation. Chaque adresse de fichier est relative à la zone de préparation vers laquelle vous avez importé le code, par exemple :
['/my_func.py']
. Trouvez la zone de préparation de la salle blanche en appelantprovider.get_stage_for_python_files
.ret_type (String) - SQL Type de données de la valeur renvoyée par la fonction
handler
. (Voir quelques types Python et SQL équivalents. Les SQL synonymes de types Snowflake sont acceptés tel que STRING pour VARCHAR.) Pour un UDF, le type de retour est un seul type SQL. Pour un UDTF, le type de retour est une fonction TABLE avec des paires<column name> <SQL column type>
. Par exemple :TABLE (item_name STRING, total FLOAT)
.handler (String) - La fonction appelée dans votre code lorsqu’un modèle appelle
function_name
. Pour un UDF il doit s’agir du nom de la fonction elle-même ; pour un UDTF, il doit s’agir du nom de la classe qui implémente l’UDTF.
Renvoie : (string) Message de réussite ou d’échec.
Exemples :
-- Inline UDF
CALL samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
$cleanroom_name,
'assign_group', -- Name of the UDF.
['data STRING', '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)
$$
);
-- Upload from stage
CALL samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
$cleanroom_name,
'myfunc', -- Name of the UDF.
['data STRING', 'index INTEGER'], -- Arguments of the UDF.
['numpy', 'pandas'], -- Packages UDF will use.
['/assign_group.py'] -- Python file to import from a stage.
'INTEGER', -- Return type of UDF.
'assign_group.main' -- Handler, scoped to file name.
);
get_stage_for_python_files¶
- Schéma:
PROVIDER
Description : Renvoie le chemin de la zone de préparation où les fichiers Python doivent être importés, si vous planifiez d’utiliser des fichiers de code importés vers une zone de préparation plutôt que des définitions de code en ligne pour définir du code Python personnalisé dans une salle blanche. La zone de préparation n’existe pas et ne peut pas être examinée tant que les fichiers n’ont pas été importés en appelant provider.load_python_into_cleanroom
.
Apprenez à charger et à utiliser du code Python dans une salle blanche
Arguments :
cleanroom_name (string) - Nom de la salle blanche dans laquelle vous souhaitez importer des fichiers.
Retourne : (string) Le chemin où vous devez importer les fichiers de code. Utilisez ceci pour l’argument imports dans provider.load_python_into_cleanroom
.
Exemple :
CALL samooha_by_snowflake_local_db.provider.get_stage_for_python_files($cleanroom_name);
view_room_scan_status¶
- Schéma:
PROVIDER
Description : Indique le statut de l’analyse des menaces pour une salle blanche dont le paramètre DISTRIBUTION est défini sur EXTERNAL. L’analyse doit être marquée comme « APPROVED » avant que vous ne puissiez définir ou modifier la directive de version par défaut. Le statut de l’analyse ne doit être vérifié qu’avec des salles blanches EXTERNAL.
Arguments :
cleanroom_name (string) - Nom de la salle blanche dont il faut vérifier le statut.
Retourne : (String) le statut de l’analyse. Les valeurs suivantes sont possibles :
NOT_REVIEWED
- L’analyse est en cours.APPROVED
- L’analyse a réussi.REJECTED
- L’analyse a échoué ; une nouvelle version de salle blanche ne sera pas publiée. Essayez de trouver les problèmes dans votre code et réessayez la dernière action.MANUAL_REVIEW
- L’analyse nécessite un examen manuel par Snowflake. Cela peut prendre quelques jours, donc vérifiez à nouveau périodiquement.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_cleanroom_scan_status($cleanroom_name);
Journaux des requêtes¶
Utilisez les commandes suivantes pour gérer les journaux de requêtes des consommateurs. Les journaux de requêtes permettent au consommateur d’envoyer des messages au fournisseur et doivent être montés pour activer des fonctionnalités telles que les requêtes de modèles personnalisés des consommateurs, l’approbation des requêtes exécutées par les consommateurs et l’exécution automatique inter-Cloud.
mount_request_logs_for_all_consumers¶
- Schéma:
PROVIDER
Description : permet aux fournisseurs d’accéder aux requêtes du consommateur. Vous devez monter les journaux des requêtes pour prendre en charge diverses fonctionnalités, notamment les requêtes de modèles personnalisés des consommateurs, l’approbation des consommateurs des requêtes exécutées par les fournisseurs et l’exécution automatique inter-Cloud.
Cela monte les journaux de requêtes uniquement pour les consommateurs qui ont déjà installé la salle blanche spécifiée. Si un consommateur installe une salle blanche après que le fournisseur a appelé cette procédure, le fournisseur doit appeler à nouveau cette procédure.
Arguments :
cleanroom_name (string) - Nom de la salle blanche pour laquelle les journaux de requête doivent être connectés.
Retourne : (table) une table de consommateurs, avec le statut de montage du journal des requêtes pour chacun. Si un consommateur s’est vu attribuer l’accès à une salle blanche, mais qu’il n’a pas encore installé la salle blanche, le statut est décrit comme en attente, et vous devez appeler mount_request_logs_for_all_consumers
à nouveau après avoir installé la salle blanche.
Exemple :
CALL samooha_by_snowflake_local_db.provider.mount_request_logs_for_all_consumers($cleanroom_name);
view_request_mount_status_for_all_consumers¶
- Schéma:
PROVIDER
Description : indique le statut de montage des journaux de requêtes pour tous les consommateurs de la salle blanche spécifiée. Seuls les consommateurs qui ont été inclus dans un appel vers provider.mount_request_logs_for_all_consumers
sont affichés. Les journaux de requêtes permettent de transmettre des messages du consommateur au fournisseur.
Arguments :
cleanroom_name (string) - Nom de la salle blanche.
Retourne : (Table) - Une table de consommateurs et le statut de montage du journal des requêtes de chaque consommateur.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_request_mount_status_for_all_consumers($cleanroom_name);
view_request_logs¶
- Schéma:
PROVIDER
Description : affiche les journaux de requêtes envoyées par les consommateurs dans cette salle blanche. Seules les requêtes des consommateurs qui ont été incluses dans un appel précédent réussi vers mount_request_logs_for_all_consumers
sont affichés.
Arguments :
cleanroom_name (string) - Nom de la salle blanche pour laquelle les journaux de requêtes doivent être connectés.
Retourne : (Table) les requêtes envoyées par le consommateur au fournisseur dans la salle blanche spécifiée.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_request_logs($cleanroom_name);
Confidentialité différentielle¶
Ces commandes contrôlent la confidentialité différentielle au niveau de l’utilisateur ou du compte fournisseur. Pour en savoir plus sur la confidentialité différentielle.
set_privacy_settings¶
- Schéma:
PROVIDER
Description : Permet d’ensemble (ou de réinitialiser) les paramètres de confidentialité appliqués lorsque le consommateur spécifié exécute un modèle personnalisé. Cette opération écrase tous les paramètres existants pour ce consommateur.
Arguments :
cleanroom_name (string) - Nom de la salle blanche.
consumer_account_locator (String) - Emplacement du compte d’un ou de plusieurs consommateurs, dans une liste délimitée par des virgules.
privacy_settings (Object) - Un objet JSON qui spécifie les paramètres de confidentialité différentielle pour un ou plusieurs modèles. Les paramètres sont appliqués à tous les modèles exécutés par le consommateur spécifié. Voir les champs disponibles pour cet objet.
Retourne : Message de réussite.
Exemple :
-- Enforce differential privacy on queries by this consumer
-- with the settings provided.
CALL samooha_by_snowflake_local_db.provider.set_privacy_settings(
$cleanroom_name,
$consumer_locator,
{ 'differential': 1,
'epsilon': 0.1,
'privacy_budget': 3 });
is_dp_enabled_on_account¶
- Schéma:
PROVIDER
Description : Décrit si la confidentialité différentielle est activée ou non pour ce compte.
Arguments : Aucun
Renvoie : TRUE si la confidentialité différentielle est activée pour ce compte, FALSE dans le cas contraire.
Exemple :
CALL samooha_by_snowflake_local_db.provider.is_dp_enabled_on_account();
suspend_account_dp_task¶
- Schéma:
PROVIDER
Description : désactive la tâche qui surveille et applique les budgets de confidentialité différentielle. Ceci est utilisé pour contrôler les coûts associés à la confidentialité différentielle dans votre compte. Si la tâche de confidentialité différentielle est désactivée, du bruit sera toujours ajouté aux requêtes des utilisateurs, modèles ou salles blanches où la confidentialité différentielle est spécifiée, mais les limites budgétaires ne seront pas appliquées et vous n’aurez pas à subir des coûts liés à la confidentialité différentielle. En savoir plus sur la gestion de la confidentialité différentielle.
Arguments : Aucun
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.suspend_account_dp_task();
resume_account_dp_task¶
- Schéma:
PROVIDER
Description : Reprend l’auditeur de tâches de confidentialité différentielle dans le compte courant, et les budgets de confidentialité différentielle seront appliqués. Toutes les valeurs de confidentialité différentielles précédemment définies (telles que la sensibilité ou les utilisateurs associés) sont conservées.
Arguments : Aucun
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.resume_account_dp_task();
Commandes Snowpark Container Services¶
Ces procédures vous permettent d’utiliser les services de conteneur de Snowpark à l’intérieur d’une clean room.
load_service_into_cleanroom¶
- Schéma:
PROVIDER
Description : Crée ou met à jour un service de conteneurs dans une clean room. L’appel de cette procédure met à jour le numéro de patch de la clean room, vous devez donc appeler provider.set_default_release_directive
après avoir appelé cette procédure. Vous devez appeler cette procédure chaque fois que vous créez ou mettez à jour le service. Le client doit ensuite appeler consumer.start_or_update_service
pour connaître les éventuelles mises à jour.
Apprenez à utiliser Snowpark Container Services dans une salle blanche.
Arguments :
cleanroom_name (string) - Nom de la salle blanche.
service_spec (String) - Une spécification YAML pour le service, racinée à l’élément
spec
.service_config (String) - Une configuration au format YAML pour le service. Les propriétés suivantes sont prises en charge :
default_service_options
- Tableau facultatif de valeurs par défaut du niveau de service. Ces valeurs peuvent être remplacées par le consommateur lorsqu’il crée son service. Les propriétés enfant suivantes sont prises en charge :min_instances
(Integer, optional)max_instances
(Integer, optional)allow_monitoring
(Boolean, optional) - Si TRUE, le consommateur peut voir les journaux du service. La valeur par défaut est FALSE.
functions
- Un tableau de fonctions exposées par le service. Chaque définition de fonction mappe la définition de la fonction de service SPCS. Consultez cette documentation pour connaître les détails de chaque élément. Les propriétés enfant suivantes sont prises en charge :nom
args
renvoie
point de terminaison
chemin
max_batch_rows
(optional)context_headers
(optional)
Renvoie : (String) Message de réussite, en cas de succès. Lance une erreur en cas d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.load_service_into_cleanroom(
$cleanroom_name,
$$
spec:
containers:
- name: lal
image: /dcr_spcs/repos/lal_example/lal_service_image:latest
env:
SERVER_PORT: 8000
readinessProbe:
port: 8000
path: /healthcheck
endpoints:
- name: lalendpoint
port: 8000
public: false
$$,
$$
default_service_options:
min_instances: 1
max_instances: 1
allow_monitoring: true
functions:
- name: train
args: PROVIDER_TABLE VARCHAR, PROVIDER_JOIN_COL VARCHAR, CONSUMER_TABLE VARCHAR, CONSUMER_JOIN_COL VARCHAR, DIMENSIONS ARRAY, FILTER VARCHAR
returns: VARCHAR
endpoint: lalendpoint
path: /train
- name: score
args: PROVIDER_TABLE VARCHAR, PROVIDER_JOIN_COL VARCHAR, CONSUMER_TABLE VARCHAR, CONSUMER_JOIN_COL VARCHAR, DIMENSIONS ARRAY
returns: VARCHAR
endpoint: lalendpoint
path: /score
- name: score_batch
args: ID VARCHAR, FEATURES ARRAY
returns: VARIANT
max_batch_rows: 1000
endpoint: lalendpoint
path: /scorebatch
$$);
Gestion de l’environnement¶
Utilisez les commandes suivantes pour vous aider de manière générale à tirer parti des fonctionnalités de la salle blanche et des flux pris en charge.
manage_datastats_task_on_account¶
- Schéma:
PROVIDER
Description : active ou désactive la tâche d’arrière-plan qui calcule les statistiques de la salle blanche. La tâche s’exécute par défaut, mais vous pouvez la désactiver pour réduire vos coûts. Pour gérer la tâche, tous les collaborateurs doivent appeler la version de provider
ou consumer
appropriée de cette procédure avec la même valeur.
Arguments :
enable (Boolean) - TRUE pour activer la tâche, FALSE pour désactiver la tâche.
Retourne : Message de réussite.
Exemple :
-- Disable the task in this account.
CALL samooha_by_snowflake_local_db.provider.manage_datastats_task_on_account(FALSE);
enable_local_db_auto_upgrades¶
- Schéma:
LIBRARY
Description : active la tâche qui met automatiquement à niveau l’environnement Snowflake Data Clean Rooms lorsque de nouvelles procédures ou fonctionnalités sont publiées (la tâche est samooha_by_snowflake_local_db.admin.expected_version_task
.) Appelez cette procédure pour automatiser les mises à niveau, plutôt que d’appeler library.apply_patch
avec chaque nouvelle version.
Bien que vous puissiez réduire les coûts en désactivant cette tâche, nous vous recommandons de la laisser en cours d’exécution pour vous assurer que vous disposez de la dernière version de l’environnement des salles blanches sur votre système.
Arguments : Aucun
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.library.enable_local_db_auto_upgrades();
disable_local_db_auto_upgrades¶
- Schéma:
LIBRARY
Description : désactive la tâche qui met automatiquement à niveau l’environnement Snowflake Data Clean Rooms lorsque de nouvelles versions sont publiées. Si vous désactivez les mises à niveau automatiques, vous devez appeler library.apply_patch
avec chaque nouvelle version.
Arguments : Aucun
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();
apply_patch¶
- Schéma:
LIBRARY
Description : met à jour l’environnement de vos salles blanches, en activant de nouvelles fonctionnalités et des corrections dans votre environnement. Appelez cette opération lorsqu’une nouvelle version de l’environnement des salles blanches a été publiée. (Cela se produit généralement chaque semaine ; voir les entrées des salles blanches dans Mises à jour récentes des fonctionnalités.) Cette procédure met à jour samooha_par_snowflake_local_db.
Vous pouvez automatiser les mises à jour des correctifs en appelant library.enable_local_db_auto_upgrades
. Nous vous recommandons d’activer les mises à jour automatiques.
Arguments : Aucun
Retourne : (String) message de réussite.
Exemple :
CALL samooha_by_snowflake_local_db.library.apply_patch();
patch_cleanroom¶
- Schéma:
PROVIDER
Description : met à jour la salle blanche spécifiée avec la dernière version, en activant de nouvelles fonctionnalités et des correctifs pour cette salle blanche. En règle générale, vous n’appelez cette fonction que lorsque l’assistance de Snowflake vous demande de l’appeler.
Le fournisseur doit appeler library.patch_cleanroom
avant que le consommateur n’appelle library.patch_cleanroom
. Sinon, il n’y a pas de correctif à appliquer.
Arguments :
cleanroom_name (String) : nom de la salle blanche à vérifier.
Retourne : (String) message de réussite.
Exemple :
CALL samooha_by_snowflake_local_db.provider.patch_cleanroom($cleanroom_name);
dcr_health.dcr_tasks_health_check¶
Description : affiche des informations sur les tâches de salle blanche en cours d’exécution ou récemment arrêtées.
Arguments : Aucun
Renvoie : (Table) informations sur les tâches de salle blanche, y compris la planification, le nom de l’entrepôt et la taille de l’entrepôt.
Exemple :
CALL samooha_by_snowflake_local_db.dcr_health.dcr_tasks_health_check();
Procédures obsolètes¶
Les procédures suivantes sont obsolètes et ne sont listées ici que par souci d’exhaustivité. Si une procédure de remplacement est indiquée, utilisez la procédure la plus récente.
request_laf_cleanroom_requests (obsolète)¶
- Schéma:
PROVIDER
Cette fonction est désormais obsolète. appeler provider.mount_request_logs_for_all_consumers
à la place.
Description : Paramètre le partage de requêtes inter-Cloud du côté du fournisseur pour un consommateur donné. Un administrateur de compte doit d’abord activer la réplication automatique inter-Cloud, et le consommateur doit avoir appelé consumer.setup_cleanroom_request_share_for_laf
.
Cette exigence s’applique aux modèles définis par le consommateur lorsque le fournisseur et le consommateur se trouvent dans des régions Cloud différentes.
Vous pouvez appeler cette procédure à plusieurs reprises pour vérifier le statut de la requête. Lorsque le statut atteint FULFILLED, vous pouvez appeler provider.mount_laf_cleanroom_requests_share
. Il peut s’écouler 10 minutes avant que le statut n’atteigne FULFILLED.
Arguments :
cleanroom_name (String) - Nom de la clean room pour permettre le partage de requêtes inter-Cloud.
consumer_locator (String) - Emplacement du compte du consommateur pour lequel activer le partage de requêtes inter-Cloud.
Renvoie : (String) message de statut de la requête : CREATED, PENDING, FULFILLED, FAILURE. « FAILUREliste introuvable » signifie que le consommateur n’a pas installé la salle blanche (ou qu’il l’a désinstallée).
Exemple :
CALL samooha_by_snowflake_local_db.provider.request_laf_cleanroom_requests(
$cleanroom_name, $consumer_locator);
enable_laf_for_cleanroom (obsolète)¶
- Schéma:
PROVIDER
Cette fonction est maintenant obsolète, et sa fonctionnalité est gérée par provider.create_or_update_cleanroom_listing
.
Description : active l’exécution automatique inter-Cloud, qui vous permet de partager la salle blanche avec des collaborateurs dont le compte Snowflake se trouve dans une région différente de celle du compte du fournisseur. L’exécution automatique inter-Cloud est également connue sous le nom d’exécution automatique des annonces (LAF).
Par défaut, l’exécution automatique inter-Cloud est désactivée pour les nouvelles salles blanches, même si elle est activée pour l’environnement.
Important
Un administrateur Snowflake avec le rôle ACCOUNTADMIN doit activer l’exécution automatique inter-Cloud dans votre compte Snowflake avant de pouvoir exécuter cette procédure. Découvrez l’exécution automatique inter-Cloud.
La collaboration avec les consommateurs d’autres régions entraîne des coûts supplémentaires. Pour plus d’informations sur ces coûts, voir Cross-Cloud Auto-Fulfillment costs.
Arguments :
cleanroom_name (string) - Le nom de la salle blanche qui doit être partagé entre les régions. L’exécution automatique inter-Cloud doit être activée pour le compte par un administrateur avant que des salles blanches individuelles puissent être partagées.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.enable_laf_for_cleanroom($cleanroom_name);
provider.view_ui_registration_request_log – DEPRECATED¶
- Schéma:
PROVIDER
Attention
Cette commande est désormais obsolète. Vous n’avez plus besoin d’enregistrer manuellement un modèle de salle blanche pour l’utiliser dans l’UI des salles blanches.
Description : permet de voir la liste des requêtes émises à partir du compte pour enregistrer les salles blanches dans l’UI des salles blanches. 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 la salle blanche est ajoutée dans la salle blanche.
Arguments :
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.view_ui_registration_request_log();
register_table_or_view – Obsolète¶
- Schéma:
LIBRARY
Attention
Cette commande est désormais obsolète. Utilisez plutôt library.register_objects.
Description : Enregistre les tables et les vues de tous types.
Arguments : object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)
Renvoie : (string) Message de réussite ou d’échec.
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);
register_table – Obsolète¶
- Schéma:
LIBRARY
Attention
Cette commande est désormais obsolète. Utilisez plutôt library.register_objects.
Description : Semblable à register_db
, mais opère au niveau de la table. Accordez le privilège SELECT sur cette table au rôle SAMOOHA_APP_ROLE, ce qui permettra à l’utilisateur d’établir un lien entre la table et 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éé à l’aide du paramètre WITH MANAGED ACCESS), utilisez plutôt library.register_managed_access_table
.
Arguments : table_name (array)
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.library.register_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
register_managed_access_table – Obsolète¶
- Schéma:
LIBRARY
Attention
Cette commande est désormais obsolète. Utilisez plutôt library.register_objects.
Description : Semblable à register_table
, mais enregistre les tables dans un schéma qui a été créé à l’aide du 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.
Arguments : table_name (array)
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.library.register_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
register_view – Obsolète¶
- Schéma:
LIBRARY
Attention
Cette commande est désormais obsolète. Utilisez plutôt library.register_objects.
Description : Semblable à register_db
, mais opère au niveau de la 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éé à l’aide du paramètre WITH MANAGED ACCESS), utilisez plutôt library.register_managed_access_view
.
Arguments : view_name (array)
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.library.register_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
register_managed_access_view – Obsolète¶
- Schéma:
LIBRARY
Attention
Cette commande est désormais obsolète. Utilisez plutôt library.register_objects.
Description : Semblable à register_view
, mais enregistre les vues dans un schéma créé à l’aide du 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.
Arguments : view_name (array)
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.library.register_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
unregister_table_or_view – Obsolète¶
- Schéma:
LIBRARY
Attention
Cette commande est désormais obsolète. Utilisez plutôt library.unregister_objects.
Description : Annule l’enregistrement des tables et des vues de tous types.
Arguments : object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)
Renvoie : (string) Message de réussite ou d’échec.
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);
unregister_table – Obsolète¶
- Schéma:
LIBRARY
Attention
Cette commande est désormais obsolète. Utilisez plutôt library.unregister_objects.
Description : Semblable à unregister_db
, mais opère au niveau de la 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éé à l’aide du paramètre WITH MANAGED ACCESS), utilisez plutôt library.unregister_managed_access_table
.
Arguments : table_name (array)
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.library.unregister_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
unregister_managed_access_table – Obsolète¶
- Schéma:
LIBRARY
Attention
Cette commande est désormais obsolète. Utilisez plutôt library.unregister_objects.
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éé à l’aide du paramètre WITH MANAGED ACCESS).
Arguments : table_name (array)
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.library.unregister_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
unregister_view – Obsolète¶
- Schéma:
LIBRARY
Attention
Cette commande est désormais obsolète. Utilisez plutôt library.unregister_objects.
Description : Similaire à unregister_db
, mais opère au niveau de la 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éé à l’aide du paramètre WITH MANAGED ACCESS), utilisez plutôt library.unregister_managed_access_view
.
Arguments : view_name (array)
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.library.unregister_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
unregister_managed_access_view – Obsolète¶
- Schéma:
LIBRARY
Attention
Cette commande est désormais obsolète. Utilisez plutôt library.unregister_objects.
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éé à l’aide du paramètre WITH MANAGED ACCESS).
Arguments : view_name (array)
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
create_cleanroom_listing – Obsolète¶
- Schéma:
PROVIDER
Attention
Cette commande est désormais obsolète. Utilisez plutôt provider.create_or_update_cleanroom_listing.
Description : Après la configuration d’une salle blanche, crée une annonce privée avec la salle blanche sur le Marketplace de Snowflake et la partage avec les collaborateurs spécifiés.
Vous identifiez le collaborateur en utilisant le format orgname.account_name
de son URL de compte. Le consommateur peut trouver cette chaîne en suivant les instructions de la section Recherche du nom de l’organisation et du compte pour un compte.
Note
Pour utiliser cette procédure, vous devez avoir ensemble la directive de version. Pour plus d’informations, voir provider.set_default_release_directive.
Arguments : cleanroom_name (string), consumer_account_name (string)
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.create_cleanroom_listing($cleanroom_name, <consumerorg.consumeracct>);
register_cleanroom_in_ui – DEPRECATED¶
- Schéma:
PROVIDER
Attention
Cette commande est désormais obsolète. Vous n’avez plus besoin d’enregistrer manuellement un modèle de salle blanche pour l’utiliser dans l’UI des salles blanches.
Description : enregistre une salle blanche en vue de son utilisation dans l’UI des salles blanches par le consommateur. La salle blanche est créée et configurée par le fournisseur à l’aide des APIs du développeur. Cette commande enregistre ensuite la salle blanche dans l’UI des salles blanches pour que les consommateurs puissent installer, ajouter leur table et exécuter toutes les analyses personnalisées que vous avez ajoutées sans avoir besoin d’utiliser les APIs du développeur. Les consommateurs travaillent avec la salle blanche entièrement via l’interface utilisateur de l’UI des salles blanches.
Vous pouvez appeler cette API plus d’une fois pour inclure plusieurs modèles personnalisés dans l’UI des salles blanches.
Arguments : cleanroom_name (String), template name (String), consumer_account_locator (String), user_email (String)
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
CALL samooha_by_snowflake_local_db.provider.register_cleanroom_in_ui($cleanroom_name, 'prod_custom_template', <CONSUMER ACCOUNT LOCATOR>, <USER_EMAIL>)