Utilizzare i modelli di query
I modelli di query delle data clean room di BigQuery accelerano il time-to-insight e forniscono ulteriori livelli di sicurezza e controllo per ridurre al minimo i problemi di esfiltrazione dei dati. Definendo e limitando in anticipo le query che possono essere eseguite nelle data clean room, puoi:
Contribuire a prevenire la fuga di dati sensibili. Quando gli abbonati che eseguono query in una data clean room hanno maggiore flessibilità di esplorazione, i proprietari dei dati ritengono che esista un rischio maggiore di esposizione accidentale o intenzionale di informazioni sensibili.
Semplificare l'onboarding e l'adozione per gli utenti meno esperti di tecnologia. Molti fornitori di dati si aspettano che gli abbonati alle clean room siano meno esperti a livello tecnico, soprattutto nella scrittura di query SQL incentrate sulla privacy e nella comprensione di come allocare in modo appropriato i budget per la privacy.
Garantire risultati analitici coerenti per gli abbonati ai dati. Diventa più difficile applicare regole specifiche di analisi dei dati e verificare la conformità alle normative sulla privacy quando non è possibile controllare le query eseguite in una data clean room.
I modelli di query consentono ai proprietari e ai collaboratori dei dati di creare query predefinite e approvate, specificamente adattate ai casi d'uso della data clean room e di pubblicarle per l'utilizzo da parte degli abbonati. Le query predefinite utilizzano funzioni con valori di tabella (TVF) in BigQuery per consentire il passaggio di un'intera tabella o di campi specifici come parametri di input e restituire una tabella come output.
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 di dati accettato dalla TVF.
- È possibile fare riferimento a più tabelle o viste all'interno della definizione della query del TVF, ma devono appartenere tutte allo stesso proprietario o alla stessa parte dei dati.
- Le funzioni definite dall'utente dei modelli di query supportano solo i tipi fissi
TABLE
eVIEW
. - Le definizioni dei modelli di query sono soggette alle stesse limitazioni delle TVF.
Prima di iniziare
Abilita l'API Analytics Hub per il tuo Google Cloud progetto seguendo questi passaggi:
Console
Vai alla pagina API Analytics Hub.
Nella barra degli strumenti della console Google Cloud , seleziona il progetto.
Se l'API non è già abilitata, fai clic su Abilita.
bq
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:
-
Creare o eliminare una TVF in una data clean room:
-
Analytics Hub Publisher (
roles/analyticshub.publisher
) sul progetto -
Analytics Hub Subscriber (
roles/analyticshub.subscriber
) sul progetto
-
Analytics Hub Publisher (
-
Autorizza una TVF:
Proprietario dati BigQuery (
roles/bigquery.dataOwner
) sul progetto -
Aggiungere, aggiornare o eliminare una scheda TVF in una data clean room:
-
Analytics Hub Publisher (
roles/analyticshub.publisher
) sul progetto -
Analytics Hub Subscriber (
roles/analyticshub.subscriber
) sul progetto
-
Analytics Hub Publisher (
-
Crea un modello di query:
-
Analytics Hub Publisher (
roles/analyticshub.publisher
) sul progetto -
Analytics Hub Subscriber (
roles/analyticshub.subscriber
) sul progetto
-
Analytics Hub Publisher (
-
Approva un modello di query:
-
Analytics Hub Publisher (
roles/analyticshub.publisher
) sul progetto -
BigQuery Data Owner (
roles/bigquery.dataOwner
) sul progetto
-
Analytics Hub Publisher (
-
Iscriviti a una data clean room con modelli di query:
-
Analytics Hub Subscriber (
roles/analyticshub.subscriber
) sul progetto -
Analytics Hub Subscription Owner (
roles/analyticshub.subscriptionOwner
) sul progetto in cui vuoi abbonarti alla data clean room
-
Analytics Hub Subscriber (
-
Esegui le query definite nei modelli di query:
-
Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) sul progetto -
Utente BigQuery (
roles/bigquery.user
) sul progetto
-
Visualizzatore dati BigQuery (
Per ulteriori informazioni 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:
-
Creare o eliminare 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 modello 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
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Aggiungere un TVF esistente a una data clean room
Puoi aggiungere un 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/tables/ROUTINE_ID"}],},"displayName":LISTING_NAME"}'
Sostituisci quanto segue:
DCR_PROJECT_ID
: l'ID progetto in cui è stata creata la data clean room.PROJECT_ID
: l'ID progetto del progetto in cui era contenuto il set di dati di origine.DATASET_ID
: l'ID del set di dati di origine.LOCATION
: la posizione della data clean room.CLEAN_ROOM_ID
: l'ID della data clean room.LISTING_ID
: l'ID scheda.LISTING_NAME
: il nome della scheda.ROUTINE_ID
: l'ID della routine.
Ruoli dei modelli di query
Esistono tre ruoli principali per l'utilizzo dei modelli di query della data clean room. Ogni ruolo ha flussi di lavoro specifici, descritti più avanti in questo documento.
Creatore del modello: un utente che definisce le query da eseguire all'interno della data clean room. Questo ruolo è analogo a uno dei seguenti ruoli: Amministratore Analytics Hub, Publisher Analytics Hub o Amministratore schede Analytics Hub. Per saperne di più, vedi Flussi di lavoro per la creazione di modelli.
Responsabile dell'approvazione del modello: il proprietario dei dati che deve approvare i riferimenti del modello di query prima che il modello sia disponibile per l'uso. Questo ruolo è analogo a uno dei seguenti ruoli: Amministratore Analytics Hub, Publisher Analytics Hub o Amministratore schede Analytics Hub. Per saperne di più, vedi Flussi di lavoro di approvazione dei modelli.
Abbonato al modello: un utente che si abbona alla data clean room e può eseguire solo le query approvate nel modello. Questo ruolo è analogo al ruolo Analytics Hub Subscriber. Per saperne di più, consulta Flussi di lavoro per gli abbonati ai modelli.
Flussi di lavoro del creatore di modelli
In qualità di creatore di un modello di query, puoi:
- Crea un modello di query.
- Aggiorna un modello di query.
- Invia un modello di query per la revisione.
- Elimina un modello di query.
Aggiungere 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:
Vai alla pagina Condivisione (Analytics Hub).
Fai clic sul nome visualizzato della data clean room in cui vuoi creare il modello di query.
Fai clic su Aggiungi dati e segui i passaggi per creare una vista con le regole di analisi configurate. Per istruzioni dettagliate, vedi Creare una scheda (aggiungere dati).
- Per aggiungere dati di altre parti, condividi la data clean room con un altro collaboratore attendibile. Questo collaboratore deve anche aggiungere dati alla data clean room per poterli utilizzare in un modello di query.
Imposta i controlli di uscita dei dati per la scheda.
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.
Esamina i dettagli della scheda.
Fai clic su Aggiungi dati. I metadati della vista creata per i tuoi dati vengono ora aggiunti alla data clean room.
Creare un modello di query
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina Condivisione (Analytics Hub).
Fai clic sul nome visualizzato della data clean room in cui vuoi creare il modello di query.
Nella clean room, vai alla scheda Modelli.
Fai clic su Crea modello.
Inserisci un nome e una descrizione per il modello.
Fai clic su Avanti.
Puoi visualizzare gli schemi delle viste aggiunte alla data clean room e proporre una definizione di query.
- Assicurati di definire la query utilizzando la sintassi
CREATE TABLE FUNCTION
supportata. Trasferisci l'intera tabella o visualizzazione con definizioni fisse. Devi definire il riferimento al percorso completo 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
.
- Assicurati di definire la query utilizzando la sintassi
Controlla i dettagli del modello.
Per salvare il modello senza inviarlo per la revisione, fai clic su Salva. Il modello di query ora ha lo stato BOZZA.
Puoi aggiornare il modello di query o inviare il modello di query per la revisione.
API
L'esempio seguente mostra come creare un modello di query con un 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 'query_template { name: "query_template1", display_name: "query_template1", routine { definition_body: "QUERY_TEMPLATE_ID(TVF arguments) AS (TVF_DEFINITION)" } }'
Sostituisci quanto segue:
DCR_PROJECT_ID
: l'ID progetto in cui è stata creata la data clean room.LOCATION
: la posizione della data clean room.CLEAN_ROOM_ID
: l'ID della data clean room.QUERY_TEMPLATE_ID
: l'ID del modello di query.TVF_DEFINITION
: la definizione TVF.
Il seguente esempio di codice mostra un esempio di definition_body
per la chiamata API.
Devi definire il riferimento al percorso completo della tabella, inclusi l'ID progetto e l'ID set di dati, dai dati aggiunti alla 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
è analogo alla definizione di una routine. Il
precedente definition_body
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)
Puoi aggiornare il modello di query o inviare il modello di query per la revisione.
Aggiornare un modello di query
Puoi aggiornare un modello di query solo se è in stato BOZZA. Se il modello di query è già stato inviato per la revisione, non puoi più modificarlo.
Per aggiornare un modello di query, seleziona una delle seguenti opzioni:
Console
Vai alla pagina Condivisione (Analytics Hub).
Fai clic sul nome visualizzato della data clean room che contiene il modello di query.
Nella clean room, vai alla scheda Modelli.
Nella riga relativa al modello da aggiornare, fai clic su Azioni > Modifica modello.
Aggiorna i dettagli del modello e la definizione della query in base alle esigenze.
Fai clic su Avanti.
Esamina il modello di query e fai clic su Salva per salvare le modifiche senza inviare il modello per la revisione.
API
L'esempio seguente mostra come aggiornare un modello di query con un 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=display_name -d 'query_template { display_name: "query_template1" }'
Sostituisci quanto segue:
DCR_PROJECT_ID
: l'ID progetto in cui è stata creata la data clean room.LOCATION
: la posizione della data clean room.CLEAN_ROOM_ID
: l'ID della data clean room.QUERY_TEMPLATE_ID
: l'ID del modello di query.
Inviare un modello di query per la revisione
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina Condivisione (Analytics Hub).
Fai clic sul nome visualizzato della data clean room che contiene il modello di query.
Nella clean room, vai alla scheda Modelli.
Nella riga relativa al modello che vuoi inviare per la revisione, fai clic su Azioni > Invia per la revisione. Il modello ora ha lo stato Richiede revisione.
API
L'esempio seguente mostra come inviare un modello di query per la revisione con un 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 è stata creata la data clean room.LOCATION
: la posizione della data clean room.CLEAN_ROOM_ID
: l'ID della data clean room.QUERY_TEMPLATE_ID
: l'ID del modello di query.
Eliminare un modello di query
Puoi eliminare un modello di query solo se è in stato BOZZA. Se il modello di query è già stato inviato per la revisione, non puoi più eliminarlo.
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina Condivisione (Analytics Hub).
Fai clic sul nome visualizzato della data clean room che contiene il modello di query.
Nella clean room, vai alla scheda Modelli.
Nella riga relativa al modello da eliminare, fai clic su Azioni > Elimina modello.
API
L'esempio seguente mostra come eliminare un modello di query con un 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?queryTemplateId=QUERY_TEMPLATE_ID
Sostituisci quanto segue:
DCR_PROJECT_ID
: l'ID progetto in cui è stata creata la data clean room.LOCATION
: la posizione della data clean room.CLEAN_ROOM_ID
: l'ID della data clean room.QUERY_TEMPLATE_ID
: l'ID del modello di query.
Workflow di approvazione dei modelli
In qualità di approvatore di modelli di query, puoi approvare un modello di query.
Quando un modello di query fa riferimento a dati di cui non sei proprietario (ad esempio, i dati di un altro collaboratore), può essere approvato solo dal proprietario di questi dati. Se stai creando una TVF che fa riferimento solo ai tuoi dati (per la condivisione in una sola direzione), puoi approvare autonomamente il modello di query.
Approvare un modello di query
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina Condivisione (Analytics Hub).
Fai clic sul nome visualizzato della data clean room che contiene il modello di query.
Nella clean room, vai alla scheda Modelli.
Nella riga relativa al modello che richiede la tua revisione, fai clic su Stato approvazione > Richiede revisione.
Fai clic su Approva.
Seleziona la posizione del modello. Questa posizione è quella in cui viene creato il TVF per la condivisione.
Rivedi il modello di query proposto.
Fai clic su Approva se il modello di query è approvato per l'utilizzo all'interno della data clean room.
API
Crea la routine dal modello di query utilizzando una chiamata
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}'
Sostituisci quanto segue:
ROUTINE_PROJECT_ID
: l'ID progetto del progetto in cui è stata creata la routine.ROUTINE_CREATION_QUERY
: la query per creare la routine.
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/tables/ROUTINE_ID"}],},"displayName":"LISTING_NAME"}'
Sostituisci quanto segue:
DCR_PROJECT_ID
: l'ID progetto del progetto in cui è stata creata la data clean room.LOCATION
: la posizione della data clean room.CLEAN_ROOM_ID
: l'ID della data clean room.LISTING_ID
: l'ID scheda.PROJECT_ID
: l'ID progetto del progetto in cui era contenuto 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 della scheda.
Aggiorna lo stato del modello di query a
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 del progetto in cui è stata creata la data clean room.LOCATION
: la posizione della data clean room.CLEAN_ROOM_ID
: l'ID della data clean room.QUERY_TEMPLATE_ID
: l'ID del modello di query.
Rifiutare un modello di query
Nella console Google Cloud , puoi rifiutare un modello di query nei seguenti modi:
- Non approvare la revisione del modello di query inviato.
- Elimina il modello di query per rimuoverlo dalla clean room.
Workflow di iscrizione ai modelli
Un abbonato al modello di query può visualizzare una data clean room e abbonarsi. Se alla data clean room viene aggiunto solo il modello di query, l'iscrizione alla data clean room concede l'accesso solo al TVF corrispondente, non ai dati condivisi sottostanti.
Iscriviti a un modello di query
Seleziona una delle seguenti opzioni:
Console
Per iscriverti a un modello di query, devi iscriverti alla data clean room. L'accesso viene concesso a tutte le schede per le quali l'impostazione Escludi accesso alla scheda dal set di dati collegato è disattivata.
Per abbonarti a un modello di query:
Vai alla pagina BigQuery.
Vai al set di dati collegato che hai creato quando ti sei iscritto alla data clean room.
Apri la routine o la TVF condivisa nel set di dati collegato.
Fai clic su Richiama funzione tabella.
Sostituisci il parametro con l'input accettato, ovvero il nome della tabella o del campo.
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 `myproject.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 è stata creata la data clean room.LOCATION
: la posizione della data clean room.CLEAN_ROOM_ID
: l'ID della data clean room.SUBSCRIBER_PROJECT_ID
: l'ID progetto del progetto abbonato.SUBSCRIPTION
: il nome dell'abbonamento.
Dopo aver eseguito la sottoscrizione al modello di query, puoi eseguire query sulla TVF direttamente sul set di dati collegato:
SELECT * FROM `myproject.dcr_linked_dataset.mytvf`(TABLE myTable);
Scenari di esempio
I modelli di query possono essere utilizzati 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 editore di dati crea un modello di query per verificare che i partner abbonati possano eseguire solo le query definite dall'editore. I creatori dei modelli di query approvano autonomamente i modelli di query, poiché 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 chiamata campaign_analysis
e aggiunge un set di dati denominato my_campaign
con una tabella campaigns
. L'utente A configura un criterio di soglia di aggregazione e
controlli dei metadati per verificare che sia visibile solo lo schema dei metadati e
che gli abbonati non possano accedere ai dati di origine. L'utente A crea quindi un modello di query
definendo una funzione con valori di tabella dalla tabella campaigns
, limitando tutti
gli abbonati del set di dati collegato all'esecuzione della sola TVF.
Ecco la sintassi 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
);
Poiché l'utente A dispone delle autorizzazioni appropriate per la tabella delle campagne con il ruolo Proprietario dati BigQuery, può approvare autonomamente il modello di query immediatamente dopo averlo inviato per la revisione.
Condivisione della collaborazione con più parti
Il proprietario di una clean room invita un collaboratore fidato a proporre query da eseguire sui dati di ciascuno. Entrambe le parti possono proporre in modo sicuro query 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, il modello può essere approvato solo dal proprietario dei dati.
In questo scenario, l'utente A invita l'utente B, che è un collaboratore della data clean room,
nella 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.
Ecco la sintassi 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 e non è proprietario della tabella campaigns
, una volta inviato il modello di query per l'approvazione, solo l'utente A può approvarlo. Per utilizzare il modello di query, l'utente B deve iscriversi alla 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 privato definito nel modello di query. È
utile notare qui che l'utente B non deve aggiungere i propri dati alla data clean room.
L'utente B aggiunge alla data clean room anche un set di dati denominato my_transactions
, che contiene una tabella transactions
e una tabella products
. L'utente B configura i criteri di soglia di aggregazione e i controlli dei metadati per verificare che sia visibile solo lo schema dei metadati e che gli abbonati non possano accedere ai dati di origine.
L'utente A ora può proporre vari modelli di query per unire i propri dati alla tabella delle transazioni visualizzando lo schema dei metadati della tabella. Di seguito sono riportati alcuni 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 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
);
Poiché l'utente A non ha aggiunto e non è proprietario delle tabelle transactions
e products
, una volta inviato il modello di query per l'approvazione, solo l'utente B può
approvarlo. Per utilizzare il modello di query, l'utente A deve abbonarsi alla data clean room
e richiamare la TVF. L'utente A trasmette la propria tabella con un campo denominato user_ID
come parametro della tabella e può eseguire l'SQL per la privacy definito nel
modello di query. È utile notare che l'utente A non deve aggiungere i propri
dati alla data clean room.
Prezzi
Ai collaboratori di dati che utilizzano i modelli di query vengono addebitati solo i costi per l'archiviazione dei dati.
Agli abbonati che utilizzano i modelli di query viene addebitato solo il calcolo (analisi) quando eseguono le query.
Passaggi successivi
- Per saperne di più sulle data clean room, consulta l'articolo Condividere dati sensibili con le data clean room.
- Per saperne di più sugli abbonamenti, vedi Abbonarsi a una data clean room.
- Per scoprire di più sulle TVF, consulta Funzioni di tabella.
- Per scoprire di più sull'uscita dei dati, consulta Opzioni di uscita dei dati (solo set di dati condivisi di BigQuery).