Utiliser des modèles de requête

Les modèles de requête de salle blanche de données BigQuery permettent aux propriétaires et aux contributeurs de données de publier des requêtes approuvées pour les abonnés. La prédéfinition de ces requêtes minimise les risques d'exfiltration de données, garantit des résultats d'analyse cohérents et simplifie l'intégration des analystes qui ne sont pas familiarisés avec le SQL axé sur la confidentialité.

Les modèles de requêtes utilisent des fonctions de valeur de table (TVF) pour accepter des tables ou des champs spécifiques en tant que paramètres et renvoyer des résultats sans exposer les données brutes.

Limites

Les modèles de requêtes présentent les limites suivantes :

  • Les modèles de requête n'acceptent que deux références de données au maximum : les données utilisées pour définir la requête de la TVF et l'entrée du paramètre de données acceptée par la TVF. Vous pouvez référencer plusieurs tables ou vues dans la définition de la requête de la TVF, mais elles doivent toutes appartenir au même propriétaire de données ou à la même partie.
  • Les TVF de modèle de requête ne sont compatibles qu'avec les types fixes TABLE et VIEW.
  • Les définitions de modèles de requête sont soumises aux mêmes limites que les fonctions de valeur de table.

Rôles

Il existe trois rôles principaux pour utiliser les modèles de requête de salle blanche de données. Chaque rôle dispose de workflows spécifiques, décrits dans ce document :

Avant de commencer

Pour activer l'API Analytics Hub pour votre projet Google Cloud , sélectionnez l'une des options suivantes :

Console

  1. Dans la console Google Cloud , 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 suivante :

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éez ou supprimez une TVF dans une salle blanche de données :
    • bigquery.routines.create sur le projet
    • bigquery.routines.update sur le projet
    • bigquery.routines.delete sur le projet
  • Autoriser 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
  • Mettre à jour un modèle de requête existant : analyticshub.queryTemplates.update sur le modèle de requête
  • Récupérez les détails d'un modèle de requête : analyticshub.queryTemplates.get sur le modèle de requête
  • Répertoriez tous les modèles de requête dans un échange de données : analyticshub.queryTemplates.list sur l'échange de données.
  • Supprimez un modèle de requête : analyticshub.queryTemplates.delete sur le modèle de requête.

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

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 salle blanche de données

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 salle blanche de données, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Partage (Analytics Hub).

    Accéder à Partage (Analytics Hub)

  2. Cliquez sur le nom à afficher de la salle blanche de données dans laquelle vous souhaitez créer le modèle de requête.

  3. Cliquez sur Ajouter des données, puis suivez les étapes 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).

    Pour ajouter des données d'autres parties, partagez la salle blanche avec un autre contributeur de confiance. Ce contributeur de données doit également ajouter des données à la clean room pour pouvoir les utiliser 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 souhaitez partager uniquement 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 de l'ensemble de données associé.

  6. Vérifiez les informations de la fiche.

  7. Cliquez sur Add Data (Ajouter des données). La clean room inclut désormais les métadonnées de la vue que vous avez créée pour vos données.

Ajouter une TVF existante à une salle blanche de données

Vous pouvez ajouter une TVF existante à une salle blanche de données à 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 salle blanche de données a été créée.
  • LOCATION : emplacement de la salle blanche de données.
  • CLEAN_ROOM_ID : ID de la salle blanche 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 à afficher de la fiche.

Créer un modèle de requête

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

Console

  1. Dans la console Google Cloud , accédez à la page Partage (Analytics Hub).

    Accéder à Partage (Analytics Hub)

  2. Cliquez sur le nom à afficher de la salle blanche de données 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 à afficher et une description pour le modèle.

  6. Cliquez sur Suivant.

  7. Proposez une définition de requête en utilisant les schémas des vues ajoutées à la clean room :

    • Définissez la requête à l'aide de la syntaxe CREATE TABLE FUNCTION compatible.
    • Transmettez l'intégralité de votre table ou de votre vue avec des définitions fixes. Vous devez définir la référence complète du 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 data clean room. Exemple :

          query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)
      
    • 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é, telle que 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 à 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/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID -d
  'query_template {
  display_name: "DISPLAY_NAME",
  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 salle blanche de données a été créée.
  • LOCATION : emplacement de la salle blanche de données.
  • CLEAN_ROOM_ID : ID de la salle blanche de données.
  • QUERY_TEMPLATE_ID : ID du modèle de requête.
  • DISPLAY_NAME : nom à afficher du modèle de requête. Vous ne pouvez pas modifier le nom à afficher du modèle de requête après l'avoir créé.
  • 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 du 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 data 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. La commande definition_body précédente 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. Une fois que vous avez envoyé un modèle de requête 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. Dans la console Google Cloud , accédez à la page Partage (Analytics Hub).

    Accéder à Partage (Analytics Hub)

  2. Cliquez sur le nom à afficher de la salle blanche de données qui contient 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. Mettez à jour la description et le contact principal si nécessaire.

  6. Cliquez sur Suivant.

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

  8. Pour enregistrer le modèle sans l'envoyer pour examen, cliquez sur Enregistrer.

API

L'exemple suivant montre comment mettre à jour un modèle de requête à 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 PATCH "https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID?updateMask=description" \
 -d '{
   "query_template": {
     "description": "New query template"
   }
 }'

Remplacez les éléments suivants :

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

Envoyer un modèle de requête pour examen

Pour envoyer un modèle de requête pour examen, sélectionnez l'une des options suivantes :

Console

  1. Dans la console Google Cloud , accédez à la page Partage (Analytics Hub).

    Accéder à Partage (Analytics Hub)

  2. Cliquez sur le nom à afficher de la salle blanche de données qui contient 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 à l'état Examen requis.

API

L'exemple suivant montre comment envoyer un modèle de requête pour examen à 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/queryTemplates/QUERY_TEMPLATE_ID:submit

Remplacez les éléments suivants :

  • DCR_PROJECT_ID : ID du projet dans lequel la salle blanche de données a été créée.
  • LOCATION : emplacement de la salle blanche de données.
  • CLEAN_ROOM_ID : ID de la salle blanche 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. Une fois que vous avez envoyé un modèle de requête pour examen, vous ne pouvez plus le supprimer.

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

Console

  1. Dans la console Google Cloud , accédez à la page Partage (Analytics Hub).

    Accéder au partage (Analytics Hub)

  2. Cliquez sur le nom à afficher de la salle blanche de données qui contient 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 à 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 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 salle blanche de données a été créée.
  • LOCATION : emplacement de la salle blanche de données.
  • CLEAN_ROOM_ID : ID de la salle blanche 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êtes, 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), seul le propriétaire de ces données peut approuver le modèle de requête. Si vous créez une TVF qui ne fait référence qu'à vos données pour le partage dans une seule direction, vous pouvez approuver vous-même le modèle de requête.

Approuver un modèle de requête

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

Console

  1. Dans la console Google Cloud , accédez à la page Partage (Analytics Hub).

    Accéder à Partage (Analytics Hub)

  2. Cliquez sur le nom à afficher de la salle blanche de données qui contient le modèle de requête.

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

  4. Sur la ligne du modèle à examiner, cliquez sur État d'approbation > Examen requis.

  5. Cliquez sur Approuver.

  6. Sélectionnez l'emplacement du modèle. Cet emplacement correspond à l'endroit où la TVF est créée pour le partage.

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

  8. Pour approuver l'utilisation du modèle de requête dans la salle blanche de données, cliquez sur Approuver.

API

  1. Créez la routine à partir du modèle de requête en appelant la méthode 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 salle blanche de données :

    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 salle blanche de données a été créée.
    • LOCATION : emplacement de la salle blanche de données.
    • CLEAN_ROOM_ID : ID de la salle blanche 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 à afficher de la fiche.
  3. Mettez à jour 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 salle blanche de données a été créée.
    • LOCATION : emplacement de la salle blanche de données.
    • CLEAN_ROOM_ID : ID de la salle blanche 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 rejeter un modèle de requête en n'approuvant pas le modèle de requête envoyé en cours d'examen.

Modèles de workflows pour les abonnés

Un abonné à un modèle de requête peut afficher une salle blanche de données 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

Pour vous 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 salle blanche de données. L'abonnement accorde l'accès à toutes les fiches pour lesquelles le paramètre Exclure l'accès à la fiche de l'ensemble de données associé est désactivé.

Après vous être abonné à la salle blanche de données, procédez comme suit pour exécuter un modèle de requête :

  1. Dans la console Google Cloud , accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans le volet Explorateur, accédez à l'ensemble de données associé que vous avez créé lorsque vous vous êtes abonné à la data 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 est le nom de la table ou un champ.

  6. Cliquez sur Exécuter.

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

SELECT * FROM `my_project.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 salle blanche de données a été créée.
  • LOCATION : emplacement de la salle blanche de données.
  • CLEAN_ROOM_ID : ID de la salle blanche de données.
  • SUBSCRIBER_PROJECT_ID : ID du projet abonné au modèle.
  • 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 `my_project.dcr_linked_dataset.mytvf`(TABLE myTable);

Exemples de cas de figure

Vous pouvez utiliser des modèles de requêtes pour faciliter différentes formes de collaboration sur les données dans une salle blanche de données. 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 afin que les partenaires abonnés ne puissent exécuter que les requêtes qu'il définit. Les créateurs de modèles de requêtes s'approuvent eux-mêmes, car aucun autre contributeur n'est ajouté à la clean room.

Dans ce scénario, l'utilisateur A est le propriétaire d'une salle blanche de données. Il crée une salle blanche de données appelée campaign_analysis et y ajoute un ensemble de données nommé my_campaign avec une table campaigns. L'utilisateur A configure une règle de seuil d'agrégation et des contrôles de métadonnées afin que seul le schéma de métadonnées soit visible et que les abonnés au modèle ne puissent pas accéder aux données sources. L'utilisateur A crée ensuite un modèle de requête en définissant une TVF à partir de la table campaigns, ce qui limite les abonnés de l'ensemble de données associé à l'exécution de la TVF uniquement.

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

Comme l'utilisateur A dispose des autorisations appropriées pour la table campaigns avec le rôle "Propriétaire de données BigQuery", il peut immédiatement approuver lui-même 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 en toute sécurité en ne consultant que 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 de requête.

Dans ce scénario, l'utilisateur A invite l'utilisateur B, qui est un contributeur de la salle blanche de données, à rejoindre la salle blanche 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
);

Comme l'utilisateur B n'a pas ajouté la table campaigns ou n'en est pas propriétaire, seul l'utilisateur A peut approuver le modèle de requête après son envoi pour examen. 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 nommé campaign_ID en tant que paramètre de table, et peut exécuter le code SQL axé sur la confidentialité défini dans le modèle de requête. L'utilisateur B n'a pas besoin d'ajouter ses données à la salle blanche.

L'utilisateur B ajoute également un ensemble de données nommé my_transactions à la clean room, qui contient une table transactions et une table products. L'utilisateur B configure une règle de seuil d'agrégation et des contrôles de métadonnées afin que seul le schéma de métadonnées soit visible et que les abonnés au modèle ne puissent 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 transactions en affichant le schéma des métadonnées de la table. Voici des exemples de syntaxe de 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 my_project.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 ou n'en est pas propriétaire, seul l'utilisateur B peut approuver le modèle de requête après son envoi pour examen. 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 en tant que paramètre de table, et peut exécuter le code SQL axé sur la confidentialité défini dans le modèle de requête. L'utilisateur A n'a pas besoin d'ajouter ses données à la data clean room.

Tarifs

Le tableau suivant récapitule les tarifs des modèles de requête de data clean room BigQuery :

Rôle Détail du prix
Contributeur de données Vous n'êtes facturé que pour le stockage de données.
Abonné au modèle Facturation uniquement pour le calcul (analyse) lors de l'exécution de requêtes.

Étapes suivantes