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

Cette page décrit les procédures utilisées par les consommateurs d’API de clean rooms pour gérer leurs clean rooms. Pour les instructions de mise en place du codage, voir Configuration du codage.

Gérer l’accès des rôles

consumer.grant_run_on_cleanrooms_to_role

Description : accorde au rôle spécifié l’autorisation d’exécuter un sous-ensemble de procédures sur les clean rooms spécifiées. Clean rooms doit être installée dans ce compte, et non créée par ce compte. (C’est-à-dire uniquement les clean rooms pour lesquelles vous êtes consommateur)

Pour limiter l’accès à vos clean rooms, attribuez aux utilisateurs le rôle spécifié plutôt que SAMOOHA_APP_ROLE. En savoir plus sur l’accès par rôle.

Les procédures suivantes peuvent être exécutées à l’aide d’un rôle spécifié ici :

  • CONSUMER.VIEW_ADDED_TEMPLATES

  • CONSUMER.VIEW_ADDED_TEMPLATE_CHAINS

  • CONSUMER.GET_ARGUMENTS_FROM_TEMPLATE

  • CONSUMER.VIEW_COLUMN_POLICY

  • CONSUMER.VIEW_CONSUMER_DATASETS

  • CONSUMER.VIEW_JOIN_POLICY

  • CONSUMER.VIEW_PROVIDER_COLUMN_POLICY

  • CONSUMER.VIEW_PROVIDER_DATASETS

  • CONSUMER.VIEW_PROVIDER_JOIN_POLICY

  • CONSUMER.VIEW_REMAINING_PRIVACY_BUDGET

  • CONSUMER.RUN_ANALYSIS

  • CONSUMER.VIEW_PROVIDER_ACTIVATION_POLICY

  • CONSUMER.VIEW_ACTIVATION_POLICY

  • CONSUMER.RUN_ACTIVATION

Arguments :

  • cleanroom_names (Array of string) - Noms de toutes les clean rooms pour lesquelles accorder un accès limité au rôle spécifié.

  • run_role_name (String) - Nom d’un rôle qui a des autorisations limitées pour les clean rooms spécifiées. Vous devez créer le rôle avant d’appeler cette procédure.

Retourne : (string) - Message de réussite ou d’échec.

Exemple :

CREATE ROLE MARKETING_ANALYST_ROLE;
CALL samooha_by_snowflake_local_db.consumer.grant_run_on_cleanrooms_to_role(
  ['overlap_cleanroom', 'market_share_cleanroom'],
  'MARKETING_ANALYST_ROLE'
);
Copy

consumer.revoke_run_on_cleanrooms_from_role

Description : révoque les autorisations des rôles spécifiés sur les clean rooms spécifiées. Notez que si l’utilisateur a accès à un rôle non révoqué ou a le SAMOOHA_APP_ROLE, il pourra toujours exécuter des procédures en clean room dans les clean rooms spécifiées.

Arguments :

  • cleanroom_names (Array of string) - Noms d’une ou plusieurs clean rooms de ce compte.

  • run_role_name (String) - Nom du rôle qui ne doit plus avoir d’autorisations limitées sur les clean rooms spécifiées dans ce compte.

Retourne : (string) - Message de réussite ou d’échec.

Exemple :

CALL samooha_by_snowflake_local_db.consumer.revoke_run_on_cleanrooms_from_role(
  ['overlap_cleanroom', 'market_share_cleanroom'],
  'TEMP_USERS_ROLE'
);
Copy

Installation d’une salle blanche

Installez la salle blanche que le fournisseur a partagée via les commandes suivantes :

consumer.install_cleanroom

Description : installe (rejoint) la clean room créée par le fournisseur spécifié. Si vous interrompez une deuxième installation avant qu’elle ne soit terminée, la clean room sera corrompue et vous devrez recommencer cette procédure pour rendre la clean room utilisable.

Arguments :

  • cleanroom_name (String) - Nom de la clean room à installer.

  • provider_account_locator (String) - Emplacement du compte du fournisseur qui a créé cette clean room.

Retourne : (String) message de réussite.

Exemple :

call samooha_by_snowflake_local_db.consumer.install_cleanroom($cleanroom_name, $provider_locator);
Copy

consumer.is_enabled

Description : Une fois la salle blanche installée, il faut environ 1 minute au fournisseur pour finir de la configurer et l’activer de son côté. Cette fonction permet à l’utilisateur de vérifier le statut de la salle blanche et de voir si elle est activée ou non. L’indicateur passe généralement à True au bout d’une minute environ après l’installation de la salle blanche.

Arguments : cleanroom_name (string)

Retourne : est activé (boolean)

Exemple :

call samooha_by_snowflake_local_db.consumer.is_enabled($cleanroom_name);
Copy

consumer.uninstall_cleanroom

Description: désinstalle la clean room sur le compte du consommateur. Cette opération supprime toutes les bases de données associées à la clean room, y compris la base de données partagée de la clean room. Notez que la clean room peut toujours être installée à nouveau avec consumer.install_cleanroom.

Arguments : cleanroom_name (string)

Retourne : message de réussite (string)

Exemple :

call samooha_by_snowflake_local_db.consumer.uninstall_cleanroom($cleanroom_name);
Copy

Collaboration inter-Cloud

Installez une clean room créée sur une autre région Cloud. Pour en savoir plus.

library.enable_laf_on_account

Description : active l’exécution automatique inter-Cloud sur le compte courant. Exige le rôle ACCOUNTADMIN.

Arguments : Aucun

Retourne : (String) message de réussite.

Exemple :

USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.library.enable_laf_on_account();
Copy

consumer.is_laf_enabled_for_cleanroom

Description : décrit si l’exécution automatique inter-Cloud a été activée ou non pour cette clean room. L’exécution automatique inter-Cloud doit être configurée par un administrateur de compte.

Arguments :

  • cleanroom_name (string) - Nom de la salle blanche.

Retours : l’activation ou non de la réplication automatique inter-Cloud pour cette clean room.

Exemple :

CALL samooha_by_snowflake_local_db.consumer.is_laf_enabled_for_cleanroom($cleanroom_name);
Copy

consumer.request_laf_cleanroom

Description : ensembles des paramètres préalables à l’installation d’une clean room créée sur une autre région Cloud. L’appel de consumer.install_cleanroom avant d’appeler cette procédure échouera. Cette procédure renvoie le statut actuel à chaque appel. Continuez à faire des appels périodiques jusqu’à ce que le statut renvoyé soit FULFILLED, puis appelez consumer.install_cleanroom. Il peut s’écouler jusqu’à 10 minutes avant que le statut n’atteigne FULFILLED.

Arguments :

  • cleanroom_name (String) - Le nom de la clean room interrégionale qui sera installée.

  • provider_locator (String) - Emplacement du compte du fournisseur qui a créé cette clean room.

Retourne : (String) Message de statut de la requête. Continuez à appeler jusqu’à ce que le statut soit FULFILLED.

Exemple :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.consumer.request_laf_cleanroom(
  $cleanroom_name,$provider_locator);
Copy

consumer.setup_cleanroom_request_share_for_laf

Description : permet le partage de requêtes inter-Cloud avec un fournisseur spécifié pour une clean room spécifique. Cela est nécessaire pour que les clean rooms interrégionales disposent de toutes les fonctionnalités, y compris les journaux de requêtes, les requêtes de modèles de consommateurs et les analyses effectuées par les fournisseurs.

Arguments :

Retourne : (String) message de réussite.

Exemple :

CALL samooha_by_snowflake_local_db.consumer.setup_cleanroom_request_share_for_laf(
      $cleanroom_name, $provider_account_name);
Copy

consumer.setup_activation_share_to_laf_consumer

Description : permet l’activation du fournisseur entre un fournisseur et un consommateur sur des régions Cloud différentes.

Arguments :

Retourne : (String) message de réussite.

Exemple :

CALL samooha_by_snowflake_local_db.consumer.setup_activation_share_to_laf_consumer('org1.locator1,org2.locator2');
Copy

Analyse exécutée par le fournisseur

Pour en savoir plus sur l’analyse par le fournisseur

library.is_provider_run_enabled

Description : vérifie si cette clean room autorise les analyses effectuées par le fournisseur. Remarque : une approbation explicite doit encore être donnée en appelant consumer.enable_templates_for_provider_run avant que les fournisseurs puissent effectuer une analyse dans cette clean room.

Arguments : cleanroom_name (string)

Retourne : message activé (string)

Exemple :

call samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
Copy

consumer.enable_templates_for_provider_run

Description: accorde l’autorisation au fournisseur d’exécuter une analyse dans la clean room demandée. Elle est appelée après que le fournisseur a appelé provider.enable_provider_run_analysis pour activer l’analyse effectuée par le fournisseur dans une clean room. consumer.enable_templates_for_provider_run autorise le fournisseur à effectuer une analyse dans les modèles spécifiés dans la clean room spécifiée autant de fois qu’il le souhaite.

Arguments :

  • cleanroom_name (String) - Le nom de la clean room où le fournisseur peut effectuer des analyses.

  • template_names (Array of strings) - Un tableau de noms d’un ou plusieurs modèles de la clean room que le fournisseur peut exécuter.

  • enable_differential_privacy (Boolean) - Si TRUE, active la confidentialité différentielle pour tous les modèles listés dans template_names. La confidentialité différentielle ne peut être activée pour ces modèles que si elle est activée pour la salle blanche elle-même. Vous pouvez vérifier le statut de confidentialité différentielle pour une salle blanche en appelant consumer.is_dp_enabled. Vous pouvez personnaliser les paramètres de confidentialité en appelant consumer.set_privacy_settings. Pour en savoir plus.

  • template_configuration (Object, Optional) - Objet facultatif permettant de spécifier des paramètres supplémentaires pour chaque modèle. Cet objet contient des paires clé-valeur, où la clé est le nom du modèle (de template_names) et la valeur est un objet avec les propriétés suivantes :

    • warehouse_type (String) - Type d’entrepôt autorisé que le fournisseur peut utiliser avec ce modèle. Les valeurs autorisées sont celles définies pour WAREHOUSE_TYPE.

    • warehouse_size (Array of string) - Une ou plusieurs tailles d’entrepôt autorisées qui peuvent être utilisées avec ce type d’entrepôt et ce modèle. Les valeurs autorisées sont celles définies pour WAREHOUSE_SIZE.

Renvoie : (string) Message de réussite ou d’échec.

Exemples :

-- Simple example
CALL samooha_by_snowflake_local_db.consumer.enable_templates_for_provider_run($cleanroom_name, ['prod_overlap_analysis'], FALSE);

-- Specify warehouse types that the provider can request for each template.
call samooha_by_snowflake_local_db.CONSUMER.enable_templates_for_provider_run(
  $cleanroom_name,
  [$template1, $template2],
  TRUE,
  {
    $template1: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'LARGE']},
    $template2: {'warehouse_type': 'SNOWPARK-OPTIMIZED', 'warehouse_size': ['MEDIUM', 'XLARGE']},
    $template3: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'XLARGE']} 
  });
Copy

Analyses multi-fournisseurs

Ces procédures permettent une analyse multi-fournisseurs.

consumer.prepare_multiprovider_flow

Description : envoie une requête pour exécuter une requête multi-fournisseurs aux fournisseurs des clean rooms spécifiées. Cette procédure n’exécute pas réellement la requête ; elle demande simplement au fournisseur l’autorisation d’exécuter cette requête à l’avenir en appelant consumer.execute_multiprovider_flow.

Si un fournisseur donne son accord, le consommateur peut alors exécuter la requête en appelant consumer.execute_multiprovider_flow aussi souvent qu’il le souhaite (en fonction des éventuels paramètres de confidentialité différentielle configurés). Si vous souhaitez réexécuter une requête précédemment approuvée après avoir appeléprepare_multiprovider_flow avec de nouvelles valeurs, vous devez toujours appeler prepare_multiprovider_flow avec la requête précédente exacte, mais vous ne devez pas attendre l’approbation du fournisseur avant d’exécuter consumer.execute_multiprovider_flow.

La requête est valable pendant quatre heures, après quoi elle sera retirée de la file d’attente.

Arguments :

  • cleanroom_names (String array) - Tableau des noms des clean rooms dans le compte du consommateur. Ces clean rooms doivent être installées.

  • template_name (String) - Nom du modèle à exécuter dans chacune des clean rooms listées dans cleanroom_names. Il peut s’agir d’un modèle fourni par Snowflake et ajouté par le fournisseur de la clean room, ou d’un modèle personnalisé que vous avez précédemment soumis à la clean room en appelant consumer.create_template_request. Dans les deux cas, le modèle doit déjà être présent dans une clean room pour que la requête soit soumise au fournisseur de la clean room.

  • arguments (Object) - Un objet avec les champs suivants, utilisé pour remplir le modèle :

    • source_table (String array) - Un tableau de noms de tables utilisé pour remplir le tableau source_table disponible pour le modèle. La syntaxe de chaque nom de table est la suivante : cleanroom_name.db.schema.table. Chaque fournisseur ne voit que ses propres tables de clean room figurant dans la liste de la requête.

    • my_table (String array) - Un tableau de noms de tables de vos propres données utilisé pour remplir le tableau my_table disponible pour la chaîne. Utilisez la même syntaxe que celle transmise à l’argument consumer_tables de consumer.run_analysis.

    • Toute autre variable du modèle - Passez toutes les valeurs requises pour le modèle sous forme de paires clé/valeur.

Returns : (String) ID de requête à transmettre au consommateur . execute_multiprovider_flow.

Exemple :

CALL samooha_by_snowflake_local_db.consumer.prepare_multiprovider_flow(
    [$cleanroom_name_1, $cleanroom_name_2],
    'prod_aggregate_data',
    object_construct(
        'source_table', [
            CONCAT($cleanroom_name_1, '.SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'), 
            CONCAT($cleanroom_name_2, '.SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS')
        ],
        'my_table', ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']),
        'hem_col', ['p1.HASHED_EMAIL', 'p2.HASHED_EMAIL'],
        'dimensions', ['p1.STATUS', 'p2.STATUS'],
        'consumer_join_col', 'HASHED_EMAIL'
    )
);
Copy

consumer.execute_multiprovider_flow

Description : exécute la requête la plus récente soumise par le consommateur à consumer.prepare_multiprovider_flow. La procédure exécute la requête dans chaque clean room spécifiée où la requête a été approuvée par le fournisseur et renvoie l’union de tous les résultats de la requête. L’exécution de cette procédure est le seul moyen de savoir si un fournisseur a approuvé une requête.

Arguments :

  • cleanroom_names (String array) - Tableau des noms de clean rooms dans lesquelles la requête préparée doit être exécutée. Ce tableau doit correspondre à la liste complète des clean rooms figurant dans la requête.

  • request_id (String, facultatif) - ID de requête renvoyée par prepare_multiprovider_flow.

Retourne : (Table) union des résultats de toutes les clean rooms agréées. Si un fournisseur n’a jamais approuvé une requête de ce consommateur, la requête échouera. Toutefois, si un fournisseur a approuvé une autre requête de ce consommateur, mais pas la requête la plus récente, la procédure renverra un jeu de résultats vide.

Exemple :

CALL samooha_by_snowflake_local_db.consumer.execute_multiprovider_flow([$cleanroom1, $cleanroom2], $request_id);
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.

consumer.register_db

Description : l’ajout d’une base de données dans la salle blanche vous permet de lier n’importe quel ensemble de données de la base. Si ce n’est pas le cas, les autorisations devront être accordées à samooha_app_role individuellement.

Arguments : db_name (string)

Retourne : message de réussite (string)

Exemple :

USE ROLE <ROLE_WITH_MANAGE GRANTS>;

call samooha_by_snowflake_local_db.consumer.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.

Arguments : schema_name (array)

Retourne : message de réussite (string)

Exemple :

USE ROLE <ROLE_WITH_MANAGE GRANTS>;

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.

Arguments : schema_name (array)

Retourne : message de réussite (string)

Exemple :

USE ROLE <ROLE_WITH_MANAGE GRANTS>;

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

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 à consumer.link_datasets. Vous pouvez enregistrer des groupes d’objets plus larges en appelant library.register_schema, library.register_managed_access_schema ou consumer.register_db.

Arguments :

  • object_names (array) - Tableau de noms d’objets entièrement qualifiés. Ces objets peuvent ensuite être reliés à la salle blanche.

Retourne : message de réussite (string)

Exemples

Pour enregistrer une table et une vue :

USE ROLE <ROLE_WITH_MANAGE GRANTS>;

call samooha_by_snowflake_local_db.library.register_objects(
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS','SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS']);
Copy

library.enable_external_tables_on_account

Description : activez l’utilisation de tables Iceberg ou externes dans toutes les clean rooms de ce compte. Doit être appelé par un ACCOUNTADMIN dans les comptes fournisseur et consommateur pour permettre à Iceberg ou à des tables externes d’être liés par l’un ou l’autre des comptes. Pour limiter cette possibilité à des clean rooms spécifiques de ce compte, appelez plutôt enable_external_tables_for_cleanroom.

Arguments : Aucun

Renvoie : (string) Message de réussite ou d’échec.

Exemple :

USE ROLE ACCOUNTADMIN;

CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
Copy

consumer.enable_external_tables_for_cleanroom

Description : permet aux tables Iceberg ou externes d’être liées à la clean room spécifiée dans ce compte par le consommateur. Pour autoriser Iceberg et les tables externes pour toutes les clean rooms de ce compte, appelez plutôt enable_external_tables_on_account.

Arguments :

  • cleanroom_name (String) - Le nom de la clean room dans laquelle le fournisseur peut lier des tables Iceberg ou externes.

Renvoie : (string) Message de réussite ou d’échec. En cas de succès, il déclenche une analyse de sécurité et fournit également le numéro du correctif qui sera généré si l’analyse de sécurité réussit.

Exemple :

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

library.register_table_ou_vue – Obsolète

Attention

Cette commande est désormais obsolète. Utilisez 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)

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 – Obsolète

Attention

Cette commande est désormais obsolète. Utilisez library.register_objects.

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.

Arguments : table_name (array)

Retourne : message de réussite (string)

Exemple :

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

library.register_managed_access_table – Obsolète

Attention

Cette commande est désormais obsolète. Utilisez library.register_objects.

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.

Arguments : table_name (array)

Retourne : message de réussite (string)

Exemple :

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

library.register_view – Obsolète

Attention

Cette commande est désormais obsolète. Utilisez library.register_objects.

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.

Arguments : view_name (array)

Retourne : message de réussite (string)

Exemple :

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

library.register_managed_access_view – Obsolète

Attention

Cette commande est désormais obsolète. Utilisez library.register_objects.

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.

Arguments : view_name (array)

Retourne : message de réussite (string)

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.

Arguments : db_name (string)

Retourne : message de réussite (string)

Exemple :

USE ROLE <ROLE_WITH_MANAGE GRANTS>;

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.

Arguments : schema_name (array)

Retourne : message de réussite (string)

Exemple :

USE ROLE <ROLE_WITH_MANAGE GRANTS>;

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.

Arguments : schema_name (array)

Retourne : message de réussite (string)

Exemple :

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

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é.

Retourne : message de réussite (string)

Exemples

Pour annuler l’enregistrement d’une table et d’une vue :

USE ROLE <ROLE_WITH_MANAGE GRANTS>;

call samooha_by_snowflake_local_db.library.unregister_objects(
    ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS','SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS']);
Copy

library.unregister_table_or_view – Obsolète

Attention

Cette commande est désormais obsolète. Utilisez 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)

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 – Obsolète

Attention

Cette commande est désormais obsolète. Utilisez library.unregister_objects

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.

Arguments : table_name (array)

Retourne : message de réussite (string)

Exemple :

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

library.unregister_managed_access_table – Obsolète

Attention

Cette commande est désormais obsolète. Utilisez 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éé avec le paramètre WITH MANAGED ACCESS).

Arguments : table_name (array)

Retourne : message de réussite (string)

Exemple :

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

library.unregister_view – Obsolète

Attention

Cette commande est désormais obsolète. Utilisez library.unregister_objects

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.

Arguments : view_name (array)

Retourne : message de réussite (string)

Exemple :

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

library.unregister_managed_access_view – Obsolète

Attention

Cette commande est désormais obsolète. Utilisez 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éé avec le paramètre WITH MANAGED ACCESS).

Arguments : view_name (array)

Retourne : message de réussite (string)

Exemple :

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

Gérer les politiques

consumer.set_join_policy

Description : spécifie les colonnes sur lesquelles le fournisseur est autorisé à effectuer une jointure lors de l’exécution de modèles dans la salle blanche, lors de l’utilisation de l’analyse d’exécution du fournisseur. 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 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.

Arguments : cleanroom_name(string), table_and_col_names(array)

Retourne : message de réussite (string)

Exemple :

call samooha_by_snowflake_local_db.consumer.set_join_policy($cleanroom_name,
  ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL', 'MYDB.MYSCH.EXPOSURES:HASHED_EMAIL']);
Copy

consumer.set_column_policy

Description : définit les colonnes des données sur lesquelles le fournisseur 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.

La politique de colonne ne doit pas être appliquée aux 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.

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.

Arguments : cleanroom_name(string), analysis_and_table_and_columns(array)

Retourne : message de réussite (string)

Exemple :

call samooha_by_snowflake_local_db.consumer.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']);
Copy

consumer.view_column_policy

Description : donne une vue de toutes les politiques de colonne qui ont été appliquées à la salle blanche par le consommateur.

Arguments : cleanroom_name (string)

Retourne : La politique de la colonne (table)

Exemple :

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

consumer.view_provider_column_policy

Description : permet de voir toutes les politiques de colonne qui ont été appliquées à la salle blanche par le fournisseur.

Arguments : cleanroom_name (string)

Retourne : La politique de la colonne (table)

Exemple :

call samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
Copy

Modèles

Les commandes suivantes permettent aux utilisateurs de travailler avec les modèles disponibles dans la salle blanche.

consumer.view_template_definition

Description : les définitions du modèle de salle blanche sont disponibles pour aider à déterminer quels paramètres doivent être transmis au modèle.

Si un modèle a été masqué en appliquant l’argument is_obfuscated, vous ne pouvez pas voir la définition du modèle.

Note

Notez que toutes les procédures de Samooha sont chiffrées et ne sont pas visibles par défaut. Cependant, tous les modèles personnalisés que vous ajoutez vous seront visibles.

Arguments : cleanroom_name (string), template_name (string)

Retourne : La définition du modèle (string)

Exemple :

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

consumer.get_arguments_from_template

Description : définit la manière dont les données doivent être organisées et les données requises pour chaque modèle afin de garantir que le résultat est facilement assimilable.

Arguments : cleanroom_name (string), template_name (string)

Retourne : Liste d’arguments et spécification (table)

Exemple :

call samooha_by_snowflake_local_db.consumer.get_arguments_from_template($cleanroom_name, 'prod_overlap_analysis');
Copy

Chaînes de modèles

Les commandes suivantes permettent aux utilisateurs de travailler avec les chaînes de modèles disponibles dans la salle blanche. 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.

consumer.view_added_template_chains

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

Arguments : cleanroom_name (string)

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

Exemple :

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

consumer.view_template_chain_definition

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

Arguments : cleanroom_name (string), template_chain_name (string)

Renvoie : Définition de la chaîne de modèles (string)

Exemple :

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

Exécuter des analyses

Les commandes suivantes exécutent une analyse ou une activation spécifique en fonction du modèle spécifié.

consumer.run_analysis

Description : Exécute une analyse à l’aide d’un modèle ou d’une chaîne de modèles et renvoie la table des résultats.

Si la confidentialité différentielle est activée, la requête peut échouer si vous avez atteint votre limite budgétaire pour ce modèle.

Si un modèle a été masqué en appliquant l’argument is_obfuscated, vous devez utiliser Snowflake Enterprise Edition ou une édition supérieure pour pouvoir exécuter le modèle.

Arguments :

  • cleanroom_name (string) - Nom de la salle blanche dans laquelle le modèle doit être exécuté.

  • template_name (string) - Nom du modèle ou de la chaîne de modèles à exécuter dans la salle blanche.

  • consumer_tables (array of string) - Tableau de noms de tables de consommateurs entièrement qualifiés. Ces valeurs sont affectées à la variable de modèle my_table. Ces tables doivent déjà être liées à la salle blanche. Pour connaître les tables disponibles, appelez consumer.view_consumer_datasets. Par exemple, si vous transmettez [“mytable1”, “mytable2”, “mytable3”], le modèle peut accéder à ces valeurs en tant que {{my_table[0]}}, {{my_table[1]}} et {{my_table[2]}} respectivement.

  • provider_tables (array of string) - Tableau de noms de tables de fournisseurs entièrement qualifiés. Ces valeurs sont affectées à la variable de modèle source_table. Ces tables doivent déjà être liées à la salle blanche. Pour connaître les tables disponibles, appelez consumer.view_provider_datasets. Par exemple, si vous transmettez [“sourcetable1”, “sourcetable2”, “sourcetable3”], le modèle peut accéder à ces valeurs en tant que {{source_table[0]}}, {{source_table[1]}} et {{source_table[2]}} respectivement.

  • analysis_arguments (objet) - Un objet contenant des paires de clés/valeurs transmises au modèle. Le modèle peut accéder à la variable par le nom de clé. Si vous indiquez {'age': 20}, le modèle accède à la valeur sous la forme {{age}}. Transmettez un objet vide si aucune valeur n’est requise. Pour voir quelles valeurs sont nécessaires, examinez le modèle en question en appelant consumer.view_template_definition. Si vous fournissez un nom de colonne, examinez le modèle pour déterminer si vous devez qualifier le nom de la colonne avec le nom de la table. Si la table a pour alias p ou c, utilisez les alias de table p et c en minuscules pour les noms de colonne. C’est-à-dire p.age_band et non P.age_band. Cet objet a une valeur réservée facultative :

  • use_cache (booléen, facultatif) - Utilisation ou non des résultats mis en cache pour la même requête. La valeur par défaut est FALSE.

Retourne : (Table) Résultats de la requête.

Exemple :

call samooha_by_snowflake_local_db.consumer.run_analysis(
  $cleanroom_name,
  'prod_overlap_analysis',
  ['SAMOOHA_SAMPLE_DATABASE.MYDATA.CONVERSIONS'],  -- Consumer tables
  ['MYDB.MYSCH.EXPOSURES'],      -- Provider tables
  object_construct(
    'max_age', 30
  )
);
Copy

Activation

Pour plus d’informations sur l’activation des résultats, consultez l’aperçu de l’activation.

library.view_external_activation_history

Description : vue de l’historique des requêtes d’activation dans le compte courant.

Arguments : Aucun

Retourne : une table avec les détails et le statut des requêtes d’activation.

Exemple :

call SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.view_external_activation_history();
Copy

consumer.set_activation_policy

Description : Définit les colonnes qui peuvent être utilisées dans les modèles d’activation. Cela garantit que seules les colonnes approuvées par le consommateur peuvent être utilisées avec le modèle d’activation.

Entrée : cleanroom_name (string), columns (array)

L’argument columns est passée au format <template_name>:<fully_qualified_table_name>:<column_name>.

Sortie : Success message

Exemple :

call samooha_by_snowflake_local_db.consumer.set_activation_policy('my_cleanroom', [ 
    'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:HASHED_EMAIL',  
    'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:REGION_CODE' ]);
Copy

consumer.run_activation

Description: exécute un modèle qui renvoie les résultats vers le compte Snowflake du consommateur ou du fournisseur. L’argument consumer_direct_activation détermine s’il s’agit d’une activation de consommateur ou de fournisseur.

Arguments :

  • cleanroom_name (String) - Nom de la clean room dans laquelle l’activation doit être exécutée.

  • segment_name (String) Chaîne arbitraire utilisée pour étiqueter les lignes générées par cette activation. Chaque cycle d’activation ajoute de nouvelles lignes à une table de résultats existante. Fournissez une chaîne unique dans ce champ chaque fois que vous appelez cette procédure afin de pouvoir filtrer les résultats sur une exécution spécifique.

  • template_name (String) - Nom du modèle d’activation à appeler.

  • consumer_tables (Array of string) - Tableau de noms de tables de consommateurs entièrement qualifiés à transmettre au modèle.

  • provider_tables (Array of string) - Tableau de noms de tables de fournisseurs entièrement qualifiés à transmettre au modèle.

  • activation_arguments (Object) - Ensemble clé-valeur des arguments à transmettre au modèle.

  • consumer_direct_activation (Boolean, optional) - TRUE pour renvoyer les résultats vers le compte du consommateur, FALSE pour envoyer les résultats au fournisseur. La valeur par défaut est FALSE.

Retourne : (String) Message de réussite en cas de succès.

Exemple :

-- Run a consumer activation, as specified by the final TRUE argument.
SET segment_name = 'my_activation_segment';
CALL samooha_by_snowflake_local_db.consumer.run_activation(
  $cleanroom_name,
  $segment_name,
  $template_name,
  ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'], 
  ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
  object_construct(
    'c_join_col', 'c.hashed_email',
    'p_join_col', 'p.hashed_email'
  ),
  TRUE);
Copy

Modèles définis par le consommateur

Les APIs suivantes vous permettent d’ajouter des modèles définis par le consommateur à une salle blanche. Pour plus d’informations, voir Utilisation de l’API du développeur pour ajouter des modèles définis par le consommateur.

consumer.create_template_request

Description: envoie une requête au fournisseur d’une clean room, lui demandant d’approuver un modèle personnalisé afin qu’il puisse être ajouté à la clean room. Voir Utilisation de l’API du développeur pour ajouter des modèles définis par le consommateur.

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_definition (String) - Le modèle JinjaSQL. Apprenez la syntaxe des modèles

Retourne : message de réussite (string)

Exemple :

  CALL samooha_by_snowflake_local_db.consumer.create_template_request('dcr_cleanroom', 
  'my_analysis', 
  $$
  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

consumer.get_sql_jinja

Description : évalue un modèle JinjaSQL en une instruction SQL valide. Cette procédure ne peut traiter que les déclarations standard JinjaSQL elle ne peut pas traiter les extensions en clean room de JinjaSQL telles que join_policy ou column_policy.

Arguments :

  • template_string (String) - Le modèle à traiter. Seule la norme JinjaSQL est prise en charge.

  • arguments (Object) - Un objet dont les noms de champ correspondent aux variables utilisées dans le modèle et dont les valeurs sont insérées dans les espaces réservés aux variables correspondantes du modèle dans la requête générée.

Retourne : (String) L’instruction SQL générée par le modèle soumis avec les valeurs des variables fournies.

Exemple :

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.CONSUMER.GET_SQL_JINJA(
$$
SELECT COUNT(*), IDENTIFIER({{ group_by_col }})
  FROM IDENTIFIER({{ my_table | sqlsafe }})
  INNER JOIN IDENTIFIER({{ source_table | sqlsafe }})
  ON IDENTIFIER({{ consumer_join_col }}) = IDENTIFIER({{ provider_join_col }})
  GROUP BY IDENTIFIER({{ group_by_col }});
$$,
object_construct(
'group_by_col', 'city',
'consumer_join_col', 'hashed_email',
'provider_join_col', 'hashed_email',
'my_table', 'mydb.mysch.t1',
'source_table', 'mydb.mysch.t2'));
Copy

Réponse :

SELECT COUNT(*), IDENTIFIER('city')
  FROM IDENTIFIER(mydb.mysch.t1)
  INNER JOIN IDENTIFIER(mydb.mysch.t2)
  ON IDENTIFIER('hashed_email') = IDENTIFIER('hashed_email')
  GROUP BY IDENTIFIER('city');
Copy

consumer.generate_python_request_template

Description : Génère un modèle de salle blanche consommateur qui inclut du code Python personnalisé. Le modèle généré comprend votre code Python et un espace réservé pour votre modèle JinjaSQL. Transmettez votre modèle final à consumer.create_template_request.

En savoir plus sur les modèles définis par les consommateurs

Arguments :

  • function_name (string) - Le nom de la fonction Python que votre modèle SQL doit appeler pour exécuter votre fonction.

  • arguments (array of string) - Liste des arguments pour votre fonction Python, où chaque argument est une chaîne délimitée par des espaces au format « <argument_name> <argument_type> ». Par exemple : ['data variant', 'scale integer'].

  • packages (array of string) - Tableau des noms de paquets nécessaires à votre code Python. S’il n’y en a pas, spécifiez un tableau vide. Exemple : ['pandas','numpy'].

  • imports (array of strings) - Toutes les bibliothèques Python personnalisées requises pour le code Python. Doit être un tableau de zéros ou plusieurs adresses de zone de préparation. Exemple : ['@db.schema.stage/my_python_sproc.py']

  • rettype (string) - Le type de retour SQL de votre fonction. Exemples : 'integer', 'varchar'.

  • handler (string) - Le nom de la fonction gestionnaire principale dans votre code Python. Il s’agit généralement de 'main'.

  • code (string) - Votre implémentation du code Python. Si vous incluez une importation et que votre gestionnaire désigné est défini dans une importation, il peut s’agir d’une chaîne vide.

Retourne : Modèle python généré (string). Remplacez l’espace réservé par votre code SQL.

Exemple :

Appelez la fonction d’aide avec un exemple Python trivial.

call SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.CONSUMER.GENERATE_PYTHON_REQUEST_TEMPLATE(
  'my_func',                         // SQL should use this name to call your function
  ['data variant', 'index integer'], // Arguments and types for the function
  ['pandas', 'numpy'],               // Standard libraries used
  [],                                // No custom libraries needed.
  'integer',                         // Return type integer
  'main',                            // Standard main handler
// Python implementation as UDF  
  $$
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

Voici la réponse à l’appel précédent. Insérez votre JinjaSQL comme indiqué dans l’espace réservé, et passez-le dans consumer.create_template_request.

BEGIN

-- First define the Python UDF
CREATE OR REPLACE FUNCTION CLEANROOM.my_func(data variant, index integer)
RETURNS integer
LANGUAGE PYTHON
RUNTIME_VERSION = 3.10
PACKAGES = ('pandas', 'numpy')

HANDLER = 'main'
AS '
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)
    ';
        

-- Then define and execute the SQL query
LET SQL_TEXT varchar := '<INSERT SQL TEMPLATE HERE>';

-- Execute the query and return the result
LET RES resultset := (EXECUTE IMMEDIATE :SQL_TEXT);
RETURN TABLE(RES);

END;
Copy

consumer.list_template_requests

Description: liste les requêtes que le consommateur a faites pour ajouter un modèle à une clean room.

Arguments : cleanroom_name (string)

Renvoie : request_id(string), provider_identifier(string), template_name(string), template_definition(string), request_status(string), reason(string)

Exemple :

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

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

Les méthodes suivantes montrent les propriétés pertinentes de la salle blanche :

consumer.describe_cleanroom

Description: crée un résumé textuel contenant toutes les informations sur ce qui a été ajouté à la clean room, y compris les modèles, les ensembles de données, les politiques, etc. Si un modèle a été masqué en appliquant l’argument is_obfuscated, vous devez utiliser Snowflake Enterprise Edition ou une édition supérieure pour pouvoir voir le nom du modèle.

Arguments : cleanroom_name(string)

Retourne : Chaîne de description extensive de la salle blanche (table)

Exemple :

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

consumer.view_provider_datasets

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

Arguments : cleanroom_name(string)

Retourne : Tous les noms des jeux de données des fournisseurs dans cleanroom (table)

Exemple :

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

consumer.view_join_policy

Description : décrit les colonnes que les utilisateurs peuvent rejoindre en toute sécurité à l’intérieur d’une salle blanche, définies par le consommateur sur les ensembles de données des consommateurs.

Arguments : cleanroom_name (string)

Retourne : La politique de jointure (table)

Exemple :

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

consumer.view_provider_join_policy

Description : décrit les colonnes que les utilisateurs peuvent rejoindre en toute sécurité à l’intérieur d’une salle blanche, définies par le fournisseur sur les ensembles de données du fournisseur.

Arguments : cleanroom_name (string)

Retourne : La politique de jointure (table)

Exemple :

call samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name);
Copy

consumer.view_added_templates

Description: permet de voir tous les modèles actifs dans la clean room. Si un modèle a été masqué en appliquant l’argument is_obfuscated, vous devez utiliser Snowflake Enterprise Edition ou une édition supérieure pour pouvoir voir le modèle.

Arguments : cleanroom_name (string)

Retourne : Les modèles ajoutés (table)

Exemple :

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

library.is_consumer_run_enabled

Description: vérifie si l’analyse des cycles de consommation est activée dans cette clean room. Ce drapeau détermine si le consommateur de la clean room (l’installateur) peut effectuer une analyse dans cette clean room.

Arguments : cleanroom_name (string)

Retourne : message activé (string)

Exemple :

CALL samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name);
Copy

consumer.view_cleanrooms

Description : Affiche toutes les salles blanches jointes (installées) ou joignables par ce compte. Pour ne voir que les clean rooms installées, exécutez consumer.view_installed_cleanrooms.

Arguments : Aucun

Retourne : (Table) Toutes les clean rooms installées ou invitées pour ce compte.

Exemple :

call samooha_by_snowflake_local_db.consumer.view_cleanrooms();
Copy

consumer.view_installed_cleanrooms

Description : liste de toutes les clean rooms installées (annoncées) dans ce compte. Pour voir les clean rooms jointes et non jointes, appelez consumer.view_cleanrooms. Pour voir toutes les clean rooms créées dans ce compte, appelez provider.view_cleanrooms.

Arguments : Aucun

Retourne : (Table) Les clean rooms installées dans ce compte.

Exemple :

CALL samooha_by_snowflake_local_db.consumer.view_installed_cleanrooms();
Copy

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 lorsque vous appelez consumer.enable_templates_for_provider_run.

En savoir plus sur la gestion de la confidentialité différentielle.

consumer.is_dp_enabled

Description : vérifie si la confidentialité différentielle a été activée dans la salle blanche.

Arguments : cleanroom_name(string)

Retourne : Indique si DP est activé pour la salle blanche (boolean)

Exemple :

call samooha_by_snowflake_local_db.consumer.is_dp_enabled($cleanroom_name);
Copy

consumer.view_remaining_privacy_budget

Description : visualise le budget de confidentialité restant qui peut être utilisé pour effectuer des requêtes à partir de la salle blanche. Une fois le budget épuisé, d’autres appels à run_analysis ne seront pas autorisés jusqu’à ce que le budget soit réinitialisé. Le budget est réinitialisé quotidiennement.

SELECT cleanroom_name FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE is_already_installed = TRUE;

Arguments : cleanroom_name (string)

Retourne : Le budget restant pour la protection de la confidentialité (flottant)

Exemple :

call samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
Copy

consumer.set_privacy_settings

Description : l’ensemble des paramètres de confidentialité pour les analyses gérées par le fournisseur (y compris l’activation) qui utilisent des modèles personnalisés. Efface toutes les valeurs réglées précédemment. Chaque fois que vous appelez cette méthode, elle efface tous les paramètres de configuration précédents.

Arguments :

  • cleanroom_name (String) - Nom de la clean room où ces paramètres doivent être appliqués.

  • privacy_settings (String) - Objet de type string JSON qui spécifie les paramètres de confidentialité lorsque des modèles personnalisés sont exécutés par un fournisseur. Voici la syntaxe de l’objet :

    '{
      "null" : <template_config>
    }'
    
    Copy

    template_config est un objet dont les paramètres de confidentialité et d’agrégation sont différents. Voir Paramètres de confidentialité disponibles pour connaître les champs que vous pouvez fournir dans cet objet.

Exemple :

-- Apply differential privacy for provider-run analysis using all custom templates.
CALL samooha_by_snowflake_local_db.consumer.set_privacy_settings(
  $cleanroom_name,
  PARSE_JSON('{
    "null":{ "differential": 1, "epsilon": 0.1, "privacy_budget": 3 }
    }')
  );
Copy

Retourne : un message de réussite sous forme de chaîne.

Commandes Snowpark Container Services

En savoir plus sur l’utilisation de Snowplark Container Services dans vos clean rooms.

consumer.start_or_update_service

Description : crée et démarre la dernière version de SPCS définie par le fournisseur dans cette clean room. Chaque fois que le fournisseur appelle provider.load_service_into_cleanroom pour créer ou mettre à jour un conteneur, le consommateur doit appeler consumer.start_or_update_service pour mettre à jour le service.

Le consommateur doit définir et démarrer le pool avant d’appeler cette procédure.

Arguments :

  • cleanroom_name (String) - Nom de la clean room où le conteneur doit être chargé.

  • compute_pool_name (String) - Le nom d’un pool de calcul défini par le consommateur dans cette clean room. Le pool doit déjà être créé, et la clean room doit avoir des privilèges d’accès à la piscine.

  • service_options (Object, facultatif) - Objet spécifiant les paramètres de ce service. Les propriétés suivantes sont prises en charge :

    • query_warehouse - (String, facultatif) Nom de l’entrepôt à utiliser pour ce service. Il ne doit pas nécessairement s’agir du même entrepôt que celui qui gère la clean room.

    • min_instances - (Integer, facultatif) Nombre minimal d’instances à utiliser pour ce service.

    • max_instances - (Integer, facultatif) Nombre minimal d’instances à utiliser pour ce service.

Retourne : (Table) Résultats du chargement, en cas de succès. Lance une erreur en cas d’échec.

Exemple :

CALL samooha_by_snowflake_local_db.consumer.start_or_update_service(
    $cleanroom_name,
    'dcr_lal_pool',
    object_construct(
        'query_warehouse', 'app_wh',
        'min_instances', '1',
        'max_instances', '1'
));
Copy

Méthodes d’aide générales

Utilisez les méthodes suivantes pour faciliter la fonctionnalité générale de la salle blanche.

consumer.set_cleanroom_ui_accessibility

Description : Affiche ou cache les salles blanches dans l’application Web pour les consommateurs du compte courant.

Arguments :

  • cleanroom_name(string) - Le nom de la salle blanche.

  • visibility_status(string) - Une des valeurs suivantes, sensible à la casse :

    • HIDDEN - Cache la salle blanche spécifiée dans l’application Web à tous les utilisateurs du compte consommateur actuel. La salle blanche restera accessible via des appels API.

    • EDITABLE - Rend la salle blanche visible dans l’application Web.

Retourne : message de réussite (string)

Exemple :

CALL samooha_by_snowflake_local_db.consumer.set_cleanroom_ui_accessibility($cleanroom_name, 'HIDDEN');
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.

Arguments : Aucun

Retourne : message de réussite (string)

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.

Arguments : Aucun

Retourne : message de réussite (string)

Exemple :

CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();
Copy