Snowflake Data Clean Rooms : guide de référence pour l’API fournisseurs

Ce guide décrit les APIs du développeur qui permettent à un fournisseur de créer, configurer et partager une salle blanche. Toutes les fonctions s’inscrivent dans le schéma suivant :

samooha_by_snowflake_local_db.provider
Copy

Configuration de l’environnement

Exécutez les commandes suivantes pour configurer l’environnement Snowflake avant d’utiliser les APIs du développeur pour travailler avec une Snowflake Data Clean Room. Si vous n’avez pas le rôle SAMOOHA_APP_ROLE, veuillez contacter votre administrateur de compte.

use role samooha_app_role;
use warehouse app_wh;
Copy

Crée un nom pour la salle blanche. Le nom de la salle blanche ne peut contenir que des caractères alphanumériques. Le nom de la salle blanche ne peut pas contenir de caractères spéciaux autres que des espaces et des traits de soulignement.

set cleanroom_name = 'Test Cleanroom 1';  -- This must only have alphanumeric characters.
Copy

Créer une salle blanche

Utilisez les commandes suivantes pour créer et supprimer une salle blanche :

provider.cleanroom_init

Description : crée une salle blanche dans votre compte. Vous pouvez donner à la salle blanche un nom qui ne contient que des caractères alphanumériques et des espaces. Vous devez également indiquer la distribution de la salle blanche pour préciser s’il s’agit d’une salle blanche de test que vous avez l’intention de partager uniquement au sein de votre organisation (INTERNAL) ou d’une salle blanche de production que vous avez l’intention de partager avec d’autres organisations (EXTERNAL).

Si aucune distribution n’est spécifiée, la valeur par défaut est INTERNAL.

Vous pouvez transformer une salle blanche INTERNAL en salle blanche EXTERNAL en utilisant :

alter application package samooha_cleanroom_<CLEANROOM_ID> SET DISTRIBUTION = EXTERNAL;
Copy

Note

La distribution peut être EXTERNAL ou INTERNAL. Si une salle blanche est marquée pour la distribution de EXTERNAL, Snowflake doit d’abord effectuer une analyse de sécurité automatisée avant de pouvoir être partagée avec les collaborateurs. Voir provider.set_default_release_directive pour plus de détails.

Entrée : cleanroom_name(chaîne), distribution(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
Copy

provider.set_default_release_directive

Description : définit une directive de version pour la salle blanche, c’est-à-dire la version et le correctif que les collaborateurs recevront.

Par défaut, toutes les salles blanches sont créées avec les numéros de version et de correctifs suivants :

  • version : V1_0

  • correctif : 0

Note

Si la distribution de la salle blanche est définie sur EXTERNAL, elle ne peut être appelée que lorsque l’analyse de sécurité de la salle blanche passe à l’état APPROVED. Pour voir le statut actuel de l’analyse, appelez :

show versions in application package samooha_cleanroom_<CLEANROOM_ID>;
Copy

Entrée : cleanroom_name(chaîne), version(chaîne), patch(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.set_default_release_directive($cleanroom_name, 'V1_0', '0');
Copy

provider.drop_cleanroom

Description : une salle blanche existante peut être supprimée par le créateur. Cela supprime entièrement la salle blanche, ce qui signifie que les consommateurs qui ont installé la salle blanche ne peuvent plus y accéder ou l’utiliser.

Entrée : cleanroom_name(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
Copy

Enregistrer et annuler l’enregistrement des données

Utilisez la commande suivante pour enregistrer et annuler l’enregistrement des bases de données, des schémas et des objets. Les tables et les vues doivent être enregistrées avant de pouvoir être liées à la salle blanche. Si vous enregistrez une base de données ou un schéma, tous les objets de cette base de données ou de ce schéma sont enregistrés.

provider.register_db

Description : s’exécute avec les droits des appelants et permet aux administrateurs de comptes d’enregistrer les bases de données pour qu’elles soient visibles par l’application Snowflake Data Clean Room. La possibilité d’accéder à SELECT est accordée à tous les schémas et tables de la base de données, ainsi qu’à l’application native Snowflake Data Clean Room (SAMOOHA_BY_SNOWFLAKE).

Entrée : db_name (chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.register_db('SAMOOHA_SAMPLE_DATABASE');
Copy

library.register_schema

Description : similaire à register_db, mais opère au niveau d’un schéma. Une table ou une chaîne représentant le nom pleinement qualifié du schéma peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier les objets au schéma à la salle blanche.

Si vous souhaitez enregistrer un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.register_managed_access_schema plutôt.

Entrée : schema_name (array)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.register_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

library.register_managed_access_schema

Description : similaire à register_schema, mais enregistre un schéma qui a été créé avec le paramètre WITH MANAGED ACCESS. Une table ou une chaîne représentant le nom pleinement qualifié du schéma peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier les objets au schéma à la salle blanche.

Entrée : schema_name (array)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

library.register_table_or_view

Description : enregistre les tables et les vues de tous types.

Entrée : object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)

Sortie : message de réussite (string)

Exemples

Pour enregistrer une table :

call samooha_by_snowflake_local_db.library.register_table_or_view(
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
    false,
    false,
    false,
    false);
Copy

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);
Copy

library.register_table

Description : similaire à register_db, mais opère au niveau d’une table. Une table ou une chaîne représentant le nom pleinement qualifié de la table peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier la table à la salle blanche.

Si vous souhaitez enregistrer des tables dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.register_managed_access_table plutôt.

Entrée : table_name (tableau)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.register_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.register_managed_access_table

Description : similaire à register_table, mais enregistre les tables dans un schéma qui a été créé avec le paramètre WITH MANAGED ACCESS. Une table ou une chaîne représentant le nom pleinement qualifié de la table peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier la table à la salle blanche.

Entrée : table_name (tableau)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.register_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.register_view

Description : similaire à register_db, mais opère au niveau d’un vue. Un tableau ou une chaîne représentant le nom pleinement qualifié de la vue peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier la vue à la salle blanche.

Si vous souhaitez enregistrer des vues dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.register_managed_access_view plutôt.

Entrée : view_name (array)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.register_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.register_managed_access_view

Description : similaire à register_view, mais enregistre les vues dans un schéma qui a été créé avec le paramètre WITH MANAGED ACCESS. Un tableau ou une chaîne représentant le nom pleinement qualifié de la vue peut être transmis, et des sélections d’attributions au rôle SAMOOHA_APP_ROLE sont effectuées, permettant à l’utilisateur de lier la vue à la salle blanche.

Entrée : view_name (array)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.register_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.unregister_db

Description : annule la procédure register_db et supprime les autorisations au niveau de la base de données accordées au rôle SAMOOHA_APP_ROLE et à l’application native Snowflake Data Clean Room. Cette opération supprime également toute base de données de l’élément déroulant d’UI.

Entrée : db_name (chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
Copy

library.unregister_schema

Description : annule l’enregistrement d’un schéma, ce qui empêche les utilisateurs de lier leurs tables et vues à la salle blanche.

Si vous souhaitez annuler l’enregistrement d’un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.unregister_managed_access_schema plutôt.

Entrée : schema_name (array)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.unregister_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

library.unregister_managed_access_schema

Description : similaire à unregister_schema, mais annule l’enregistrement d’un schéma qui a été créé avec le paramètre WITH MANAGED ACCESS.

Entrée : schema_name (array)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
Copy

library.unregister_table_or_view

Description : annule l’enregistrement des tables et des vues de tous types.

Entrée : object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)

Sortie : message de réussite (string)

Exemples

Pour annuler l’enregistrement d’une table :

call samooha_by_snowflake_local_db.library.unregister_table_or_view(
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
    false,
    false,
    false,
    false);
Copy

library.unregister_table

Description : similaire à unregister_db, mais opère au niveau d’une table. Un tableau ou une chaîne représentant le nom de table complet peut être transmis pour annuler l’enregistrement des tables. Les utilisateurs ne peuvent pas lier des tables non enregistrées à une salle blanche.

Si vous souhaitez annuler l’enregistrement des tables dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.unregister_managed_access_table plutôt.

Entrée : table_name (tableau)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.unregister_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.unregister_managed_access_table

Description : similaire à unregister_table, mais annule l’enregistrement des tables dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS).

Entrée : table_name (tableau)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.unregister_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

library.unregister_view

Description : similaire à unregister_db, mais opère au niveau d’un vue. Un tableau ou une chaîne représentant le nom de vue complet peut être transmis pour annuler l’enregistrement des vues. Les utilisateurs ne peuvent pas lier des vues non enregistrées à une salle blanche.

Si vous souhaitez annuler l’enregistrement des vues dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS), utilisez library.unregister_managed_access_view plutôt.

Entrée : view_name (array)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.unregister_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

bibliothèque.unregister_managed_access_view

Description : similaire à unregister_view, mais annule l’enregistrement des vues dans un schéma d’accès géré (c’est-à-dire un schéma créé avec le paramètre WITH MANAGED ACCESS).

Entrée : view_name (array)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Copy

Ajouter des ensembles de données et créer des politiques

Utilisez les commandes suivantes pour ajouter des données et définir des politiques pour la salle blanche.

provider.restrict_table_options_to_consumers

Description : contrôle si un consommateur particulier peut accéder à une table dans la salle blanche.

Le deuxième argument est un objet JSON, où chaque paire de nom/valeur est le nom d’une table et un tableau de consommateurs qui peuvent y accéder. Chaque consommateur est spécifié à l’aide de son localisateur de compte.

Entrée : cleanroom_name(string), access_details(variant)

Sortie : message de réussite (string)

Exemple :

call samooha_by_snowflake_local_db.provider.restrict_table_options_to_consumers(
    $cleanroom_name,
    {
        'DB.SCHEMA.TABLE1': ['CONSUMER_1_LOCATOR'],
        'DB.SCHEMA.TABLE2': ['CONSUMER_1_LOCATOR', 'CONSUMER_2_LOCATOR']
    }
);
Copy

provider.set_join_policy

Description : spécifie les colonnes sur lesquelles le consommateur est autorisé à effectuer une jointure lors de l’exécution de modèles dans la salle blanche. Notez que la politique de colonne est replace only, donc si la fonction est appelée à nouveau, la politique de colonne précédemment définie est complètement remplacée par la politique actuelle.

Notez que les vérifications sont effectuées en examinant soit l’argument where_clause d’un modèle SQL Jinja, soit tout argument auquel le filtre join_policy a été ajouté. Ce contrôle permet de vérifier s’il existe des colonnes non autorisées. Les requêtes comportant des caractères génériques peuvent ne pas être détectées par ces contrôles, et il convient de faire preuve de discernement lors de la conception du modèle d’analyse.

Par défaut, les vérifications sont effectuées sur des arguments SQL Jinja appelés where_clause. Veillez à utiliser cette balise pour activer cette vérification.

Entrée : cleanroom_name(chaîne), table_and_col_names(tableau)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.set_join_policy($cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:EMAIL', 'SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES:EMAIL']);
Copy

Modèles

Utilisez les commandes suivantes pour ajouter les modèles/analyses pris en charge dans cette salle blanche.

provider.add_templates

Description : ajoute une liste de modèles prédéfinis à l’aide de leurs identificateurs de noms. Les exemples incluent « prod_overlap_analysis » et « prod_provider_data_analysis ».

Entrée : cleanroom_name(chaîne), template_names(tableau)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.add_templates($cleanroom_name, ['prod_overlap_analysis']);
Copy

provider.view_template_definition

Description : étant donné le nom du modèle, récupère la définition du modèle dans la salle blanche. Cela permet à l’utilisateur de l’inspecter visuellement et de déterminer les paramètres qu’il doit passer lors de l’exécution du modèle.

Entrée : cleanroom_name (chaîne), template_name (chaîne)

Sortie : la définition du modèle (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.view_template_definition($cleanroom_name, 'prod_overlap_analysis');
Copy

provider.clear_template

Description : supprime un modèle spécifié (désigné par son nom) de la salle blanche.

Entrée : cleanroom_name(chaîne), template_name(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.clear_template($cleanroom_name, 'prod_custom_template');
Copy

provider.clear_all_templates

Description : supprime tous les modèles qui ont été ajoutés à la salle blanche. Une fois cet appel effectué, les modèles devront être ajoutés à nouveau.

Entrée : cleanroom_name(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.clear_all_templates($cleanroom_name);
Copy

provider.set_column_policy

Description : définit les colonnes des données sur lesquelles le consommateur peut effectuer des opérations. Cette fonction ne doit être appelée qu’après l’ajout du modèle. Il s’agit également d’une fonction du modèle, de sorte que les entrées doivent être de la forme template_name:full_table_name:column_name. Notez que la politique de colonne est replace only, donc si la fonction est rappelée, la politique de colonne précédemment définie est complètement remplacée par la politique actuelle.

L’API de politique de colonne ne doit pas être appelée sur des colonnes d’identité telles que l’adresse e-mail. Elle ne doit être utilisée que pour les colonnes d’agrégats et de groupes.

Notez que les contrôles sont effectués en analysant la requête SQL à exécuter sur les données pour toute colonne non autorisée. Les requêtes comportant des caractères génériques peuvent ne pas être détectées par ces contrôles, et il convient de faire preuve de discernement lors de la conception du modèle d’analyse.

Par défaut, les vérifications sont effectuées sur des arguments SQL Jinja appelés dimensions ou measure_columns. Veillez à utiliser ces balises pour activer cette vérification.

Vous pouvez également utiliser les balises join_policy et column_policy dans le modèle SQL Jinja pour appliquer des politiques de sécurité aux arguments personnalisés SQL Jinja.

Entrée : cleanroom_name(chaîne), analysis_and_table_and_columns(tableau)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.set_column_policy($cleanroom_name,
['prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:STATUS',
 'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
 'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE',
 'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES:CAMPAIGN']);
Copy

provider.add_custom_sql_template

Description : ajoute un modèle SQL Jinja personnalisé dans la salle blanche. Le modèle peut ainsi être appelé par le consommateur.

Vous pouvez appeler cette API plusieurs fois pour ajouter plusieurs modèles personnalisés à la salle blanche. Notez que cette procédure écrase tout modèle précédent portant le même nom. Si vous souhaitez modifier un modèle existant, transmettez le nom du modèle existant comme argument à l’API.

Si le consommateur utilise le modèle pour activer les résultats renvoyés au fournisseur, la commande doit répondre aux exigences suivantes :

  • Le nom du modèle personnalisé doit commencer par la chaîne activation. Par exemple, activation_custom_template.

  • La définition du modèle doit créer une table qui commence par cleanroom.activation_data_. Par exemple, CREATE TABLE cleanroom.activation_data_analysis_results AS ... .

  • La définition du modèle doit renvoyer la partie unique du nom de la table qui a été créée dans la définition, qui est la chaîne ajoutée à cleanroom.activation_data_. Par exemple, return 'data_analysis_results'.

Dans les modèles SQL Jinja, il y a deux arguments spéciaux :

  • source_table : un tableau de tables du côté du fournisseur

  • my_table : un tableau de tables du côté du consommateur

Il faut faire référence à toutes les tables fournisseur/consommateur en utilisant ces arguments, car le nom de la vue sécurisée effectivement liée à la salle blanche sera différent du nom de la table. Il est essentiel que les alias de table de fournisseurs doivent être p (ou p1), p2, p3, p4, etc., et que les alias de table de consommateurs doivent être c (ou c1), c2, c3, etc. Cela est nécessaire pour appliquer les politiques de sécurité dans la salle blanche.

En outre, pour que « column_policy » et « join_policy » effectuent des contrôles sur les requêtes d’analyse des consommateurs, tous les noms de colonnes doivent être référencés comme dimensions ou measure_columns dans le modèle SQL Jinja. Veillez à utiliser ces balises pour faire référence aux colonnes que vous souhaitez voir cochées par défaut dans les modèles SQL Jinja personnalisés.

Il est également possible de vérifier la conformité de tout argument d’un modèle SQL Jinja personnalisé avec les politiques de jointure et de colonne à l’aide des filtres suivants :

  • join_policy : vérifie si une valeur de chaîne ou une clause de filtre est conforme à la politique de jointure

  • politique_de_colonne : vérifie si une valeur de chaîne ou une clause de filtrage est conforme à la politique de colonne

  • join_and_column_policy : vérifie que les colonnes utilisées pour une jointure dans une clause de filtrage sont conformes à la politique de jointure et que les colonnes utilisées comme filtre sont conformes à la politique de colonne.

Par exemple, dans la clause {{ where_clause | sqlsafe | join_and_column_policy }}, une entrée p.HEM = c.HEM et p.STATUS = 1 sera analysée pour vérifier si p.HEM fait partie de la politique de jointure et p.STATUS de la politique de colonne.

Remarque : n’utilisez le filtre sqlsafe qu’avec précaution, car il permet aux collaborateurs d’introduire du code SQL pur dans le modèle.

Si vous ne spécifiez pas de liste de consommateurs, tous les consommateurs peuvent utiliser le modèle personnalisé. Si vous utilisez le paramètre pour spécifier une liste de consommateurs, seuls ces consommateurs peuvent utiliser le modèle dans la salle blanche.

Entrée : cleanroom_name(string), template_name(string), template(string), differential_privacy_sensitivity(float, OPTIONAL), consumer_list(array, OPTIONAL)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.add_custom_sql_template(
    $cleanroom_name, 'prod_custom_template', 
    $$
select 
    identifier({{ dimensions[0] | column_policy }}) 
from 
    identifier({{ my_table[0] }}) c 
    inner join 
    identifier({{ source_table[0] }}) p 
    on 
        c.identifier({{ consumer_id  }}) = identifier({{ provider_id | join_policy }}) 
    {% if where_clause %} where {{ where_clause | sqlsafe | join_and_column_policy }} {% endif %};
    $$);
Copy

provider.restrict_template_options_to_consumers

Description : contrôle si un consommateur particulier peut utiliser un modèle dans la salle blanche.

Le deuxième argument est un objet JSON, où chaque paire de nom/valeur est le nom d’un modèle et un tableau de consommateurs qui peuvent l’utiliser. Chaque consommateur est spécifié à l’aide de son localisateur de compte.

Entrée : cleanroom_name(string), access_details(variant)

Sortie : message de réussite (string)

Exemple :

call samooha_by_snowflake_local_db.provider.restrict_template_options_to_consumers(
    $cleanroom_name,
    {
        'prod_template_1': ['CONSUMER_1_LOCATOR', 'CONSUMER_2_LOCATOR']
    }
);
Copy

Modèles définis par le consommateur

Les APIs suivantes vous permettent d’approuver ou de rejeter une requête d’un consommateur pour ajouter un modèle à la salle blanche. Un modèle défini par le consommateur n’est ajouté à une salle blanche que si le fournisseur approuve la requête d’ajout du consommateur. Pour plus d’informations, voir Utilisation de l’API du développeur pour ajouter des modèles définis par le consommateur.

provider.list_template_requests

Description : répertorie toutes les requêtes des consommateurs qui souhaitent ajouter un modèle défini par le consommateur à une salle blanche. Cela inclut les requêtes en attente, approuvées et rejetées.

Entrée : cleanroom_name (chaîne)

Sortie : request_id(string), consumer_identifier(string), template_name(string), template_definition(string), status(string)

Exemple :

CALL samooha_by_snowflake_local_db.provider.list_template_requests('dcr_cleanroom');
Copy

provider.approve_template_request

Description : approuve une requête d’ajout d’un modèle à la salle blanche. Pour obtenir l’argument <request_id>, exécutez la commande provider.list_template_requests pour récupérer l’UUID de la demande.

Entrée : cleanroom_name (string), request_id (string)

Sortie : success message (chaîne)

Exemple :

CALL samooha_by_snowflake_local_db.provider.approve_template_request('dcr_cleanroom', 
    '01b4d41d-0001-b572');
Copy

provider.reject_template_request

Description : rejette une requête d’ajout d’un modèle à la salle blanche. Pour obtenir l’argument <request_id>, exécutez la commande provider.list_template_requests pour récupérer l’UUID de la demande.

Entrée : cleanroom_name (string), request_id (string), reason_for_rejection(string)

Sortie : success message (chaîne)

Exemple :

CALL samooha_by_snowflake_local_db.provider.reject_template_request('dcr_cleanroom',
  '01b4d41d-0001-b572',
  'Failed security assessment');
Copy

Configurer les personnes autorisées à effectuer des analyses

Utilisez les commandes suivantes pour configurer les personnes autorisées à effectuer des analyses dans la salle blanche. Vous pouvez spécifier le fournisseur (créateur de salle blanche), le consommateur (installateur de salle blanche) ou les deux.

provider.enable_provider_run_analysis

Description : permet au fournisseur (créateur de la salle blanche) d’effectuer des analyses dans la salle blanche (cette fonction est désactivée par défaut).

Note

Très important : cette opération doit être appelée après provider.add_consumer, et avant qu’un consommateur installe une salle blanche. Si cette configuration est modifiée alors que le consommateur a déjà installé sa salle blanche, il devra réinstaller la salle blanche pour tenir compte de la nouvelle configuration.

Entrée : cleanroom_name(chaîne), consumer_account_locator(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.enable_provider_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
Copy

provider.disable_provider_run_analysis

Description : empêche le fournisseur (créateur de la salle blanche) d’effectuer des analyses dans la salle blanche (cette fonction est désactivée par défaut).

Note

Très important : cette opération doit être appelée après provider.add_consumer, et avant qu’un consommateur installe une salle blanche. Si cette configuration est modifiée alors que le consommateur a déjà installé sa salle blanche, il devra réinstaller la salle blanche pour tenir compte de la nouvelle configuration.

Entrée : cleanroom_name(chaîne), consumer_account_locator(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.disable_provider_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
Copy

provider.enable_consumer_run_analysis

Description : permet au consommateur (installateur de la salle blanche) d’effectuer des analyses dans la salle blanche (cette fonction est activée par défaut).

Note

Très important : cette opération doit être appelée après provider.add_consumer, et avant qu’un consommateur installe une salle blanche. Si cette configuration est modifiée alors que le consommateur a déjà installé sa salle blanche, il devra réinstaller la salle blanche pour tenir compte de la nouvelle configuration.

Entrée : cleanroom_name(chaîne), consumer_account_locator(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.enable_consumer_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']); 
Copy

provider.disable_consumer_run_analysis

Description : empêche le consommateur (installateur de la salle blanche) d’effectuer des analyses dans la salle blanche (cette fonction est activée par défaut).

Note

Très important : cette opération doit être appelée après provider.add_consumer, et avant qu’un consommateur installe une salle blanche. Si cette configuration est modifiée alors que le consommateur a déjà installé sa salle blanche, il devra réinstaller la salle blanche pour tenir compte de la nouvelle configuration.

Entrée : cleanroom_name(chaîne), consumer_account_locator(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.disable_consumer_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']); 
Copy

library.is_provider_run_enabled

Description : vérifie si l’analyse de l’exécution du fournisseur est activée dans cette salle blanche. Remarque : l’approbation explicite doit encore être donnée en appelant consumer.enable_templates_for_provider_run (voir ci-dessous).

Entrée : cleanroom_name (chaîne)

Sortie : enabled message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
Copy

library.is_consumer_run_enabled

Description : vérifie si l’analyse du cycle du consommateur est activée dans cette salle blanche. Cet indicateur détermine si le consommateur de la salle blanche (l’installateur) peut effectuer des analyses, ou agir en tant que fournisseur de données dans le cadre de la collaboration.

Entrée : cleanroom_name (chaîne)

Sortie : enabled message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name)
Copy

Chaînes de modèles

Utilisez les commandes suivantes pour créer et gérer des chaînes de modèles. Pour des informations générales sur l’utilisation des chaînes de modèles, voir Utilisation des APIs du développeur pour exécuter les modèles de manière séquentielle.

provider.add_template_chain

Description : crée une nouvelle chaîne de modèles. Les modèles doivent exister avant d’être ajoutés à la chaîne de modèles.

Entrée : cleanroom_name(string), template_chain_name(string), templates(array of objects)

L’objet JSON qui représente un modèle peut contenir les champs suivants :

  • template_name (string) - Spécifie le modèle ajouté à la chaîne de modèles. Le modèle doit déjà exister.

  • cache_results (boolean) - Détermine si les résultats du modèle sont temporairement enregistrés afin que d’autres modèles de la chaîne de modèles puissent y accéder. Pour mettre en cache les résultats, spécifiez TRUE.

  • output_table_name (string) - Lorsque cache_results = TRUE, spécifie le nom de la table Snowflake dans laquelle les résultats du modèle sont stockés.

  • jinja_output_table_param (string) - Lorsque cache_results = TRUE, spécifie le nom du paramètre Jinja que les autres modèles doivent inclure pour accepter les résultats stockés dans output_table_name.

  • cache_expiration_hours (integer) - Lorsque cache_results = TRUE, spécifie le nombre d’heures avant que les résultats du cache ne soient supprimés. Lorsque le cache expire, la prochaine fois que la chaîne de modèles est exécutée, le cache est actualisé avec les résultats du modèle.

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.add_template_chain(
  'collab_clean_room',
  'my_chain',
  [
    {
      'template_name': 'crosswalk',
      'cache_results': True,
      'output_table_name': 'crosswalk',
      'jinja_output_table_param': 'crosswalk_table_name',
      'cache_expiration_hours': 2190
    },
    {
      'template_name': 'transaction_insights',
      'cache_results': False
    }
  ]
);
Copy

provider.view_added_template_chains

Description : permet de voir les chaînes de modèles actuellement actives dans la salle blanche.

Entrée : cleanroom_name (chaîne)

Sortie : les chaînes de modèles ajoutées (table)

Exemple :

call samooha_by_snowflake_local_db.provider.view_added_template_chains($cleanroom_name);
Copy

provider.view_template_chain_definition

Description : renvoie les attributs d’une chaîne de modèles.

Entrée : cleanroom_name (string), template_chain_name (string)

Sortie : la définition de la chaîne de modèles (string)

Exemple :

call samooha_by_snowflake_local_db.provider.view_template_chain_definition($cleanroom_name, 'insights_chain');
Copy

provider.clear_template_chain

Description : supprime une chaîne de modèle spécifié (désigné par son nom) de la salle blanche.

Entrée : cleanroom_name(string), template_name(string)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.clear_template_chain($cleanroom_name, 'insights_chain');
Copy

provider.clear_all_template_chains

Description : supprime toutes les chaînes de modèles qui ont été ajoutées à la salle blanche.

Entrée : cleanroom_name(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.clear_all_template_chains($cleanroom_name);
Copy

Analyses d’exécution en tant que créateur de salles blanches

provider.submit_analysis_request

Description : l’exécution d’une analyse en tant que fournisseur de salle blanche se fait en soumettant une requête d’analyse. Cette requête d’analyse est transmise à la salle blanche et vérifiée par rapport aux politiques de sécurité du consommateur. Une fois que les contrôles de sécurité et les couches de confidentialité différentielles autorisent l’analyse, celle-ci est exécutée dans la salle blanche et les résultats sont stockés en toute sécurité à l’intérieur de la salle blanche.

Lorsque l’on permet au fournisseur d’effectuer des analyses, on ajoute à la salle blanche une clé sécurisée par chiffrement que seul le fournisseur connaît. Cette clé est utilisée pour chiffrer les résultats de l’analyse, avant qu’ils ne transitent à nouveau vers le client fournisseur, où ils sont alors déchiffrés à l’aide de la clé sécurisée. Cela garantit que personne d’autre que le fournisseur ne peut jamais voir les résultats d’une analyse que le fournisseur a demandée.

Entrée : cleanroom_name (chaîne), consumer_account_locator (chaîne), template_name (chaîne), consumer_tables (tableau), provider_tables (tableau), analysis_arguments (objet)

Sortie : ID de requête (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.submit_analysis_request(
    $cleanroom_name, 
    '<CONSUMER_ACCOUNT>',
    'prod_overlap_analysis', 
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'], 
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'], 
    object_construct(       
      'dimensions', ['c.REGION_CODE'],        
      'measure_type', ['AVG'],           
      'measure_column', ['c.DAYS_ACTIVE']                                         
    ));

-- This API returns a request ID that we save into a local variable.
set request_id = '<REQUEST_ID';
Copy

provider.check_analysis_status

Description : une fois qu’une requête d’analyse a été soumise, utilisez cette API pour vérifier le statut de la requête. L’affichage de la requête peut prendre jusqu’à une minute après sa soumission. Une fois cette opération effectuée, le statut apparaît sous la forme suivante : COMPLETED.

Entrée : cleanroom_name (chaîne), request_id (chaîne), consumer_account_locator (chaîne)

Sortie : statut (chaîne)

Exemple :

-- It can take up to 2 minutes for this to pick up the request ID after the initial request
call samooha_by_snowflake_local_db.provider.check_analysis_status(
    $cleanroom_name, 
    $request_id, 
    '<CONSUMER_ACCOUNT>'
);
Copy

provider.get_analysis_result

Description : une fois que le statut de l’analyse apparaît comme COMPLETED pour un ID de requête donné, les résultats pour un request_id peuvent être obtenus en utilisant cette API. Celle-ci prend les résultats, les déchiffre à l’aide de la clé secrète créée dans votre compte lors de l’activation de l’analyse, et produit les résultats de l’analyse.

Entrée : cleanroom_name (chaîne), request_id (chaîne), consumer_account_locator (chaîne)

Sortie : résultats de l’analyse (table)

Exemple :

call samooha_by_snowflake_local_db.provider.get_analysis_result(
    $cleanroom_name, 
    $request_id, 
    '<CONSUMER_ACCOUNT>'
);
Copy

Partage avec des consommateurs

Utilisez les commandes suivantes pour partager une salle blanche avec des consommateurs.

provider.add_consumers

Description : ajoute des comptes consommateurs à la salle blanche. Des localisateurs de comptes consommateurs simples ou multiples et des noms de comptes sont ajoutés via des paramètres de chaîne contenant des valeurs séparées par des virgules. Vous pouvez également ajouter des comptes avec plusieurs appels à provider.add_consumers.

En option, un indicateur booléen peut être transmis pour indiquer si la confidentialité différentielle doit être activée pour cette salle blanche. Par défaut, la confidentialité différentielle n’est pas activée pour les salles blanches.

Entrée : cleanroom_name(string), consumer_account_locators(string), consumer_account_names(string), enable_differential_privacy(boolean, optional, default : FALSE)

Sortie : success message (chaîne)

Exemple 1 :

call samooha_by_snowflake_local_db.provider.add_consumers($cleanroom_name, 'IMA38718', 'PKBYKUM.SAMOOHA_MANAGED_ACCOUNT_DEMO_642778');
Copy

Dans l’exemple 1, le compte est locator=IMA38718, accountname=PKBYKUM.SAMOOHA_MANAGED_ACCOUNT_DEMO_642778.

Exemple 2 :

call samooha_by_snowflake_local_db.provider.add_consumers($cleanroom_name, 'IMA38718,LEB88915', 'PKBYKUM.SAMOOHA_MANAGED_ACCOUNT_DEMO_642778,PM.CLEANROOMAWSUSWEST21');
Copy

Dans l’exemple 2, le premier compte est locator=IMA38718, accountname=PKBYKUM.SAMOOHA_MANAGED_ACCOUNT_DEMO_642778. Le deuxième compte est locator=LEB88915, accountname=PM.CLEANROOMAWSUSWEST21.

provider.create_cleanroom_listing

Description : une fois qu’une salle blanche a été configurée, crée une annonce privée avec elle sur Snowflake Marketplace 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 dans Recherche de l’organisation et du nom de compte d’un compte.

Note

Pour utiliser cette procédure, vous devez avoir défini la directive de version. Voir provider.set_default_release_directive pour plus de détails.

Entrée : cleanroom_name(chaîne), consumer_account_name(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.create_cleanroom_listing($cleanroom_name, <consumerorg.consumeracct>);
Copy

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 la vôtre. L’exécution automatique inter-Cloud est également connue sous le nom d’exécution automatique des annonces (LAF).

Note

Un administrateur de Snowflake ayant le rôle ACCOUNTADMIN doit activer l’exécution automatique inter-Cloud dans votre compte Snowflake avant de pouvoir 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.

Après avoir activé l’exécution automatique inter-Cloud pour la salle blanche, vous pouvez ajouter des consommateurs à votre annonce comme d’habitude à l’aide de la commande provider.create_cleanroom_listing. L’annonce est automatiquement répliquée vers des cloud et des régions distantes, selon les besoins.

Entrée : cleanroom_name(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.enable_laf_for_cleanroom($cleanroom_name);
Copy

provider.view_cleanrooom_scan_status

Description : permet de voir le statut de l’analyse d’une salle blanche dont la valeur DISTRIBUTION est définie sur EXTERNAL. L’analyse doit être marquée comme « APPROVED » avant que la directive de version par défaut puisse être définie et que la salle blanche soit partagée avec les collaborateurs.

Entrée : cleanroom_name(chaîne)

Sortie : statut de l’analyse (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.view_cleanroom_scan_status($cleanroom_name);
Copy

Fonctions pour charger le code Python dans la salle blanche

provider.load_python_into_cleanroom

Description : charge confidentiellement n’importe quelle fonction Python dans la salle blanche. Tout code chargé dans la salle blanche à l’aide de cette API ne sera pas visible pour le consommateur. La fonction résultante peut être appelée à l’intérieur de n’importe quel modèle SQL Jinja comme salle blanche.

Note

Cette procédure ajoute votre code Python à la salle blanche en tant que correctif de la version existante. Cela déclenchera à nouveau l’analyse de sécurité et vous devrez peut-être attendre qu’elle soit APPROVED avant de partager la dernière version avec les collaborateurs. Si c’est le cas, appelez provider.set_default_release_directive avant de partager la salle blanche avec les fournisseurs disposant de la dernière version/du dernier correctif. Consultez [la documentation de l’application native de Snowflake] (https://docs.snowflake.com/fr/developer-guide/native-apps/native-apps-about) pour plus de détails.

Entrée : cleanroom_name(string), function_name(chaîne), arguments(tableau), packages(tableau), ret_type(tableau), handler(chaîne), code(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
    $cleanroom_name, 
    'assign_group',                      // Name of the UDF
    ['data variant', 'index integer'],   // Arguments of the UDF, along with their type
    ['pandas', 'numpy'],                 // Packages UDF will use
    'integer',                           // Return type of UDF
    'main',                              // Handler
    $$
import pandas as pd
import numpy as np

def main(data, index):
    df = pd.DataFrame(data)  # you can do something with df but this is just an example
    return np.random.randint(1, 100)
    $$
);
Copy

Méthodes d’enregistrement d’UI de salle blanche

Utilisez les commandes suivantes pour enregistrer une salle blanche chargée avec des analyses personnalisées dans l”[application Web d’une Snowflake Data Clean Room] (web-app-introduction.rst) sous l’onglet Analyse personnalisée.

provider.add_ui_form_customizations

Description: : ajoute des personnalisations pour le formulaire d’UI pour les salles blanches que vous voulez enregistrer dans l’application Web pour vos consommateurs. Vous devez au moins spécifier des valeurs pour display_name, description, et methodology.

Les personnalisations autorisées sont les suivantes :

  • type : un des éléments d’UI suivants :

    • boolean : sélecteur vrai/faux

    • integer : utilisez les flèches pour changer le nombre

    • multiselect : sélectionnez plusieurs éléments dans un menu déroulant

    • dropdown : sélectionnez 1 élément dans un menu déroulant

    • date : sélecteur de date

    • any : champ de saisie de texte régulier

  • choices : liste des choix disponibles pour les types dropdown et multiselect

  • default : toute valeur par défaut

  • display_name (Obligatoire) : nom d’affichage de l’élément UI

  • description (Obligatoire) : description apparaissant sous le nom

  • methodology (Obligatoire) : description de la manière dont le consommateur doit utiliser la forme pour exécuter une analyse.

  • infoMessage : message d’information qui s’affiche lorsque vous survolez l’icône « i » à côté du nom

  • size : choisissez la taille de l’élément entre XS, S, M, L, XL

  • required : indique si l’élément est obligatoire. Spécifiez TRUE ou FALSE.

  • group : mettez la même valeur pour plusieurs éléments afin de les regrouper dans le formulaire d’UI

  • render_table_dropdowns : contrôle si les listes déroulantes par défaut qui permettent aux utilisateurs de sélectionner des tables apparaissent dans l’annonce. Si elle n’est pas spécifiée, une liste déroulante apparaît pour les tables des fournisseurs et des consommateurs. Si vous souhaitez une liste déroulante composée de toutes les tables de fournisseurs ou de toutes les tables de consommateurs, mais que vous ne souhaitez pas avoir à les répertorier, utilisez le paramètre references à la place.

    La valeur de render_table_dropdowns est un dict composé des clés suivantes :

    • render_consumer_table_dropdown : si FALSE, la liste déroulante par défaut des tables de consommateurs est masquée. La valeur par défaut est TRUE.

    • render_provider_table_dropdown : si FALSE, la liste déroulante par défaut des tables de fournisseurs est masquée. La valeur par défaut est TRUE.

    Si vous masquez les listes déroulantes par défaut, vous pouvez utiliser les arguments spéciaux {{ source_table }} et {{ my_table}} dans le modèle personnalisé, puis définir votre propre liste déroulante contenant les tables souhaitées. Pour plus de détails sur l’utilisation de ces variables spéciales lors de la définition du modèle personnalisé, voir provider.add_custom_sql_template.

  • references : crée une liste déroulante contenant des tables ou des colonnes disponibles dans la salle blanche. Permet aux utilisateurs de sélectionner des tables et des colonnes lors de l’exécution d’une analyse dans l’application Web sans avoir à spécifier chaque table ou colonne individuellement lors de la création de l’interface utilisateur.

    Il possède les valeurs de chaîne possibles suivantes :

    • PROVIDER_TABLES : la liste déroulante contient toutes les tables du fournisseur dans la salle blanche.

    • CONSUMER_TABLES : la liste déroulante contient toutes les tables du consommateur dans la salle blanche.

    • PROVIDER_COLUMN_POLICY : la liste déroulante contient les colonnes des politiques de colonnes du fournisseur, par exemple, les colonnes sur lesquelles il est possible de filtrer. Si spécifié, vous devez également inclure le paramètre provider_parent_table_field permettant d’identifier quelle table de fournisseur contient les politiques de colonne.

    • PROVIDER_JOIN_POLICY : la liste déroulante contient les colonnes des politiques de jointure du fournisseur, c’est-à-dire les colonnes de la table du fournisseur que le consommateur peut utiliser comme clé de jointure. Si spécifié, vous devez également inclure le paramètre provider_parent_table_field permettant d’identifier quelle table de fournisseurs contient les politiques de jointure.

    • CONSUMER_COLUMNS : la liste déroulante contient les colonnes des politiques de jointure du consommateur, c’est-à-dire les colonnes de la table du consommateur que l’analyste peut utiliser comme clé de jointure. Si spécifié, vous devez également inclure le paramètre consumer_parent_table_field permettant “identifier quelle table de consommateurs contient les politiques de jointure.

  • provider_parent_table_field : spécifie le nom d’un champ UI qui permet à un utilisateur de sélectionner une table de fournisseurs. Obligatoire si le paramètre references spécifie PROVIDER_COLUMN_POLICY ou PROVIDER_JOIN_POLICY.

    Par exemple, si a_provider_table est le nom d’un champ UI qui permet à l’analyste de sélectionner une table de fournisseurs, le champ UI qui permet à l’utilisateur de sélectionner des colonnes dans une table de fournisseur peut inclure la paire de nom/valeur 'provider_parent_table_field': 'a_provider_table'.

  • consumer_parent_table_field : spécifie le nom d’un champ UI qui permet à un utilisateur de sélectionner une table de fournisseurs. Obligatoire si le paramètre references spécifie CONSUMER_COLUMNS.

    Par exemple, si a_consumer_table est le nom d’un champ UI qui permet à l’analyste de sélectionner une table de consommateurs, le champ UI qui permet à l’utilisateur de sélectionner des colonnes dans une table de consommateurs peut inclure la paire de nom/valeur 'consumer_parent_table_field': 'a_consumer_table'.

  • warehouse_hints : personnalisation facultative qui contrôle le type d”entrepôt que le compte du consommateur utilisera pour effectuer des analyses. Par exemple, pour la plupart des cas d’utilisation du machine learning, Snowflake recommande de spécifier un [entrepôt optimisé par Snowpark] (https://docs.snowflake.com/fr/user-guide/warehouses-snowpark-optimized). Pour connaître les valeurs valables pour warehouse_size, voir CREATE WAREHOUSE.

Les personnalisations visuelles sont les suivantes :

  • measure_columns : points de données quantitatifs affichés dans la sortie. Ces colonnes incluent des métriques et des dimensions qui permettent une analyse détaillée des données.

  • default_output_type : format dans lequel les données seront visualisées. Types prises en charge :

    • TABLE : affiche les données sous forme de tableau. Il s’agit du type de sortie par défaut.

    • BAR : visualise les données à l’aide de graphiques à barres, idéaux pour comparer différentes catégories.

    • LINE : utilise des graphiques linéaires pour afficher les tendances au fil du temps ou des données continues.

    • PIE : représente les données sous forme de graphique à secteurs, adapté pour afficher des proportions ou des pourcentages.

Entrée : nom du modèle (chaîne), template_description (dict), personnalisations (dict), output_config (dict)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.add_ui_form_customizations(
    $cleanroom_name,
    'prod_custom_template',
    {
        'display_name': 'Custom Analysis Template',
        'description': 'Use custom template to run a customized analysis.',
        'methodology': 'This custom template dynamically renders a form for you to fill out, which are then used to generate a customized analysis fitting your request.',
        'warehouse_hints': {
            'warehouse_size': 'xsmall',
            'snowpark_optimized': FALSE
        },
        'render_table_dropdowns': {
            'render_consumer_table_dropdown': false,
            'render_provider_table_dropdown': false
        }
    },    
    {
        'a_provider_table': {
            'display_name': 'Provider table',
            'order': 3,
            'description': 'Provider table selection',
            'size': 'S',
            'group': 'Seed Audience Selection',
            'references': ['PROVIDER_TABLES'],
            'type': 'dropdown'
        },
        'a_provider_col': {
            'display_name': 'Provider column',
            'order': 4,
            'description': 'Which col do you want to count on',
            'size': 'S',
            'group': 'Seed Audience Selection',
            'references': ['PROVIDER_COLUMN_POLICY'],
            'provider_parent_table_field': 'a_provider_table',
            'type': 'dropdown'
        }
    },
    {
        'measure_columns': ['col1', 'col2'],
        'default_output_type': 'PIE'
    }
);
Copy

provider.register_cleanroom_in_ui

Description : enregistre une salle blanche en vue de son utilisation par le consommateur dans l’application Web. La salle blanche est créée et configurée par le fournisseur à l’aide des APIs du développeur. Cette méthode l’enregistre ensuite dans l’application Web pour que les consommateurs puissent l’installer, ajouter leur table et exécuter toutes les analyses personnalisées que vous avez ajoutées sans avoir besoin d’utiliser d’APIs du développeur. Ils travaillent avec la salle blanche entièrement via l’interface utilisateur de l’application Web.

Vous pouvez appeler cette API plus d’une fois pour inclure plusieurs modèles personnalisés dans l’application Web.

Entrée : cleanroom_name(chaîne), template name(chaîne), consumer_account_locator(chaîne), user_email(chaîne)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.register_cleanroom_in_ui($cleanroom_name, 'prod_custom_template', <CONSUMER ACCOUNT LOCATOR>, <USER_EMAIL>)
Copy

provider.view_ui_registration_request_log

Description : vue de la liste des requêtes émises à partir du compte pour enregistrer les salles blanches dans l’application Web. Chaque requête est associée à un ID qui peut être utilisé conjointement avec la procédure view_ui_registration_log pour voir le statut des requêtes. Les requêtes sont partagées avec le backend où elles sont traitées et où la salle blanche est ajoutée à la salle blanche.

Entrée :

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.view_ui_registration_request_log();
Copy

Méthodes d’obtention des métadonnées de la salle blanche

Utilisez les commandes suivantes pour afficher les propriétés pertinentes de la salle blanche.

provider.describe_cleanroom

Description : crée un résumé textuel contenant toutes les informations sur ce qui a été ajouté à la salle blanche, y compris les modèles, les ensembles de données et les politiques.

Entrée : cleanroom_name(chaîne)

Sortie : chaîne de description complète de la salle blanche (table)

Exemple :

call samooha_by_snowflake_local_db.provider.describe_cleanroom($cleanroom_name);
Copy

provider.view_provider_datasets

Description : permet de voir tous les ensembles de données qui ont été ajoutés à la salle blanche.

Entrée : cleanroom_name(chaîne)

Sortie : tous les noms des ensembles de données des fournisseurs dans la salle blanche (table)

Exemple :

call samooha_by_snowflake_local_db.provider.view_provider_datasets($cleanroom_name);
Copy

provider.view_join_policy

Description : permet de voir les politiques de jointure actuellement actives dans la salle blanche.

Entrée : cleanroom_name (chaîne)

Sortie : la politique de jointure (table)

Exemple :

call samooha_by_snowflake_local_db.provider.view_join_policy($cleanroom_name);
Copy

provider.view_added_templates

Description : permet de voir les modèles actuellement actifs dans la salle blanche.

Entrée : cleanroom_name (chaîne)

Sortie : les modèles ajoutés (table)

Exemple :

call samooha_by_snowflake_local_db.provider.view_added_templates($cleanroom_name);
Copy

provider.view_column_policy

Description : permet de voir les politiques de colonne actuellement actives dans la salle blanche.

Entrée : cleanroom_name (chaîne)

Sortie : la politique de colonne (table)

Exemple :

call samooha_by_snowflake_local_db.provider.view_column_policy($cleanroom_name);
Copy

provider.view_consumers

Description : donne une vue sur les consommateurs avec lesquels la salle blanche a été partagée.

Entrée : cleanroom_name (chaîne)

Sortie : comptes de consommateurs ayant accès à la salle blanche (table)

Exemple :

call samooha_by_snowflake_local_db.provider.view_consumers($cleanroom_name);
Copy

provider.view_cleanrooms

Description : vue de toutes les salles blanches récemment créées, triées en fonction de leur date de création.

Entrée :

Sortie : toutes les salles blanches existantes classées par date de création (table)

Exemple :

call samooha_by_snowflake_local_db.provider.view_cleanrooms();
Copy

provider.view_request_logs

Description : permet de voir les journaux de requêtes envoyées par les consommateurs de cette salle blanche.

Entrée : cleanroom_name (chaîne)

Sortie : un ensemble de journaux enregistrés des requêtes exécutées sur la salle blanche (table)

Exemple :

call samooha_by_snowflake_local_db.provider.view_request_logs($cleanroom_name);
Copy

Méthodes d’aide générales

Utilisez les méthodes suivantes pour vous aider à tirer parti de la fonctionnalité de la salle blanche et des flux pris en charge.

provider.grant_reference_usage

Description : permet aux bases de données en amont qui contiennent des données de se voir accorder reference_usage à la salle blanche.

Note

Cette commande ne peut être utilisée qu’avec l’application Web.

Il s’agit d’une autorisation beaucoup plus limitée que celles qui figurent dans register_db. Cette procédure est nécessaire lorsque vous ajoutez des vues ou des UDTFs qui font référence à des données provenant de bases de données en amont, mais elle ne permet pas au rôle SAMOOHA_APP_ROLE de voir les tables réelles ou d’afficher ces bases de données dans le menu déroulant de l’application Web.

Cette commande doit être appelée sur les bases de données qui contiennent des données utilisées dans les vues liées et les UDTFs.

Entrée : database_names (tableau)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.grant_reference_usage(['<DATABASE_NAME>']);
Copy

provider.revoke_reference_usage

Description : supprime les bases de données de la liste des bases de données référencées créée par provider.grant_reference_usage.

Note

Cette commande ne peut être utilisée qu’avec l’application Web.

Entrée : database_names (tableau)

Sortie : success message (chaîne)

Exemple :

call samooha_by_snowflake_local_db.provider.revoke_reference_usage(['<DATABASE_NAME>']);
Copy

provider.mount_request_logs_for_all_consumers

Description : permet aux fournisseurs d’accéder aux informations qui leur sont communiquées par les consommateurs d’une salle blanche.

Entrée : cleanroom_name (chaîne)

Sortie : success message (chaîne)

Exemple :

CALL samooha_by_snowflake_local_db.provider.mount_request_logs_for_all_consumers($cleanroom_name);
Copy

library.enable_local_db_auto_upgrades

Description : active la tâche, samooha_by_snowflake_local_db.admin.expected_version_task, qui met automatiquement à niveau la Snowflake Native App pour Snowflake Data Clean Rooms à mesure que de nouvelles versions sont publiées.

Entrée : Aucune

Sortie : success message (chaîne)

Exemple :

CALL samooha_by_snowflake_local_db.library.enable_local_db_auto_upgrades();
Copy

library.disable_local_db_auto_upgrades

Description : désactive la tâche, samooha_by_snowflake_local_db.admin.expected_version_task, qui met automatiquement à niveau la Snowflake Native App pour Snowflake Data Clean Rooms à mesure que de nouvelles versions sont publiées.

Entrée : Aucune

Sortie : success message (chaîne)

Exemple :

CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();
Copy