Snowflake Data Clean Rooms : guide de référence pour l’API fournisseurs¶
Vue d’ensemble¶
Ce guide de référence liste les procédures stockées dans l”API Clean Rooms qui permet à un fournisseur de créer, configurer et partager une salle blanche.
Les procédures existent dans les schémas suivants :
samooha_by_snowflake_local_db.provider
- Procédures spécifiques aux fournisseurs. Ces procédures ne peuvent être appelées que sur les salles blanches qui ont été créées par le compte courant.samooha_by_snowflake_local_db.consumer
- Procédures spécifiques aux consommateurs. Ces procédures ne peuvent être appelées que dans les salles blanches où le compte courant a été invité en tant que consommateur.samooha_by_snowflake_local_db.library
- Procédures générales appelées par le créateur de la salle blanche (fournisseur) ou par un collaborateur de la salle blanche (consommateur).
Ces procédures sont accessibles par n’importe quel environnement de ligne de commande prenant en charge les procédures Snowflake, y compris les notebooks, les workbooks, et la CLI.
Exigences¶
L’API requiert le rôle samooha_app_role
et l’entrepôt app_wh
. Exécutez les commandes suivantes avant d’utiliser les procédures décrites ici :
USE ROLE samooha_app_role;
USE WAREHOUSE app_wh;
Si vous n’avez pas le rôle SAMOOHA_APP_ROLE, contactez votre administrateur de compte.
Créer, configurer et supprimer des salles blanches¶
provider.view_cleanrooms¶
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();
provider.describe_cleanroom¶
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);
provider.cleanroom_init¶
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’application Web 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 visible que par les utilisateurs de la même organisation et ne déclenche pas d’analyse de sécurité avant la modification 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 de changer 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');
provider.set_default_release_directive¶
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’application Web, ou accèdent à la salle blanche depuis une 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 :
show versions in application package samooha_cleanroom_<CLEANROOM_ID>;
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.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
call samooha_by_snowflake_local_db.provider.set_default_release_directive($cleanroom_name, 'V1_0', '0');
provider.drop_cleanroom¶
Description : Supprimer 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îtra plus dans l’application Web lors de la prochaine actualisation du navigateur.
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);
provider.enable_consumer_run_analysis¶
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.
Important
Cette procédure doit être appelée avant qu’un consommateur n’installe une salle blanche. Si cette capacité est modifiée après l’installation d’une salle blanche, celle-ci doit être réinstallée pour refléter la nouvelle configuration.
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>']);
provider.disable_consumer_run_analysis¶
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.
Important
Cette procédure doit être appelée 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) - 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>']);
library.is_consumer_run_enabled¶
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)
provider.create_or_update_cleanroom_listing¶
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’application Web (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.
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.
Exemple :
call samooha_by_snowflake_local_db.provider.create_or_update_cleanroom_listing($cleanroom_name);
provider.add_ui_form_customizations¶
Description : Définit une UI pour un modèle dans une salle blanche lorsqu’on y accède dans l’application Web. 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.
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 s’applique cette UI. 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) : Informations affichées à l’utilisateur dans l’UI. Contient les champs suivants :
display_name
(Requis) : Nom d’affichage du modèle dans l’application Web.description
(Requis) : Description du modèle.méthodologie
(Requis) : Description de la manière dont le consommateur doit utiliser la forme pour exécuter une analyse.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 et/ou du consommateur à utiliser dans la requête. Il s’agit d’un objet comportant les champs suivants :render_consumer_table_dropdown
: (Boolean, Default = TRUE) 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
.render_provider_table_dropdown
: (Boolean, Default = TRUE) 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
.
details (Dict) : 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 d’UI configurable par l’utilisateur. La clé est une chaîne arbitraire qui est exposée en tant que variable au modèle JinjaSQL. La valeur est un objet qui définit l’élément UI. Chaque objet comporte les champs suivants :
<field_name>: { 'display_name': <string>, 'description': <string>, 'methodology': <string>, ['type': <enum>,] ['default': <value>,] ['choices': <string array>,] ['infoMessage': <string>,] ['size': <enum>] ['required': <bool>,] ['group': <string>,] ['references': <enum>] ['provider_parent_table_field': <string>,] ['consumer_parent_table_field': <string>] }
display_name
(Obligatoire) : nom d’affichage de l’élément UIdescription
(Obligatoire) : description apparaissant sous le nomméthodologie
(Requis) : Description de la manière dont le consommateur doit utiliser la forme pour exécuter une analysetype
: 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émenttaille
: 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
: Crée une liste déroulante contenant les tables ou colonnes disponibles dans la salle blanche sans avoir à les connaître à l’avance ou à les lister individuellement. S’il est utilisé, le type doit être « multiselect » ou « dropdown ». Les valeurs de chaîne suivantes sont prises en charge :PROVIDER_TABLES
: Liste déroulante de toutes les tables du fournisseur dans la salle blanche accessible par l’utilisateurPROVIDER_JOIN_POLICY
: Liste déroulante de toutes les colonnes pouvant faire l’objet d’une jointure à partir de la table du fournisseur spécifiée parprovider_parent_table_field
PROVIDER_COLUMN_POLICY
: Liste déroulante de toutes les colonnes ayant une politique de colonne dans la table du fournisseur spécifiée parprovider_parent_table_field
CONSUMER_TABLES
: Liste déroulante de toutes les tables des consommateurs de la salle blanche accessibles par l’utilisateurCONSUMER_COLUMNS
: Liste déroulante de toutes les colonnes de la table du consommateur spécifiée par consumer_parent_table_field auxquelles l’utilisateur peut accéder. 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, ce qui peut entraîner l’échec d’une requête lorsque la politique de la colonne n’est pas respectée.CONSUMER_JOIN_POLICY
: Liste déroulante de toutes les colonnes pouvant faire l’objet d’une jointure à partir de la table du consommateur spécifiée parconsumer_parent_table_field
CONSUMER_COLUMN_POLICY
: Liste déroulante de toutes les colonnes ayant une politique de colonne dans la table du consommateur spécifiée parconsumer_parent_table_field
provider_parent_table_field
: Indiquez le nom de l’élément UI dans lequel l’utilisateur sélectionne une table de fournisseur (ne fournissez pas le nom de la table elle-même ici). À utiliser uniquement lorsque references est défini surPROVIDER_COLUMN_POLICY
ouPROVIDER_JOIN_POLICY
.consumer_parent_table_field
: Indiquez le nom de l’élément UI dans lequel l’utilisateur sélectionne une table de consommateurs (ne fournissez pas le nom de la table elle-même ici). À utiliser uniquement lorsque references est défini surCONSUMER_COLUMNS
,CONSUMER_JOIN_POLICY
ouCONSUMER_COLUMN_POLICY
.
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’application Web.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
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'
}
);
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
provider.register_db¶
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 de USAGE et SELECT sur la base de données à SAMOOHA_APP_ROLE, qui est utilisée 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 :
call samooha_by_snowflake_local_db.provider.register_db('SAMOOHA_SAMPLE_DATABASE');
library.register_schema¶
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 à USAGE et SELECT des privilèges sur le schéma de 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 :
call samooha_by_snowflake_local_db.library.register_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.register_managed_access_schema¶
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 :
call samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.register_objects¶
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.
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 :
call samooha_by_snowflake_local_db.library.register_objects(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS','SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS']);
library.unregister_db¶
Description : Annule la procédure register_db
et supprime les subventions 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’application Web.
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 :
call samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
library.unregister_schema¶
Description : Annule l’enregistrement d’un schéma, ce qui empêche les utilisateurs de lier 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 :
call samooha_by_snowflake_local_db.library.unregister_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.unregister_managed_access_schema¶
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 :
call samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.unregister_objects¶
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 :
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.
provider.view_provider_datasets¶
Description : Permet de voir tous les ensembles de données qui ont été ajoutés à la salle blanche.
Arguments :
cleanroom_name (string) - Nom de la salle blanche.
Retourne : (Table) Liste des ensembles de données du fournisseur dans cette salle blanche.
Exemple :
call samooha_by_snowflake_local_db.provider.view_provider_datasets($cleanroom_name);
provider.link_datasets¶
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', 'SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES']);
Note
Avant de relier une vue à la salle blanche, un utilisateur ayant le rôle ACCOUNTADMIN doit exécuter les opérations suivantes dans Snowflake :
grant reference_usage on database <DB NAME> to share in application package samooha_cleanroom_<cleanroom_name>;
provider.unlink_datasets¶
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', 'SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES']);
provider.view_provider_datasets¶
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);
provider.restrict_table_options_to_consumers¶
Description : Contrôle si un consommateur particulier peut accéder à une table dans la salle blanche. Cette procédure est replace only, de sorte que seuls les utilisateurs spécifiés ici pourront accéder à une table répertoriée ici. Les consommateurs auxquels l’accès a été accordé via provider.link_datasets, un appel précédent à cette procédure ou toute autre procédure perdront l’accès à une table répertoriée ici si elle ne figure pas dans la liste.
Arguments :
*cleanroom_name (string)
*access_details(Object) - Un objet JSON, où le nom est le nom pleinement qualifié d’une table ou d’une vue, et la valeur un tableau de localisateurs de comptes.
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 de jointure¶
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.
provider.view_join_policy¶
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);
provider.set_join_policy¶
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:EMAIL', 'SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES: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.
provider.view_added_templates¶
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);
provider.view_template_definition¶
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, 'prod_overlap_analysis');
provider.add_templates¶
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
. Les noms de modèles fournis par Snowflake comprennent « prod_overlap_analysis » et « prod_provider_data_analysis ».
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
call samooha_by_snowflake_local_db.provider.add_templates($cleanroom_name, ['prod_overlap_analysis']);
provider.clear_template¶
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');
provider.clear_all_templates¶
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);
provider.set_column_policy¶
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']);
provider.view_column_policy¶
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);
provider.add_custom_sql_template¶
Description : Ajoute un modèle personnalisé JinjaSQL dans la salle blanche. Le modèle peut ainsi être appelé par le consommateur.
Vous pouvez appeler cette API plusieurs fois pour ajouter plusieurs modèles personnalisés à la salle blanche. 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 vers le fournisseur, la commande doit répondre aux exigences suivantes :
Le nom du modèle personnalisé doit commencer par la chaîne
activation
. Par exemple,activation_custom_template
.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'
.
Les modèles JinjaSQL peuvent accéder à deux variables globales :
source_table : Un tableau de tables de fournisseurs. Lorsque le modèle est exécuté à l’aide de l’application Web, ces éléments sont choisis par le consommateur à l’aide d’un formulaire Web. Lorsque le modèle est exécuté à partir du code, ces éléments sont transmis à
consumer.run_analysis
à l’aide de l’argument provider_tables.my_table : Un tableau de tables de consommateurs. Lorsque le modèle est exécuté à l’aide de l’application Web, ces éléments sont choisis par le consommateur à l’aide d’un formulaire Web. Lorsque le modèle est exécuté à partir du code, ces éléments sont transmis à
consumer.run_analysis
à l’aide de l’argument consumer_tables.
Il faut faire référence à toutes les tables fournisseur/consommateur en utilisant ces arguments, car le nom de la vue sécurisée effectivement liée à la salle blanche sera différent du nom de la table. Il est essentiel que les alias de table de fournisseurs doivent être p (ou p1), p2, p3, p4, etc., et que les alias de table de consommateurs doivent être c (ou c1), c2, c3, etc. Cela est nécessaire pour appliquer les politiques de sécurité dans la salle blanche.
Toutes les colonnes spécifiées par l’utilisateur dans un modèle personnalisé JinjaSQL doivent être vérifiées à l’aide des filtres suivants pour s’assurer qu’elles sont conformes aux politiques de jointure et de colonne :
join_policy : Vérifie qu’une valeur de chaîne ou une clause de filtre est conforme à la politique de jointure
column_policy : Vérifie qu’une valeur de chaîne ou une clause de filtre est conforme à la politique de colonne
join_and_column_policy : Vérifie que les colonnes utilisées pour une jointure dans une clause de filtre sont conformes à la politique de jointure, et que les colonnes utilisées comme filtres sont conformes à la politique de colonne
Par exemple, dans la clause {{ where_clause | sqlsafe | join_and_column_policy }}
, une entrée de where_clause = 'p.HEM = c.HEM and p.STATUS = 1'
sera analysée pour vérifier que p.HEM
est dans la politique de jointure et p.STATUS
est dans la politique de colonne.
Remarque : utilisez le filtre sqlsafe avec une grande prudence, car il permet aux collaborateurs d’insérer du SQL pur dans le modèle.
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 salle blanche, elle spécifie la quantité de bruit de confidentialité différentielle appliquée aux données consommées par ce modèle. La valeur par défaut est 1.0, sans limite supérieure. Définissez cette valeur au montant maximal que la requête pourrait modifier en excluant une seule ligne des résultats. La confidentialité différentielle doit être activée dans cette salle blanche 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.
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 %};
$$);
provider.restrict_template_options_to_consumers¶
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.
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 Utilisation de l’API du développeur pour ajouter des modèles définis par le consommateur.
provider.list_template_requests¶
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
).
Important
Vous devez appeler provider.mount_request_logs_for_all_consumers
sur une salle blanche une fois avant d’appeler cette procédure. Il n’est pas nécessaire de l’appeler plus d’une fois.
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 requête. 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);
provider.approve_template_request¶
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('dcr_cleanroom',
'01b4d41d-0001-b572');
provider.reject_template_request¶
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('dcr_cleanroom',
'01b4d41d-0001-b572',
'Failed security assessment');
Chaînes de modèles¶
Utilisez les commandes suivantes pour créer et gérer des chaînes de templates.
provider.add_template_chain¶
Description : Crée une nouvelle chaîne de modèles. Les modèles doivent exister avant d’être ajoutés à la chaîne de modèles. 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
}
]
);
provider.view_added_template_chains¶
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);
provider.view_template_chain_definition¶
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');
provider.clear_template_chain¶
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');
provider.clear_all_template_chains¶
Description : Supprime toutes les chaînes de modèles de la salle blanche spécifiée.
Arguments :
cleanroom_name (string) - Nom de la salle blanche dont il faut supprimer toutes les chaînes de modèles.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
call samooha_by_snowflake_local_db.provider.clear_all_template_chains($cleanroom_name);
Analyses multi-fournisseurs¶
Ces procédures permettent une analyse multifournisseur.
provider.enable_multiprovider_computation¶
Description : Cette procédure permet d’utiliser des tables provenant de plusieurs salles blanches Snowflake, et éventuellement de différents fournisseurs, par un seul modèle fourni par le consommateur. Indiquez lesquelles de vos salles blanches peuvent faire l’objet d’une requête en combinaison avec quelles autres salles blanches par quels autres utilisateurs.
Arguments :
cleanroom_name (string) - Nom d’une salle blanche dont vous êtes propriétaire. Toutes les données de cette salle blanche peuvent être partagées avec d’autres salles blanches listées ci-dessous à la requête de l’utilisateur listé ci-dessous.
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 le suivant :
provider_org_name.provider_account_name.cleanroom_name
.
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,
'org1.account123',
$cleanroom_name_2);
provider.process_multiprovider_request¶
Description : Évalue une requête de nettoyage multiple envoyée par un consommateur. Les requêtes sont évaluées en fonction de facteurs tels que l’ancienneté de la requête, et si le demandeur et les salles blanches sont listés dans un appel précédent à provider.enable_multiprovider_compomputation
. Les requêtes qui passent l’évaluation sont approuvées.
Par défaut, toutes les requêtes multifournisseurs doivent être traitées à l’aide de cette procédure. Si vous préférez que les requêtes soient traitées automatiquement, appelez provider.resume_multiprovider_tasks
.
Après l’évaluation de la requête, la requête et le statut de l’évaluation sont inscrits dans le fichier
- samp:
Table
samooha_cleanroom_${CLEANROOM_NAME}. admin.request_log_multiprovider
(et la requête est approuvée, si elle passe l’évaluation). Vous pouvez consulter la liste des requêtes et le statut de l’évaluation en interrogeant cette table :
SELECT * FROM samooha_cleanroom_Samooha_Cleanroom_Multiprovider_Clean_Room_1.admin.request_log_multiprovider;
Une requête approuvée permet au même consommateur d’exécuter la même requête sur les mêmes données autant de fois qu’il le souhaite. Si vous souhaitez ultérieurement révoquer l’autorisation, vous devez définir le statut approuvé sur FALSE dans la table de connexion :
UPDATE samooha_cleanroom_Samooha_Cleanroom_Multiprovider_Clean_Room_1.admin.request_log_multiprovider SET APPROVED=False WHERE <CONDITIONS>;
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
. Vous pouvez également indiquer « -1 » pour approuver toutes les requêtes en attente. L’appel à cette fonction avec une requête déjà traitée échouera.
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);
provider.view_multiprovider_requests¶
Description : Affiche toutes les requêtes d’analyse multifournisseurs d’un compte et d’une salle blanche donnés.
Arguments :
cleanroom_name (string) - Affiche les requêtes qui concernent cette salle blanche.
consumer_account (string) - Affiche les requêtes provenant de ce compte consommateur.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
call samooha_by_snowflake_local_db.provider.process_multiprovider_request('my_cleanroom', [
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:REGION_CODE' ]);
provider.suspend_multiprovider_tasks¶
Description :
Arguments :
cleanroom_name (string) -
consumer_account (string) -
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
call samooha_by_snowflake_local_db.provider.process_multiprovider_request('my_cleanroom', [
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:REGION_CODE' ]);
provider.resume_multiprovider_tasks¶
Description :
Arguments :
cleanroom_name (string) -
consumer_account (string) -
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
call samooha_by_snowflake_local_db.provider.process_multiprovider_request('my_cleanroom', [
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:REGION_CODE' ]);
Activation du fournisseur¶
L’activation signifie l’exportation des résultats vers un fournisseur, un consommateur ou un tiers. Pour en savoir plus sur l’activation..
provider.set_activation_policy¶
Description : Définit les colonnes qui peuvent être utilisées dans un modèle d’activation. Garantit que seules les colonnes approuvées par le fournisseur peuvent être utilisées avec le modèle d’activation.
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' ]);
provider.request_provider_activation_consent¶
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. 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.
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');
Exécuter des analyses en tant que fournisseur¶
Découvrez comment exécuter une analyse fournisseur.
provider.enable_provider_run_analysis¶
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 fournisseur doit encore passer les contrôles de sécurité automatisés pour chaque 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>']);
provider.disable_provider_run_analysis¶
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>']);
library.is_provider_run_enabled¶
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)
provider.submit_analysis_request¶
Description : Demande l’autorisation à un consommateur d’exécuter le modèle spécifié dans la salle blanche spécifiée. 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éé.
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']
));
provider.check_analysis_status¶
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.
Exemple :
-- It can take up to 2 minutes for this to pick up the request ID after the initial request
call samooha_by_snowflake_local_db.provider.check_analysis_status(
$cleanroom_name,
$request_id,
'<CONSUMER_ACCOUNT>'
);
provider.get_analysis_result¶
Description : Obtenez les résultats d’une analyse réalisée par un fournisseur. Vous devez attendre que le statut de l’analyse soit annoncé comme COMPLETED pour obtenir les résultats. Les résultats 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.
provider.view_consumers¶
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);
provider.add_consumers¶
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’application Web et par l’API. Cette opération n’écrase 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. Notez que 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’application Web.
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) - Liste délimitée par des virgules de noms de comptes de consommateurs au 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, default : FALSE) - Activer ou non la confidentialité différentielle pour les utilisateurs de la liste dans cette salle blanche. La confidentialité différentielle doit être activée pour cette salle blanche afin de spécifier TRUE.
Renvoie : (string) Message de réussite ou d’échec. 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.
Exemple 1 :
call samooha_by_snowflake_local_db.provider.add_consumers($cleanroom_name, 'LOCATOR1,LOCATOR2', 'ORG1.NAME1,ORG2.NAME2');
provider.remove_consumers¶
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');
provider.set_cleanroom_ui_accessibility¶
Description : Affiche ou masque la salle blanche dans l’application Web à 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’application Web à tous les utilisateurs du compte fournisseur actuel. La salle blanche restera accessible via des appels API.
EDITABLE - Rend la salle blanche visible dans l’application Web.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
call samooha_by_snowflake_local_db.provider.set_cleanroom_ui_accessibility($cleanroom_name, 'HIDDEN');
provider.enable_laf_for_cleanroom¶
Description : Active l”exécution automatique inter-Cloud, ce 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 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 ayant le rôle ACCOUNTADMIN doit activer le exécution automatique inter-Cloud dans votre compte Snowflake avant que vous puissiez exécuter cette commande. Pour obtenir des instructions sur l’activation de l’exécution automatique inter-Cloud dans le compte Snowflake, voir Collaborer avec des comptes dans différentes régions.
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 Exécution automatique inter-Cloud.
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);
library.is_laf_enabled_on_account¶
Description : Renvoie si l’exécution automatique inter-Cloud est activée pour ce compte.
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();
Utiliser Python dans une salle blanche¶
provider.load_python_into_cleanroom¶
Description : Charge une fonction Python personnalisée 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.
Apprenez à importer 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 :
Signatures¶
Importer l’UDF en ligne :
(cleanroom_name String, function_name String, arguments Array, packages Array, rettype String, handler String, code String)
Importer l’UDF depuis 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 de ce paquet. Utilisez ce nom dans votre modèle personnalisé pour appeler la fonction spécifiée par gestionnaire avec tous les arguments décrits par arguments.
arguments(Array of string pairs) - Un tableau d’arguments requis par la fonction function_name. Chaque argument est une paire de chaînes délimitées par des espaces, avec le nom de l’argument et le type de données de l’argument SQL. Elle est utilisée pour la documentation de l’utilisateur et n’est pas validée. Par exemple : « taille entière », « chaîne de mois », « variante de données ».
packages(Array of string) - Liste des noms des paquets Python utilisés par le code. Il doit s’agir de paquets Python standard ; vos UDFs ne peuvent pas appeler d’autres UDFs importées.
imports (Array of string with single element) - Présent uniquement lors l’importation de votre UDF depuis une zone de préparation. Il s’agit d’un tableau de chaînes comportant un seul élément : l’adresse de la zone de préparation, par rapport à la zone de préparation où vous avez importé le code. Le chemin de la zone de préparation racine est disponible en appelant
provider.get_stage_for_python_files
.ret_type (string) - Type de données SQL de la valeur retournée par la fonction gestionnaire. Par exemple : « entier », « variante ».
handler (string) - La fonction d’entrée dans votre code qui doit être appelée lorsqu’un modèle appelle function_name.
Pour l’UDF en ligne, il s’agit du nom de la fonction, par exemple :
main
.Pour le code importé à partir d’une zone de préparation, il s’agit du nom de la fonction qualifié par le nom du fichier source, par exemple :
myscript.main
.
code (string) - Présent uniquement lors de l’importation d’UDF en tant que code en ligne. Ce devrait être un Python UDF.
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 variant', 'index integer'], # Arguments of the UDF, along with their type
['pandas', 'numpy'], # Packages UDF will use
'integer', # Return type of UDF
'main', # Handler
$$
import pandas as pd
import numpy as np
def main(data, index):
df = pd.DataFrame(data) # you can do something with df but this is just an example
return np.random.randint(1, 100)
$$
);
-- Upload from stage
call samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
$cleanroom_name,
'myfunc', # Name of the UDF
['data variant', 'index integer'], # Arguments of the UDF
['numpy', 'pandas'], # Packages UDF will use
['/test_folder/assign_group.py'], # Python file to import from a stage
'integer', # Return type of UDF
'assign_group.main' # Handler scoped to file name
);
provider.get_stage_for_python_files¶
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 à importer 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);
provider.view_cleanrooom_scan_status¶
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.
Renvoie : (string) Le statut de l’analyse.
Exemple :
call samooha_by_snowflake_local_db.provider.view_cleanroom_scan_status($cleanroom_name);
Commandes de récupération des métadonnées de la salle blanche¶
Utilisez les commandes suivantes pour afficher les propriétés pertinentes de la salle blanche.
provider.mount_request_logs_for_all_consumers¶
Description : Permet aux fournisseurs d’avoir accès aux informations qui leur parviennent des consommateurs d’une salle blanche.
.. # TODO : Besoin de détails sur ce point - quels sont les journaux qui exigent que ceci soit appelé en premier ?)
Arguments :
cleanroom_name (string) - Nom de la salle blanche pour laquelle les journaux de requête doivent être connectés.
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
call samooha_by_snowflake_local_db.provider.mount_request_logs_for_all_consumers($cleanroom_name);
provider.view_request_logs¶
Description : Permet de voir les connexions de requêtes envoyées par les consommateurs de cette salle blanche. Avant d’appeler cette fonction pour la première fois, vous devez appeler mount_request_logs_for_all_consumers
.
.. # TODO : Quelles requêtes sont journalisées ?)
Arguments :
cleanroom_name (string) - Nom de la salle blanche pour laquelle les journaux de requêtes doivent être connectés.
Retourne : Ensemble des paramètres connectés aux requêtes exécutées dans la salle blanche (table)
Exemple :
call samooha_by_snowflake_local_db.provider.view_request_logs($cleanroom_name);
Confidentialité différentielle¶
Ces commandes permettent de contrôler la confidentialité différentielle dans la salle blanche. Vous pouvez également spécifier la confidentialité différentielle au niveau du modèle ou du consommateur en appelant provider.add_custom_sql_template
ou provider.add_consumers
.
provider.is_dp_enabled_on_account¶
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();
provider.suspend_account_dp_task¶
Description : Désactive la tâche qui écoute les signaux 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, la confidentialité différentielle peut ou non continuer à opérer dans tous les modèles existants où la confidentialité différentielle est spécifiée, bien que vous ne subissiez pas de coûts liés à la confidentialité différentielle. Pour 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();
provider.resume_account_dp_task¶
Description : Reprend l’écoute de la tâche de confidentialité différentielle dans le compte courant. Les fonctionnalités des modèles avec confidentialité différentielle recommenceront à fonctionner. 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 d’aide générale¶
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.
library.enable_local_db_auto_upgrades¶
Description : Active la tâche, samooha_by_snowflake_local_db.admin.expected_version_task
, qui met automatiquement à niveau Snowflake Data Clean Rooms Native App lorsque de nouvelles versions sont publiées. 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’application native 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();
library.disable_local_db_auto_upgrades¶
Description : Désactive la tâche, samooha_by_snowflake_local_db.admin.expected_version_task
, qui met automatiquement à niveau Snowflake Data Clean Rooms Native App lorsque de nouvelles versions sont publiées.
**Arguments :**Aucun
Renvoie : (string) Message de réussite ou d’échec.
Exemple :
call samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();
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.
provider.view_ui_registration_request_log – DEPRECATED¶
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’application Web.
Description : Permet de voir la liste des requêtes soulevées à partir du compte pour enregistrer les salles blanches dans l’application Web. Chaque requête est associée à un ID qui peut être utilisé conjointement avec la procédure view_ui_registration_log
pour voir le statut des requêtes. Les requêtes sont partagées avec le backend où elles sont traitées et 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();
library.register_table_ou_vue – Obsolète¶
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);
library.register_table – Obsolète¶
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']);
library.register_managed_access_table – Obsolète¶
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']);
library.register_view – Obsolète¶
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']);
library.register_managed_access_view – Obsolète¶
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']);
library.unregister_table_ou_vue – Obsolète¶
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);
library.unregister_table – Obsolète¶
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']);
library.unregister_managed_access_table – Obsolète¶
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']);
library.unregister_view – Obsolète¶
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']);
library.unregister_managed_access_view – Obsolète¶
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']);
provider.create_cleanroom_listing – Obsolète¶
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>);
provider.register_cleanroom_in_ui – DEPRECATED¶
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’application Web.
Description : Enregistre une salle blanche en vue de son utilisation dans l’application Web par le consommateur. La salle blanche est créée et configurée par le fournisseur à l’aide des APIs du développeur. Cette commande l’enregistre ensuite dans l’application Web pour que les consommateurs puissent l’installer, ajouter leur table et exécuter toutes les analyses personnalisées que vous avez ajoutées sans avoir besoin d’utiliser les APIs de développement. Ils travaillent avec la salle blanche entièrement via l’interface utilisateur de l’application Web.
Vous pouvez appeler cette API plus d’une fois pour inclure plusieurs modèles personnalisés dans l’application Web.
**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>)