Utiliser des modèles de requêtes

Les modèles de requêtes des data clean room BigQuery accélèrent l'obtention d'insights et fournissent des couches de sécurité et de contrôle supplémentaires pour minimiser les risques d'exfiltration de données. En prédéfinissant et en limitant les requêtes qui peuvent être exécutées dans les data clean rooms, vous pouvez :

  • Évitez la fuite de données sensibles. Lorsque les abonnés qui exécutent des requêtes dans une clean room bénéficient d'une plus grande flexibilité pour explorer les données, les propriétaires de données estiment que le risque d'exposition accidentelle ou intentionnelle d'informations sensibles est plus élevé.

  • Simplifiez l'intégration et l'adoption pour les utilisateurs moins techniques. De nombreux fournisseurs de données s'attendent à ce que les abonnés aux clean rooms soient moins compétents sur le plan technique, en particulier pour rédiger des requêtes SQL axées sur la confidentialité et comprendre comment allouer correctement les budgets de confidentialité.

  • Garantir des résultats analytiques cohérents pour les abonnés aux données Il devient plus difficile d'appliquer des règles d'analyse de données spécifiques et de vérifier la conformité avec les réglementations sur la confidentialité lorsqu'il n'existe aucun moyen de contrôler les requêtes exécutées dans une data clean room.

Les modèles de requêtes permettent aux propriétaires et aux contributeurs de données de créer des requêtes prédéfinies et approuvées, spécifiquement adaptées aux cas d'utilisation de la data clean room, et de publier ces requêtes pour que les abonnés puissent les utiliser. Les requêtes prédéfinies utilisent des fonctions de valeur de table (TVF) dans BigQuery pour permettre de transmettre une table entière ou des champs spécifiques en tant que paramètres d'entrée et de renvoyer une table en tant que résultat.

Limites

  • Les modèles de requête n'acceptent que deux références de données au maximum, c'est-à-dire les données utilisées pour définir la requête de la TVF et le paramètre de données accepté par la TVF.
    • Plusieurs tables ou vues peuvent être référencées dans la définition de requête de la TVF, mais elles doivent toutes appartenir au même propriétaire ou à la même partie des données.
  • Les TVF de modèle de requête n'acceptent que les types fixes TABLE et VIEW.
  • Les définitions de modèles de requêtes sont soumises aux mêmes limites que les TVF.

Avant de commencer

Activez l'API Analytics Hub pour votre projet Google Cloud en procédant comme suit :

Console

  1. Accédez à la page API Analytics Hub.

    Accéder à l'API Analytics Hub

  2. Dans la barre d'outils de la console Google Cloud , sélectionnez votre projet.

  3. Si l'API n'est pas déjà activée, cliquez sur Activer.

bq

Exécutez la commande gcloud services enable :

gcloud services enable analyticshub.googleapis.com

Rôles requis

Pour obtenir les autorisations nécessaires pour effectuer les tâches décrites dans ce document, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour effectuer les tâches décrites dans ce document. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Vous devez disposer des autorisations suivantes pour effectuer les tâches décrites dans ce document :

  • Créer ou supprimer une TVF dans une data clean room :
    • bigquery.routines.create sur le projet
    • bigquery.routines.update sur le projet
    • bigquery.routines.delete sur le projet
  • Autorisez une TVF : bigquery.datasets.update sur les ensembles de données auxquels la routine accède.
  • Créez un modèle de requête :
    • analyticshub.listings.subscribe sur le projet
    • analyticshub.queryTemplates.create sur le projet
  • Approuver un modèle de requête :
    • bigquery.routines.create sur le projet
    • bigquery.datasets.update sur les ensembles de données auxquels la routine accède
    • analyticshub.listings.create sur le projet
    • analyticshub.queryTemplates.approve sur le projet

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Ajouter un TVF existant à une data clean room

Vous pouvez ajouter une TVF existante à une data clean room à l'aide de l'API Analytics Hub.

Exécutez la méthode projects.locations.dataExchanges.listings.create.

L'exemple suivant montre comment appeler la méthode projects.locations.dataExchanges.listings.create à l'aide de la commande curl :

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/listings?listingId=LISTING_ID -d
    '{"bigqueryDataset":{"dataset":"projects/PROJECT_ID/datasets/DATASET_ID","selectedResources":[{"routine":"projects/PROJECT_ID/datasets/DATASET_ID/tables/ROUTINE_ID"}],},"displayName":LISTING_NAME"}'

Remplacez les éléments suivants :

  • DCR_PROJECT_ID : ID du projet dans lequel la clean room de données a été créée.
  • PROJECT_ID : ID du projet contenant l'ensemble de données source.
  • DATASET_ID : ID de l'ensemble de données source.
  • LOCATION : emplacement de la clean room de données.
  • CLEAN_ROOM_ID : ID de la clean room de données.
  • LISTING_ID : ID de la liste.
  • LISTING_NAME : nom de la fiche.
  • ROUTINE_ID : ID de la routine.

Rôles des modèles de requêtes

Il existe trois rôles principaux pour utiliser les modèles de requêtes de data clean room. Chaque rôle est associé à des workflows spécifiques, qui sont décrits plus loin dans ce document.

Workflows de création de modèles

En tant que créateur de modèles de requêtes, vous pouvez effectuer les opérations suivantes :

Ajouter une fiche à une data clean room

Avant de créer un modèle de requête, vous devez ajouter des données à une data clean room. Pour créer une fiche dans la data clean room, procédez comme suit :

  1. Accédez à la page Partage (Analytics Hub).

    Accéder à "Partage" (Analytics Hub)

  2. Cliquez sur le nom à afficher de la data clean room dans laquelle vous souhaitez créer le modèle de requête.

  3. Cliquez sur Ajouter des données, puis suivez la procédure pour créer une vue avec des règles d'analyse configurées. Pour obtenir des instructions détaillées, consultez Créer une fiche (ajouter des données).

    1. Pour ajouter des données provenant d'autres parties, partagez la clean room avec un autre contributeur de confiance. Ce contributeur de données doit également ajouter des données à la clean room pour pouvoir être utilisé dans un modèle de requête.
  4. Définissez les contrôles de sortie de données pour la fiche.

  5. Définissez les contrôles des métadonnées pour la fiche. Si vous ne souhaitez partager que les schémas et les descriptions des données ajoutées à l'étape précédente (et non les données partagées elles-mêmes), sélectionnez Exclure l'accès à la fiche à partir de l'ensemble de données associé.

  6. Vérifiez les informations de la fiche.

  7. Cliquez sur Add Data (Ajouter des données). Les métadonnées de la vue créée pour vos données sont désormais ajoutées à la clean room.

Créer un modèle de requête

Sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page Partage (Analytics Hub).

    Accéder à "Partage" (Analytics Hub)

  2. Cliquez sur le nom à afficher de la data clean room dans laquelle vous souhaitez créer le modèle de requête.

  3. Dans la salle blanche, accédez à l'onglet Modèles.

  4. Cliquez sur Créer un modèle.

  5. Saisissez un nom et une description pour le modèle.

  6. Cliquez sur Suivant.

  7. Vous pouvez consulter les schémas des vues ajoutées à la clean room et proposer une définition de requête.

    1. Veillez à définir la requête à l'aide de la syntaxe CREATE TABLE FUNCTION compatible.
    2. Transmettez l'intégralité de votre tableau ou de votre vue avec des définitions fixes. Vous devez définir la référence complète au chemin d'accès à la table, y compris l'ID du projet et l'ID de l'ensemble de données, à partir des données ajoutées à la clean room. Exemple :

      query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)
      
    3. Si vous avez appliqué des règles d'analyse de la confidentialité aux données, assurez-vous que cette TVF inclut une syntaxe SQL spécifique à la confidentialité, par exemple SELECT WITH AGGREGATION_THRESHOLD.

  8. Examinez les détails du modèle.

  9. Pour enregistrer le modèle sans l'envoyer pour examen, cliquez sur Enregistrer. Le modèle de requête est désormais à l'état BROUILLON.

Vous pouvez mettre à jour le modèle de requête ou l'envoyer pour examen.

API

L'exemple suivant montre comment créer un modèle de requête avec une commande CURL :

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID -d
  'query_template {
  name: "query_template1",
  display_name: "query_template1",
  routine {
    definition_body: "QUERY_TEMPLATE_ID(TVF arguments) AS (TVF_DEFINITION)"
  }
}'

Remplacez les éléments suivants :

  • DCR_PROJECT_ID : ID du projet dans lequel la clean room de données a été créée.
  • LOCATION : emplacement de la clean room de données.
  • CLEAN_ROOM_ID : ID de la clean room de données.
  • QUERY_TEMPLATE_ID : ID du modèle de requête.
  • TVF_DEFINITION : définition de la TVF.

L'exemple de code suivant montre un exemple de definition_body pour l'appel d'API. Vous devez définir la référence complète au chemin d'accès à la table, y compris l'ID du projet et l'ID de l'ensemble de données, à partir des données ajoutées à la clean room.

  query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)

definition_body est analogue à la définition d'une routine. Le definition_body précédent se traduit par la routine suivante :

  CREATE OR REPLACE TABLE FUNCTION <approvers_dataset>.query_template1(t1 TABLE, y INT64)
  AS (SELECT * FROM t1 WHERE year > y)

Vous pouvez mettre à jour le modèle de requête ou l'envoyer pour examen.

Mettre à jour un modèle de requête

Vous ne pouvez mettre à jour un modèle de requête que s'il est à l'état BROUILLON. Si le modèle de requête a déjà été envoyé pour examen, vous ne pouvez plus le modifier.

Pour mettre à jour un modèle de requête, sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page Partage (Analytics Hub).

    Accéder à "Partage" (Analytics Hub)

  2. Cliquez sur le nom à afficher de la data clean room contenant le modèle de requête.

  3. Dans la salle blanche, accédez à l'onglet Modèles.

  4. Sur la ligne du modèle que vous souhaitez modifier, cliquez sur Actions > Modifier le modèle.

  5. Modifiez les détails du modèle et la définition de la requête si nécessaire.

  6. Cliquez sur Suivant.

  7. Examinez le modèle de requête, puis cliquez sur Enregistrer pour enregistrer les modifications sans envoyer le modèle pour examen.

API

L'exemple suivant montre comment mettre à jour un modèle de requête avec une commande CURL :

  curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X PATCH https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID?updateMask=display_name -d
    'query_template {
    display_name: "query_template1"
  }'

Remplacez les éléments suivants :

  • DCR_PROJECT_ID : ID du projet dans lequel la clean room de données a été créée.
  • LOCATION : emplacement de la clean room de données.
  • CLEAN_ROOM_ID : ID de la clean room de données.
  • QUERY_TEMPLATE_ID : ID du modèle de requête.

Envoyer un modèle de requête pour examen

Sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page Partage (Analytics Hub).

    Accéder à "Partage" (Analytics Hub)

  2. Cliquez sur le nom à afficher de la data clean room contenant le modèle de requête.

  3. Dans la salle blanche, accédez à l'onglet Modèles.

  4. Sur la ligne du modèle que vous souhaitez envoyer pour examen, cliquez sur Actions > Envoyer pour examen. Le modèle est désormais associé à l'état Examen requis.

API

L'exemple suivant montre comment envoyer un modèle de requête pour examen avec une commande CURL :

  curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID:submit

Remplacez les éléments suivants :

  • DCR_PROJECT_ID : ID du projet dans lequel la clean room de données a été créée.
  • LOCATION : emplacement de la clean room de données.
  • CLEAN_ROOM_ID : ID de la clean room de données.
  • QUERY_TEMPLATE_ID : ID du modèle de requête.

Supprimer un modèle de requête

Vous ne pouvez supprimer un modèle de requête que s'il est à l'état BROUILLON. Si le modèle de requête a déjà été envoyé pour examen, vous ne pouvez plus le supprimer.

Sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page Partage (Analytics Hub).

    Accéder à "Partage" (Analytics Hub)

  2. Cliquez sur le nom à afficher de la data clean room contenant le modèle de requête.

  3. Dans la salle blanche, accédez à l'onglet Modèles.

  4. Sur la ligne du modèle à supprimer, cliquez sur Actions > Supprimer le modèle.

API

L'exemple suivant montre comment supprimer un modèle de requête avec une commande CURL :

  curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X DELETE https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID

Remplacez les éléments suivants :

  • DCR_PROJECT_ID : ID du projet dans lequel la clean room de données a été créée.
  • LOCATION : emplacement de la clean room de données.
  • CLEAN_ROOM_ID : ID de la clean room de données.
  • QUERY_TEMPLATE_ID : ID du modèle de requête.

Workflows d'approbation des modèles

En tant qu'approbateur de modèles de requête, vous pouvez approuver un modèle de requête.

Lorsqu'une TVF fait référence à des données qui ne vous appartiennent pas (par exemple, les données d'un autre contributeur), le modèle de requête ne peut être approuvé que par le propriétaire de ces données. Si vous créez une TVF qui ne fait référence qu'à vos données (pour un partage unidirectionnel), vous pouvez approuver vous-même le modèle de requête.

Approuver un modèle de requête

Sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page Partage (Analytics Hub).

    Accéder à "Partage" (Analytics Hub)

  2. Cliquez sur le nom à afficher de la data clean room contenant le modèle de requête.

  3. Dans la salle blanche, accédez à l'onglet Modèles.

  4. Sur la ligne du modèle qui nécessite votre examen, cliquez sur État de l'approbation > Examen requis.

  5. Cliquez sur Approuver.

  6. Sélectionnez l'emplacement du modèle. C'est à cet emplacement que le fichier TVF est créé pour le partage.

  7. Examinez le modèle de requête proposé.

  8. Cliquez sur Approuver si le modèle de requête est approuvé pour une utilisation dans la clean room.

API

  1. Créez la routine à partir du modèle de requête à l'aide d'un appel jobserver.query :

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://bigquery.googleapis.com/bigquery/v2/projects/ROUTINE_PROJECT_ID/queries --data '{"query":"ROUTINE_CREATION_QUERY","useLegacySql":false}'

    Remplacez les éléments suivants :

    • ROUTINE_PROJECT_ID : ID du projet dans lequel la routine a été créée.
    • ROUTINE_CREATION_QUERY : requête permettant de créer la routine.
  2. Ajoutez la routine que vous avez créée à la data clean room :

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/listings?listingId=LISTING_ID -d
    '{"bigqueryDataset":{"dataset":"projects/PROJECT_ID/datasets/DATASET_ID","selectedResources":[{"routine":"projects/PROJECT_ID/datasets/DATASET_ID/tables/ROUTINE_ID"}],},"displayName":"LISTING_NAME"}'

    Remplacez les éléments suivants :

    • DCR_PROJECT_ID : ID du projet dans lequel la clean room de données a été créée.
    • LOCATION : emplacement de la clean room de données.
    • CLEAN_ROOM_ID : ID de la clean room de données.
    • LISTING_ID : ID de la liste.
    • PROJECT_ID : ID du projet contenant l'ensemble de données source.
    • DATASET_ID : ID de l'ensemble de données source.
    • ROUTINE_ID : ID de la routine.
    • LISTING_NAME : nom de la fiche.
  3. Définissez l'état du modèle de requête sur APPROVED :

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID:approve  --data '{}'

    Remplacez les éléments suivants :

    • DCR_PROJECT_ID : ID du projet dans lequel la clean room de données a été créée.
    • LOCATION : emplacement de la clean room de données.
    • CLEAN_ROOM_ID : ID de la clean room de données.
    • QUERY_TEMPLATE_ID : ID du modèle de requête.

Refuser un modèle de requête

Dans la console Google Cloud , vous pouvez refuser un modèle de requête de plusieurs manières :

Modèles de workflows pour les abonnés

Un abonné aux modèles de requête peut afficher une data clean room et s'y abonner. Si seul le modèle de requête est ajouté à la clean room, l'abonnement à la clean room n'accorde l'accès qu'à la TVF correspondante, et non aux données partagées sous-jacentes.

S'abonner à un modèle de requête

Sélectionnez l'une des options suivantes :

Console

Pour vous abonner à un modèle de requête, abonnez-vous à la data clean room. L'accès est accordé à toutes les fiches pour lesquelles le paramètre Exclure l'accès à la fiche depuis l'ensemble de données associé est désactivé.

Pour vous abonner à un modèle de requête, procédez comme suit :

  1. Accédez à la page BigQuery.

    Accéder à BigQuery

  2. Accédez à l'ensemble de données associé que vous avez créé lorsque vous vous êtes abonné à la clean room.

  3. Ouvrez la routine ou la TVF partagée dans l'ensemble de données associé.

  4. Cliquez sur Appeler la fonction table.

  5. Remplacez le paramètre par l'entrée acceptée, qui correspond au nom de la table ou du champ.

  6. Cliquez sur Exécuter.

Si vous ne voyez pas la TVF imbriquée en tant qu'élément enfant de l'ensemble de données associé dans le panneau Explorateur, vous pouvez interroger la TVF directement sur l'ensemble de données associé :

SELECT * FROM `myproject.dcr_linked_dataset.mytvf`(TABLE myTable);

API

Exécutez la méthode projects.locations.dataExchanges.subscribe.

L'exemple suivant montre comment appeler la méthode projects.locations.dataExchanges.subscribe à l'aide de la commande curl :

  curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID:subscribe  --data '{"destination":"projects/SUBSCRIBER_PROJECT_ID/locations/LOCATION","subscription":"SUBSCRIPTION"}'

Remplacez les éléments suivants :

  • DCR_PROJECT_ID : ID du projet dans lequel la clean room de données a été créée.
  • LOCATION : emplacement de la clean room de données.
  • CLEAN_ROOM_ID : ID de la clean room de données.
  • SUBSCRIBER_PROJECT_ID : ID du projet abonné.
  • SUBSCRIPTION : nom de votre abonnement.

Une fois que vous vous êtes abonné au modèle de requête, vous pouvez interroger la TVF directement sur l'ensemble de données associé :

SELECT * FROM `myproject.dcr_linked_dataset.mytvf`(TABLE myTable);

Exemples de cas de figure

Les modèles de requêtes peuvent être utilisés pour faciliter différentes formes de collaboration sur les données dans une data clean room. Les sections suivantes décrivent des exemples de scénarios.

Scénario de partage unidirectionnel

Un éditeur de données crée un modèle de requête pour vérifier que les partenaires abonnés ne peuvent exécuter que les requêtes définies par l'éditeur. Les créateurs de modèles de requêtes approuvent eux-mêmes les modèles de requêtes, car aucun autre contributeur n'est ajouté à la clean room.

Dans ce scénario, l'utilisateur A est le propriétaire d'une data clean room. Il crée une data clean room appelée campaign_analysis et y ajoute un ensemble de données nommé my_campaign avec une table campaigns. L'utilisateur A configure un seuil d'agrégation et des contrôles de métadonnées pour vérifier que seul le schéma de métadonnées est visible et que les abonnés ne peuvent pas accéder aux données sources. L'utilisateur A crée ensuite un modèle de requête en définissant une fonction de valeur de table à partir de la table campaigns, en limitant tous les abonnés de l'ensemble de données associé à l'exécution de la TVF.

Voici la syntaxe de la TVF :

campaigns_template(t1 TABLE campaign_ID <STRING> ) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, sum(impressions) FROM myproject.my_campaign.campaigns
group by company_id, company
);

Comme l'utilisateur A dispose des autorisations appropriées pour la table "campaigns" avec le rôle Propriétaire des données BigQuery, il peut approuver lui-même immédiatement le modèle de requête après l'avoir envoyé pour examen.

Partage de collaboration multipartite

Le propriétaire d'une clean room invite un contributeur de confiance à proposer des requêtes à exécuter sur les données de chacun. Les deux parties peuvent proposer des requêtes de manière sécurisée en consultant uniquement les schémas de métadonnées, sans accéder aux données partagées sous-jacentes. Lorsqu'une définition de requête fait référence à des données qui n'appartiennent pas au proposant du modèle, seul le propriétaire de ces données peut approuver le modèle.

Dans ce scénario, l'utilisateur A invite l'utilisateur B, qui est un contributeur de data clean room, à rejoindre la clean room campaign_analysis. L'utilisateur B souhaite proposer un modèle de requête pour joindre ses propres données à la table campaigns en affichant le schéma des métadonnées de la table.

Voici la syntaxe de la TVF :

campaigns_template(t1 TABLE campaign_ID <STRING> ) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, sum(impressions) FROM my_project.my_campaign.campaigns
group by company_id, company
);

Étant donné que l'utilisateur B n'a pas ajouté la table campaigns et n'en est pas propriétaire, une fois le modèle de requête envoyé pour approbation, seul l'utilisateur A peut l'approuver. Pour utiliser le modèle de requête, l'utilisateur B doit s'abonner à la clean room et appeler la TVF. L'utilisateur B transmet sa propre table avec un champ appelé campaign_ID comme paramètre de table et peut exécuter le code SQL privé défini dans le modèle de requête. Il est important de noter ici que l'utilisateur B n'a pas besoin d'ajouter ses données à la data clean room.

L'utilisateur B ajoute également à la clean room un ensemble de données nommé my_transactions, qui comporte une table transactions et une table products. L'utilisateur B configure des règles de seuil d'agrégation et des contrôles de métadonnées pour vérifier que seul le schéma de métadonnées est visible et que les abonnés ne peuvent pas accéder aux données sources.

L'utilisateur A peut désormais proposer différents modèles de requêtes pour joindre ses propres données à la table des transactions en affichant le schéma des métadonnées de la table. Voici des exemples de syntaxe TVF :

transactions_template(t1 TABLE user_ID  <STRING> ) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, campaign_id, sku, category, date, sum(amount) FROM my_project.my_transactions.transactions
group by company_id, company, campaign_id, sku, category, date
);
transactions_template_with_join(t1 TABLE user_ID  <STRING> ) AS (
SELECT WITH AGGREGATION_THRESHOLD t.company_id, t.company, t.campaign_id, t.sku, t.date, p.product_name, p.product_category, sum(t.amount) FROM myproject.my_transactions.transactions t
left join my_project.my_transactions.products p
on t.product_id = p.product_id
group by t.company_id, t.company, t.campaign_id, t.sku, t.date, p.product_name, p.product_category
);

Étant donné que l'utilisateur A n'a pas ajouté les tables transactions et products et n'en est pas propriétaire, une fois le modèle de requête envoyé pour approbation, seul l'utilisateur B peut l'approuver. Pour utiliser le modèle de requête, l'utilisateur A doit s'abonner à la clean room et appeler la TVF. L'utilisateur A transmet sa propre table avec un champ nommé user_ID comme paramètre de table et peut exécuter le SQL de confidentialité défini dans le modèle de requête. Il est important de noter ici que l'utilisateur A n'a pas besoin d'ajouter ses données à la clean room.

Tarifs

Nous ne facturons que le stockage de données aux contributeurs de données qui utilisent des modèles de requêtes.

Les abonnés qui utilisent des modèles de requête ne sont facturés que pour le calcul (analyse) lorsqu'ils exécutent des requêtes.

Étapes suivantes