Analyses menées par les fournisseurs

Vue d’ensemble

La configuration par défaut de la salle blanche permet uniquement au consommateur d’effectuer une analyse dans la salle blanche. Toutefois, le fournisseur peut demander l’autorisation au consommateur d’exécuter un modèle spécifique dans une salle blanche spécifique à l’aide des données du consommateur. L’analyse effectuée par le fournisseur peut être activée et exécutée en utilisant l’UI des salles blanches ou le code.

Le schéma suivant montre le flux de données et les principaux composants d’une analyse de base effectuée par un fournisseur.

Direction de flux de données de base dans une analyse exécutée par un fournisseur
  1. Dans une analyse de base effectuée par le fournisseur, le consommateur et le fournisseur lient tous deux leurs données dans la salle blanche. Les données sources sont liées à la salle blanche en tant que vues privées dans le compte où résident les données.

  2. Lorsque le fournisseur effectue une analyse, les données du fournisseur sont partagées avec l’application de salle blanche du compte du consommateur. L’analyse s’effectue sur le compte du consommateur.

  3. Les résultats chiffrés sont temporairement enregistrés dans la DB du consommateur, dans le compte de ce dernier.

  4. Les résultats chiffrés sont copiés dans le partage de résultats de l’analyse sur le compte du fournisseur (également appelé partage de gouvernance) et sont déchiffrés. Comme l’analyse s’exécute sur le compte du consommateur, celui-ci est facturé pour l’analyse.

Pour plus d’informations, voir Snowflake Data Clean Rooms : objets installés.

Modèles qui prennent en charge les analyses effectuées par les fournisseurs

Les modèles suivants prennent en charge les analyses effectuées par les fournisseurs :

  • Audience Overlap & Segmentation

  • SQL Query (UI uniquement)

  • Modèles personnalisés (API uniquement)

Détails de la facturation et des coûts

Les analyses effectuées par le fournisseur sont exécutées sur le compte du consommateur et les consommateurs sont facturés pour une analyse exécutée par le fournisseur. Pour éviter d’encourir des frais liés aux analyses effectuées par le fournisseur, le consommateur doit désinstaller la salle blanche.

Un consommateur peut estimer le nombre de crédits consommés par le fournisseur au cours des N derniers jours en exécutant la requête suivante. Le nombre de jours précédents doit être indiqué sous forme de nombre négatif.

-- Estimate the number of credits consumed in the past 5 days.
SELECT * FROM TABLE(SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.PRA_CONSUMPTION_UDTF(-5));
Copy

Lorsqu’un fournisseur effectue une analyse dans l’UI des salles blanches, la salle blanche utilise une logique de mise à l’échelle automatique basée sur la taille des ensembles de données pour choisir un entrepôt pour l’analyse du fournisseur.

Lorsqu’un fournisseur crée et gère une salle blanche à l’aide de l” API, le fournisseur peut explicitement choisir une taille et un type d’entrepôt dans un ensemble de valeurs autorisées spécifiées par le consommateur.

Notes générales

  • Les fournisseurs peuvent activer les résultats sur leur propre compte à l’aide de l’UI ou de l’API ou à des fournisseurs tiers si l’UI est utilisée. Pour plus d’informations sur la manière d’activer l’activation et d’afficher les résultats, voir Activation des résultats de la requête.

  • Si le consommateur et le fournisseur se trouvent dans des régions Cloud différentes, l’exécution automatique inter-cloud doit être activée dans les comptes et pour les deux salles blanches.

    Notez que les requêtes inter-Cloud exécutées par le fournisseur peuvent prendre un certain temps, car les données sources du fournisseur doivent être répliquées du fournisseur au consommateur, et les résultats des requêtes du consommateur au fournisseur, pour toutes les régions cloud.

  • Tous les modèles exécutés par le fournisseur nécessitent des noms de colonnes ou des alias pour toutes les colonnes générées dans les résultats. Si une colonne est agrégée (par exemple, SUM(col1)) ou appelle une fonction personnalisée (par exemple, cleanroom.my_function(p.hashed_email)), le modèle doit spécifier explicitement un alias de nom de colonne comme indiqué ici :

    SELECT SUM(col1) AS TOTAL FROM my_db.my_sch.T; -- Correct
    SELECT SUM(col1)          FROM my_db.my_sch.T; -- Error: aggregated column needs an explicit alias.
    
    Copy

Analyses effectuées par les fournisseurs dans l’UI

Voici comment activer l’analyse par le fournisseur dans une nouvelle salle blanche en utilisant l’UI des salles blanches :

  1. Le fournisseur crée et configure une salle blanche, en utilisant l’un des:ref:modèles pris en charge <label-dcr_templates_that_support_provider_analysis>. La configuration de la salle blanche s’effectue à l’étape Share Clean Room.

  2. Dans l’étape Share Clean Room de la configuration de la salle blanche, le fournisseur sélectionne Enable run analysis & query en regard de son propre compte pour lui permettre d’exécuter tous les modèles dans cette salle blanche qui prennent en charge l’analyse du fournisseur.

    • Ce paramètre ne peut pas être modifié après la création d’une salle blanche ; si vous souhaitez modifier l’autorisation d’un compte spécifique pour exécuter des requêtes dans une salle blanche publiée, vous devez supprimer la salle blanche et en créer une nouvelle.

  3. Le consommateur rejoint et configure la salle blanche comme d’habitude pour tous les modèles de la salle blanche, y compris les modèles qui prennent en charge l’analyse du fournisseur. Si le consommateur ne souhaite pas permettre à un fournisseur d’exécuter un modèle spécifique, il peut omettre les détails requis pour ce modèle.

    • Lorsque le consommateur rejoint la salle blanche, il est averti avant de rejoindre que l’analyse exécutée par le fournisseur est activée pour cette salle blanche.

    • Le consommateur peut exécuter des requêtes dès qu’il rejoint la salle blanche, mais il y a un délai de 30 minutes avant que le fournisseur puisse exécuter le modèle. Ce délai de configuration ne concerne que l’étape initiale pour rejoindre la salle blanche ; si le fournisseur ajoute ultérieurement d’autres modèles exécutés par le fournisseur, le fournisseur peut les exécuter dès que le consommateur configure sa salle blanche pour ce modèle.

  4. Une fois l’étape de jointure terminée, la salle blanche est disponible pour les analyses effectuées par le fournisseur et les analyses effectuées par le consommateur.

    Important :

    • Les fournisseurs doivent attendre environ 10 minutes après l’installation de la salle blanche par le consommateur avant de pouvoir effectuer une analyse. Le délai correspond à la configuration d’arrière-plan supplémentaire requise pour les analyses effectuées par le fournisseur.

    • Le consommateur est facturé pour toutes les analyses dans cette salle blanche, qu’elles soient effectuées par le fournisseur ou par le consommateur.

Analyses effectuées par les fournisseurs dans l’API

Voici comment activer l’analyse par le fournisseur dans une nouvelle salle blanche à l’aide de l’API des salles blanches :

  1. Fournisseur

    1. Crée et configure la salle blanche, ainsi que les données et les politiques de manière standard.

    2. Ajoute des consommateurs de la manière standard.

    3. Active l’analyse effectuée par le fournisseur pour des comptes de consommateur spécifiques dans la salle blanche en appelant provider.enable_provider_run_analysis.

      Important :

      • Le fournisseur doit appeler provider.enable_provider_run_analysis après avoir ajouté des consommateurs à une salle blanche, mais avant qu’un consommateur n’installe la salle blanche. Chaque compte de consommateur doit approuver cette demande pour que ses données soient accessibles pour les analyses effectuées par le fournisseur dans cette salle blanche.

      • Toutefois, chaque fois que le fournisseur modifie le paramètre d’analyse pour une salle blanche, la salle blanche doit être réinstallée par tous les consommateurs pour que le changement prenne effet. Comme il peut être difficile de forcer tous les collaborateurs à réinstaller une salle blanche, il est plus facile pour le fournisseur de supprimer une salle blanche publiée et partagée lors de la modification des autorisations d’analyse, puis de créer une nouvelle salle blanche avec les autorisations souhaitées.

    4. Publie la salle blanche.

    5. Permet au consommateur de savoir que la salle blanche est disponible, de connaître le nom de la salle blanche et les modèles que vous souhaitez exécuter dans la salle blanche.

  2. Consommateur

    1. Installe la salle blanche et les liens dans les données de la manière standard.

    2. Définit les politiques de jointure et de colonne nécessaires sur ses données.

    3. Autorisez l’analyse effectuée par le fournisseur pour des modèles spécifiques dans la salle blanche en appelant consumer.enable_templates_for_provider_run (pour plusieurs modèles) ou consumer.approve_template (pour un modèle).

      Note

      Si le fournisseur modifie un modèle après que le consommateur l’a approuvé, ce dernier doit approuver à nouveau le modèle. Jusqu’à ce que le modèle soit réapprouvé, l’ancienne version mise en cache du modèle approuvé sera exécutée par le fournisseur.

    4. (Facultatif) Un consommateur peut limiter le type d’entrepôt ou les tailles disponibles pour les analyses effectuées par le fournisseur : voir Restriction des limites de taille et de type de l’entrepôt.

    5. Indique au fournisseur qu’il a installé la salle blanche et approuvé les analyses qu’il a effectuées.

  3. Fournisseur

    1. Une fois que le consommateur a installé la salle blanche, le fournisseur permet aux analyses d’accéder aux données du consommateur en activant le partage de données du consommateur au compte du fournisseur. Le processus pour cela diffère selon si le fournisseur et le consommateur se trouvent dans la même région Cloud ou s’ils se trouvent dans des régions Cloud différentes :

      • Si le fournisseur et le consommateur se trouvent dans la même région Cloud, le fournisseur appelle provider.mount_request_logs_for_all_consumers une fois. Si un nouveau compte de consommateur installe la salle blanche ultérieurement et que le fournisseur souhaite utiliser des données du consommateur dans ce modèle, il doit réexécuter cette procédure pour pouvoir accéder à ces données.

      • Si le fournisseur et le consommateur se trouvent dans des régions Cloud différentes, le fournisseur et le consommateur doivent activer exécution automatique inter-cloud. Lorsqu’un fournisseur effectue une analyse sur ces régions, la requête peut prendre un certain temps, car les données de la requête sont envoyées de la région du fournisseur à la région du consommateur et inversement.

    2. Appelle provider.view_warehouse_sizes_for_template pour voir si le consommateur a limité le type et la taille de l’entrepôt utilisé pour l’analyse. Si le consommateur dispose de tailles d’entrepôt limitées pour les analyses effectuées par le fournisseur, ce dernier doit spécifier des valeurs warehouse_type et warehouse_size autorisées dans la requête d’analyse à l’étape suivante. Si le consommateur n’a pas spécifié de limites d’entrepôt, ces champs sont facultatifs dans la requête d’analyse. Pour plus d’informations, voir Restriction des limites de taille et de type de l’entrepôt.

    3. Exécute l’analyse en appelant provider.submit_analysis_request avec le nom du modèle, les noms des tables et les arguments du modèle. Si le consommateur a spécifié des limites pour la taille ou le type d’entrepôt, le fournisseur doit également spécifier la taille et le type de l’entrepôt dans la requête d’analyse.

      • Enregistrer l’ID de la demande renvoyé par provider.submit_analysis_request ; l’ID est nécessaire pour vérifier le statut et les résultats de l’analyse.

    4. Vérifie le statut de l’analyse en appelant provider.check_analysis_status. Lorsque le statut est signalé comme COMPLETED, appeler provider.get_analysis_result pour obtenir les résultats de l’analyse.

Restriction des limites de taille et de type de l’entrepôt

Étant donné que le consommateur est facturé pour les analyses effectuées par le fournisseur, il est en mesure de dicter les tailles et les types d’entrepôt que le fournisseur peut utiliser pour exécuter une analyse dans son compte. Voici comment un consommateur définit des limites de taille et de type d’entrepôt, et comment un fournisseur choisit une taille et un type d’entrepôt lors de l’exécution d’une analyse :

  1. Le consommateur appelle consumer.set_provider_run_configuration et spécifie les tailles et les types d’entrepôt qu’un fournisseur peut utiliser pour un modèle spécifique. Dans l’extrait suivant, le consommateur oblige les fournisseurs à utiliser des entrepôts STANDARD de taille MEDIUM ou LARGE lorsqu’ils exécutent template_1:

    CALL samooha_by_snowflake_local_db.consumer.set_provider_run_configuration(
      $cleanroom_name,
      {
        'template_1': {
          'warehouse_type': 'STANDARD',
          'warehouse_size': ['MEDIUM', 'LARGE']}
      });
    
    Copy
  2. Le fournisseur appelle provider.view_warehouse_sizes_for_template pour voir quels tailles et types d’entrepôt sont autorisés pour les analyses exécutées par le fournisseur sur ce modèle.

    CALL samooha_by_snowflake_local_db.provider.view_warehouse_sizes_for_template(
      $cleanroom_name,
      'template_1',
      $consumer_account_loc
    );
    
    Copy
  3. Le fournisseur spécifie une taille et un type d’entrepôt à utiliser dans sa requête d’exécution d’analyse.

    CALL samooha_by_snowflake_local_db.provider.submit_analysis_request(
      $cleanroom_name,
      $consumer_locator_id,
      'template_1',
      ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
      ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
      object_construct(
        'dimensions', ['c.REGION_CODE'],
        'measure_type', ['AVG'],
        'measure_column', ['c.DAYS_ACTIVE'],
        'warehouse_type', 'STANDARD',      -- Any other value would cause the request to fail.
        'warehouse_size', 'LARGE'          -- Only MEDIUM and LARGE supported.
      )
    );
    
    Copy

Astuce

Les procédures suivantes permettent de déterminer quel côté peut effectuer une analyse dans la clean room :

Analyse exécutée par le consommateur (autorisée par défaut) : Les modifications s’appliquent immédiatement.

  • provider.enable_consumer_run_analysis

  • provider.disable_consumer_run_analysis

Analyse exécutée par le fournisseur (désactivée par défaut) : Les modifications nécessitent une réinstallation par le consommateur.

  • provider.enable_provider_run_analysis (nécessite une approbation du consommateur en appelant consumer.enable_templates_for_provider_run)

  • provider.disable_provider_run_analysis

Installer et exécuter l’exemple de code

Vous pouvez télécharger et installer un exemple d’exécution complet pour créer et exécuter une analyse exécutée par le fournisseur. Pour exécuter cet exemple, vous avez besoin de deux comptes Snowflake dans la même organisation et la même région d’hébergement Cloud avec l’environnement Snowflake Data Clean Room installé.

  1. :download :Téléchargez le notebook d'exemples </samples/clean-rooms/provider-analysis-notebook.ipynb>.

  2. Installez le notebook à la fois dans vos comptes de fournisseur et de consommateur.

    Pour charger un notebook, procédez comme suit :

    1. Sign in to Snowsight.

    2. In the navigation menu, select Projects » Notebooks.

    3. Sélectionnez + Notebook » Import .ipynb file.

    4. Sélectionnez le fichier .ipynb que vous avez téléchargé.

    5. Nommez le fichier comme vous le souhaitez et choisissez une base de données et un schéma.

    6. Conservez l’entrepôt par défaut APP_WH.

    7. Sélectionnez Create.

    8. Pour créer la salle blanche, ouvrez le notebook dans le compte du fournisseur et complétez la partie du fournisseur.

    9. Ouvrez le Notebooks dans le compte du consommateur et complétez la partie consommateur pour installer et configurer la clean room et exécuter le modèle.

  3. Exécutez les actions du fournisseur et du consommateur comme indiqué, dans l’ordre indiqué dans le notebook.