Utilizza i modelli di query

I template di query delle data clean room di BigQuery consentono ai proprietari e ai collaboratori dei dati di pubblicare query approvate per gli abbonati. La predefinizione di queste query riduce al minimo i rischi di esfiltrazione di dati, garantisce risultati analitici coerenti e semplifica l'onboarding per gli analisti che non hanno familiarità con l'SQL incentrato sulla privacy.

I template di query utilizzano funzioni con valori di tabella (TVF) per accettare tabelle o campi specifici come parametri e restituire risultati senza esporre dati non elaborati.

Limitazioni

I modelli di query presentano le seguenti limitazioni:

  • I modelli di query supportano un massimo di due riferimenti ai dati, ovvero i dati utilizzati per definire la query della TVF e l'input del parametro dei dati accettato dalla TVF. Puoi fare riferimento a più tabelle o visualizzazioni nella definizione della query della TVF, ma devono appartenere tutte allo stesso proprietario o alla stessa parte dei dati.
  • Le TVF dei modelli di query supportano solo i tipi fissi TABLE e VIEW.
  • Le definizioni dei modelli di query sono soggette alle stesse limitazioni delle TVF.

Ruoli

Esistono tre ruoli principali per l'utilizzo dei modelli di query delle data clean room. Ogni ruolo ha flussi di lavoro specifici, descritti in questo documento:

Prima di iniziare

Per abilitare l'API Analytics Hub per il tuo progetto Google Cloud , seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina API Analytics Hub.

    Vai all'API Analytics Hub

  2. Nella barra degli strumenti della console Google Cloud , seleziona il tuo progetto.

  3. Se l'API non è già abilitata, fai clic su Abilita.

gcloud

Esegui il comando gcloud services enable:

gcloud services enable analyticshub.googleapis.com

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire le attività descritte in questo documento, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per eseguire le attività descritte in questo documento. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per eseguire le attività descritte in questo documento sono necessarie le seguenti autorizzazioni:

  • Crea o elimina una TVF in una data clean room:
    • bigquery.routines.create sul progetto
    • bigquery.routines.update sul progetto
    • bigquery.routines.delete sul progetto
  • Autorizza una TVF: bigquery.datasets.update sui set di dati a cui accede la routine
  • Crea un modello di query:
    • analyticshub.listings.subscribe sul progetto
    • analyticshub.queryTemplates.create sul progetto
  • Approva un template di query:
    • bigquery.routines.create sul progetto
    • bigquery.datasets.update sui set di dati a cui accede la routine
    • analyticshub.listings.create sul progetto
    • analyticshub.queryTemplates.approve sul progetto
  • Aggiorna un template di query esistente: analyticshub.queryTemplates.update sul template di query
  • Recupera i dettagli di un template di query: analyticshub.queryTemplates.get sul template di query
  • Elenca tutti i template di query in un data exchange: analyticshub.queryTemplates.list sul data exchange
  • Elimina un template di query: analyticshub.queryTemplates.delete sul template di query

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Chiavi di crittografia gestite dal cliente (CMEK)

Puoi proteggere i template di query utilizzando le chiavi di crittografia gestite dal cliente (CMEK) in Cloud Key Management Service (Cloud KMS).

Se fornisci la tua chiave Cloud KMS, devi concedere il ruolo Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) all'agente di servizio di condivisione BigQuery del progetto contenente il data clean room, ad esempio service-12345@gcp-sa-analyticshub..

Se il progetto non ha un service agent di BigQuery sharing, un Project Owner deve crearlo eseguendo il comando gcloud beta services identity create:

gcloud beta services identity create --service=analyticshub.googleapis.com --project=my-dcr-project

Limitazioni CMEK

L'utilizzo di CMEK con i template di query è soggetto alle seguenti limitazioni:

  • La modifica delle chiavi non è supportata: dopo aver creato un modello di query con una chiave Cloud KMS, non puoi aggiornare, modificare o rimuovere la chiave nel modello di query esistente.
  • Il controllo delle versioni delle chiavi non è supportato: non puoi configurare CMEK con una versione specifica della chiave Cloud KMS. Quando specifichi l'ID risorsa della chiave, fornisci il percorso della chiave senza un numero di versione, ad esempio projects/my-kms-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key.

Workflow per i creator di modelli

In qualità di creator di modelli di query, puoi:

Aggiungi una scheda a una data clean room

Prima di creare un modello di query, devi aggiungere dati a una data clean room. Per creare una scheda nella data clean room, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome visualizzato della data clean room in cui vuoi creare il modello di query.

  3. Fai clic su Aggiungi dati e segui i passaggi per creare una vista con le regole di analisi configurate. Per istruzioni dettagliate, consulta Crea una scheda (aggiungi dati).

    Per aggiungere dati di altre parti, condividi la data clean room con un altro collaboratore di fiducia. Questo collaboratore ai dati deve anche aggiungere dati alla data clean room per poter essere utilizzato in un modello di query.

  4. Imposta i controlli per l'uscita dei dati per la scheda.

  5. Imposta i controlli dei metadati per la scheda. Se vuoi condividere solo gli schemi e le descrizioni dei dati aggiunti nel passaggio precedente (e non i dati condivisi stessi), seleziona Escludi l'accesso alla scheda dal set di dati collegato.

  6. Esamina i dettagli della scheda.

  7. Fai clic su Aggiungi dati. La data clean room ora include i metadati della visualizzazione che hai creato per i tuoi dati.

Aggiungi una TVF esistente a una data clean room

Puoi aggiungere una TVF esistente a una data clean room utilizzando l'API Analytics Hub.

Utilizza il metodo projects.locations.dataExchanges.listings.create.

L'esempio seguente mostra come chiamare il metodo projects.locations.dataExchanges.listings.create utilizzando il comando 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/routines/ROUTINE_ID"}]},"displayName":"LISTING_NAME"}'

Sostituisci quanto segue:

  • DCR_PROJECT_ID: l'ID progetto in cui è stato creato il data clean room.
  • LOCATION: la località del data clean room.
  • CLEAN_ROOM_ID: l'ID della data clean room.
  • LISTING_ID: l'ID della scheda.
  • PROJECT_ID: l'ID progetto che contiene il set di dati di origine.
  • DATASET_ID: l'ID del set di dati di origine.
  • ROUTINE_ID: l'ID della routine.
  • LISTING_NAME: il nome visualizzato della scheda.

Crea un modello di query

Per creare un template di query, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome visualizzato della data clean room in cui vuoi creare il modello di query.

  3. Nella clean room, vai alla scheda Modelli.

  4. Fai clic su Crea template.

  5. Inserisci un nome visualizzato e una descrizione per il modello.

  6. Fai clic su Avanti.

  7. Proponi una definizione di query utilizzando gli schemi delle visualizzazioni aggiunte alla clean room:

    • Definisci la query utilizzando la sintassi CREATE TABLE FUNCTION supportata.
    • Passa l'intera tabella o visualizzazione con definizioni fisse. Devi definire il riferimento completo al percorso della tabella, inclusi l'ID progetto e l'ID set di dati, dai dati aggiunti alla clean room. Ad esempio:

          query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)
      
    • Se hai applicato regole di analisi della privacy ai dati, assicurati che questa TVF includa una sintassi SQL specifica per la privacy, ad esempio SELECT WITH AGGREGATION_THRESHOLD.

  8. Esamina i dettagli del template.

  9. Per salvare il modello senza inviarlo per la revisione, fai clic su Salva. Il template di query ora ha lo stato BOZZA.

Puoi aggiornare il modello di query o inviarlo per la revisione.

API

L'esempio seguente mostra come creare un template di query utilizzando il comando 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 \
'{
  "displayName": "DISPLAY_NAME",
  "routine": {
    "routineType": "TABLE_VALUED_FUNCTION",
    "definitionBody": "QUERY_TEMPLATE_ID(TVF arguments) AS (TVF_DEFINITION)"
  }
}'

Sostituisci quanto segue:

  • DCR_PROJECT_ID: l'ID progetto in cui è stato creato il data clean room.
  • LOCATION: la località del data clean room.
  • CLEAN_ROOM_ID: l'ID della data clean room.
  • QUERY_TEMPLATE_ID: l'ID del template di query.
  • DISPLAY_NAME: il nome visualizzato del template di query. Non puoi aggiornare il nome visualizzato del template di query dopo averlo creato.
  • TVF_DEFINITION: la definizione della TVF.

Il seguente esempio di codice mostra un esempio di definition_body per la chiamata API. Devi definire il riferimento completo al percorso della tabella, inclusi l'ID progetto e l'ID set di dati, dai dati aggiunti alla clean room:

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

definition_body è analogo alla definizione di una routine. Il codice definition_body precedente si traduce nella seguente routine:

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

Sostituisci APPROVERS_DATASET con l'ID del set di dati in cui l'approvatore del template crea la routine.

Puoi aggiornare il modello di query o inviarlo per la revisione.

Aggiorna un template di query

Puoi aggiornare un modello di query solo se è in stato BOZZA. Dopo aver inviato un modello di query per la revisione, non puoi più modificarlo.

Per aggiornare un template di query, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome visualizzato della data clean room che contiene il modello di query.

  3. Nella clean room, vai alla scheda Modelli.

  4. Nella riga del modello che vuoi aggiornare, fai clic su Azioni > Modifica modello.

  5. Aggiorna la descrizione e il contatto principale in base alle tue esigenze.

  6. Fai clic su Avanti.

  7. Esamina i dettagli del template.

  8. Per salvare il modello senza inviarlo per la revisione, fai clic su Salva.

API

L'esempio seguente mostra come aggiornare un template di query utilizzando il comando 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 '{
   "description": "New query template"
 }'

Sostituisci quanto segue:

  • DCR_PROJECT_ID: l'ID progetto in cui è stato creato il data clean room.
  • LOCATION: la località del data clean room.
  • CLEAN_ROOM_ID: l'ID della data clean room.
  • QUERY_TEMPLATE_ID: l'ID del template di query.

Invia un modello di query per la revisione

Per inviare un modello di query per la revisione, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome visualizzato della data clean room che contiene il modello di query.

  3. Nella clean room, vai alla scheda Modelli.

  4. Nella riga del modello che vuoi inviare per la revisione, fai clic su Azioni > Invia per revisione. Il modello ora ha lo stato Richiede revisione.

API

L'esempio seguente mostra come inviare un modello di query per la revisione utilizzando il comando 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

Sostituisci quanto segue:

  • DCR_PROJECT_ID: l'ID progetto in cui è stato creato il data clean room.
  • LOCATION: la località del data clean room.
  • CLEAN_ROOM_ID: l'ID della data clean room.
  • QUERY_TEMPLATE_ID: l'ID del template di query.

Elimina un template di query

Puoi eliminare un modello di query solo se è nello stato BOZZA. Dopo aver inviato un modello di query per la revisione, non puoi più eliminarlo.

Per eliminare un template di query, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome visualizzato della data clean room che contiene il modello di query.

  3. Nella clean room, vai alla scheda Modelli.

  4. Nella riga del template che vuoi eliminare, fai clic su Azioni > Elimina template.

API

L'esempio seguente mostra come eliminare un template di query utilizzando il comando 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/QUERY_TEMPLATE_ID

Sostituisci quanto segue:

  • DCR_PROJECT_ID: l'ID progetto in cui è stato creato il data clean room.
  • LOCATION: la località del data clean room.
  • CLEAN_ROOM_ID: l'ID della data clean room.
  • QUERY_TEMPLATE_ID: l'ID del template di query.

Workflow dei modelli di approvazione

In qualità di approvatore di modelli di query, puoi approvare un modello di query.

Quando una TVF fa riferimento a dati di cui non sei proprietario, ad esempio i dati di un altro collaboratore, solo il proprietario di questi dati può approvare il modello di query. Se stai creando una TVF che fa riferimento solo ai tuoi dati per la condivisione in una direzione, puoi approvare il template di query autonomamente.

Approva un template di query

Per approvare un template di query, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Condivisione (Analytics Hub).

    Vai a Condivisione (Analytics Hub)

  2. Fai clic sul nome visualizzato della data clean room che contiene il modello di query.

  3. Nella clean room, vai alla scheda Modelli.

  4. Nella riga del modello che richiede la tua revisione, fai clic su Stato di approvazione > Richiede revisione.

  5. Fai clic su Approva.

  6. Seleziona la posizione del template. Questa è la località in cui viene creata la TVF per la condivisione.

  7. Esamina il modello di query proposto.

  8. Per approvare il modello di query da utilizzare nella data clean room, fai clic su Approva.

API

  1. Crea la routine dal template di query chiamando il metodo jobs.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}'

    Sostituisci quanto segue:

    • ROUTINE_PROJECT_ID: l'ID progetto in cui è stata creata la routine.
    • ROUTINE_CREATION_QUERY: la query per creare la routine.
  2. Aggiungi la routine che hai creato alla 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/routines/ROUTINE_ID"}]},"displayName":"LISTING_NAME"}'

    Sostituisci quanto segue:

    • DCR_PROJECT_ID: l'ID progetto in cui è stato creato il data clean room.
    • LOCATION: la località del data clean room.
    • CLEAN_ROOM_ID: l'ID della data clean room.
    • LISTING_ID: l'ID della scheda.
    • PROJECT_ID: l'ID progetto che contiene il set di dati di origine.
    • DATASET_ID: l'ID del set di dati di origine.
    • ROUTINE_ID: l'ID della routine.
    • LISTING_NAME: il nome visualizzato della scheda.
  3. Aggiorna lo stato del modello di query su 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 '{}'

    Sostituisci quanto segue:

    • DCR_PROJECT_ID: l'ID progetto in cui è stato creato il data clean room.
    • LOCATION: la località del data clean room.
    • CLEAN_ROOM_ID: l'ID della data clean room.
    • QUERY_TEMPLATE_ID: l'ID del template di query.

Rifiuta un modello di query

Nella console Google Cloud , puoi rifiutare un modello di query non approvando il modello di query inviato in fase di revisione.

Workflow dei sottoscrittori di modelli

Un utente con il ruolo Query Template Subscriber può visualizzare una data clean room e iscriversi. Se alla data clean room viene aggiunto solo il modello di query, l'iscrizione alla data clean room concede l'accesso solo alla TVF corrispondente, non ai dati condivisi sottostanti.

Sottoscrivi un template di query

Per iscriverti a un modello di query, seleziona una delle seguenti opzioni:

Console

Puoi iscriverti a un modello di query iscrivendoti alla data clean room. La sottoscrizione concede l'accesso a tutte le schede per cui l'impostazione Escludi l'accesso alla scheda dal set di dati collegato è disattivata.

Dopo aver sottoscritto l'abbonamento alla data clean room, segui questi passaggi per eseguire un modello di query:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Explorer, vai al set di dati collegato che hai creato quando ti sei iscritto alla clean room.

  3. Apri la routine o la TVF condivisa nel set di dati collegato.

  4. Fai clic su Richiama funzione tabella.

  5. Sostituisci il parametro con l'input accettato, ovvero il nome della tabella o un campo.

  6. Fai clic su Esegui.

Se non riesci a visualizzare la TVF nidificata come elemento secondario del set di dati collegato nel riquadro Explorer, puoi eseguire query sulla TVF direttamente sul set di dati collegato:

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

API

Utilizza il metodo projects.locations.dataExchanges.subscribe.

L'esempio seguente mostra come chiamare il metodo projects.locations.dataExchanges.subscribe utilizzando il comando 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"}'

Sostituisci quanto segue:

  • DCR_PROJECT_ID: l'ID progetto in cui è stato creato il data clean room.
  • LOCATION: la località del data clean room.
  • CLEAN_ROOM_ID: l'ID della data clean room.
  • SUBSCRIBER_PROJECT_ID: l'ID progetto del progetto sottoscrittore del template.
  • SUBSCRIPTION: il nome della tua sottoscrizione.

Dopo aver sottoscritto l'abbonamento al modello di query, puoi eseguire query sulla TVF direttamente sul set di dati collegato:

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

Scenari di esempio

Puoi utilizzare i template di query per facilitare diverse forme di collaborazione sui dati all'interno di una data clean room. Le sezioni seguenti descrivono scenari di esempio.

Scenario di condivisione unidirezionale

Un publisher di dati crea un modello di query in modo che i partner iscritti possano eseguire solo le query definite dal publisher. I creatori dei modelli di query approvano autonomamente i modelli di query perché nessun altro collaboratore viene aggiunto alla clean room.

In questo scenario, l'utente A è un proprietario di una data clean room che crea una data clean room denominata campaign_analysis e aggiunge un set di dati denominato my_campaign con una tabella campaigns. L'utente A configura una policy per la soglia di aggregazione e i controlli dei metadati in modo che sia visibile solo lo schema dei metadati e che gli abbonati al template non possano accedere ai dati di origine. L'utente A crea quindi un modello di query definendo una TVF dalla tabella campaigns, limitando gli abbonati del set di dati collegato all'esecuzione della sola TVF.

Questa è la sintassi della 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
);

Poiché l'utente A dispone delle autorizzazioni appropriate per la tabella campaigns con il ruolo BigQuery Data Owner, può approvare autonomamente il modello di query subito dopo averlo inviato per la revisione.

Condivisione della collaborazione tra più parti

Il proprietario di una clean room invita un collaboratore di fiducia a proporre query da eseguire sui dati dell'altro. Entrambe le parti possono proporre query in modo sicuro visualizzando solo gli schemi dei metadati, senza accedere ai dati condivisi sottostanti. Quando una definizione di query fa riferimento a dati che non appartengono al proponente del modello, solo il proprietario di questi dati può approvare il modello di query.

In questo scenario, l'utente A invita l'utente B, che è un collaboratore della data clean room, alla data clean room campaign_analysis. L'utente B vuole proporre un modello di query per unire i propri dati alla tabella campaigns visualizzando lo schema dei metadati della tabella.

Questa è la sintassi della 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
);

Poiché l'utente B non ha aggiunto o non è proprietario della tabella campaigns, solo l'utente A può approvare il modello di query dopo che è stato inviato per la revisione. Per utilizzare il modello di query, l'utente B deve iscriversi alla data clean room e richiamare la TVF. L'utente B passa la propria tabella con un campo denominato campaign_ID come parametro della tabella e può eseguire l'SQL incentrato sulla privacy definito nel modello di query. L'utente B non deve aggiungere i propri dati alla data clean room.

Anche l'utente B aggiunge alla data clean room un set di dati denominato my_transactions che contiene una tabella transactions e una tabella products. L'utente B configura una policy di soglia di aggregazione e controlli dei metadati in modo che sia visibile solo lo schema dei metadati e gli abbonati al template non possano accedere ai dati di origine.

L'utente A può ora proporre vari modelli di query per unire i propri dati alla tabella transactions visualizzando lo schema dei metadati della tabella. Di seguito sono riportati esempi di sintassi 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
);

Poiché l'utente A non ha aggiunto o non è proprietario delle tabelle transactions e products, solo l'utente B può approvare il modello di query dopo che è stato inviato per la revisione. Per utilizzare il modello di query, l'utente A deve iscriversi alla data clean room e richiamare la TVF. L'utente A passa la propria tabella con un campo denominato user_ID come parametro della tabella e può eseguire l'SQL incentrato sulla privacy definito nel modello di query. L'utente A non deve aggiungere i propri dati alla data clean room.

Prezzi

La tabella seguente riassume i prezzi dei template di query per le data clean room di BigQuery:

Ruolo Dettagli dei prezzi
Collaboratore data clean room Viene addebitato solo l'importo per l'archiviazione dei dati.
Sottoscrittore del modello Addebiti solo per il computing (analisi) durante l'esecuzione delle query.

Passaggi successivi