In questo tutorial creerai una vista autorizzata in BigQuery, che i tuoi analisti di dati possono utilizzare per analizzare i risultati delle query senza dover accedere ai dati di origine sottostanti.
Per farlo, crea la vista autorizzata da una query SQL che limita le colonne che gli analisti di dati possono visualizzare nei risultati della query.
Obiettivi
- Crea un set di dati che contenga i dati di origine.
- Esegui una query per caricare i dati in una tabella di destinazione nel set di dati di origine.
- Crea un set di dati che contenga la vista autorizzata.
- Crea una vista autorizzata da una query SQL che limita le colonne che gli analisti di dati possono visualizzare nei risultati della query.
- Concedi ai tuoi analisti di dati l'autorizzazione per eseguire job di query.
- Concedi ai tuoi analisti di dati l'accesso al set di dati che contiene la vista autorizzata.
- Concedi l'accesso in visualizzazione al set di dati di origine.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.
Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per saperne di più, consulta Esegui la pulizia.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .
Abilita l'API BigQuery, se non è già abilitata.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.- Assicurati di disporre delle autorizzazioni necessarie per eseguire le attività descritte in questo documento.
Crea un set di dati per archiviare i dati di origine
Per prima cosa, crea un set di dati in cui archiviare i dati di origine.
Per creare il set di dati di origine, scegli una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro sinistro per aprirlo.
Nel riquadro Explorer, accanto al progetto in cui vuoi creare il set di dati, fai clic su Visualizza azioni > Crea set di dati.
Nella pagina Crea set di dati, segui questi passaggi:
In ID set di dati, inserisci
github_source_data.In Tipo di località, verifica che sia selezionata l'opzione Multiregione.
Per Multiregione, scegli Stati Uniti o UE. Tutte le risorse che crei in questo tutorial devono trovarsi nella stessa località multiregionale.
Fai clic su Crea set di dati.
SQL
Utilizza l'istruzione DDL CREATE SCHEMA:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
CREATE SCHEMA github_source_data;
Fai clic su Esegui.
Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Crea una tabella e carica i dati di origine
Dopo aver creato il set di dati di origine, compila una tabella al suo interno salvando i risultati di una query SQL in una tabella di destinazione. La query recupera i dati dal set di dati pubblico di GitHub.
Console
Vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente query:
SELECT commit, author, committer, repo_name FROM `bigquery-public-data.github_repos.commits` LIMIT 1000;Fai clic su Modifica > Impostazioni query.
In Destinazione, seleziona Imposta una tabella di destinazione per i risultati della query.
In Set di dati, inserisci
PROJECT_ID.github_source_data.Sostituisci
PROJECT_IDcon l'ID progetto.In ID tabella, inserisci
github_contributors.Fai clic su Salva.
Fai clic su Esegui.
Al termine della query, nel riquadro Explorer, fai clic su Set di dati, quindi sul set di dati
github_source_data.Fai clic su Panoramica > Tabelle, quindi fai clic sulla tabella
github_contributors.Per verificare che i dati siano stati scritti nella tabella, fai clic sulla scheda Anteprima.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Crea un set di dati per archiviare la vista autorizzata
Dopo aver creato il set di dati di origine, crei un nuovo set di dati separato per archiviare la vista autorizzata che condividi con i tuoi analisti di dati. In un passaggio successivo, concedi alla vista autorizzata l'accesso in visualizzazione ai dati nel set di dati di origine. I tuoi analisti di dati hanno quindi accesso alla vista autorizzata, ma non accesso diretto ai dati di origine.
Le viste autorizzate devono essere create in un set di dati diverso da quello dei dati di origine. In questo modo, i proprietari dei dati possono concedere agli utenti l'accesso alla vista autorizzata senza concedere contemporaneamente l'accesso ai dati sottostanti. Il set di dati di origine e il set di dati della vista autorizzata devono trovarsi nella stessa località regionale.
Per creare un set di dati in cui archiviare la vista, scegli una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, seleziona il progetto in cui vuoi creare il set di dati.
Espandi l'opzione Visualizza azioni e fai clic su Crea set di dati.
Nella pagina Crea set di dati, segui questi passaggi:
In ID set di dati, inserisci
shared_views.In Tipo di località, verifica che sia selezionata l'opzione Multiregione.
Per Multiregione, scegli Stati Uniti o UE. Tutte le risorse che crei in questo tutorial devono trovarsi nella stessa località multiregionale.
Fai clic su Crea set di dati.
SQL
Utilizza l'istruzione DDL CREATE SCHEMA:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
CREATE SCHEMA shared_views;
Fai clic su Esegui.
Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Crea la vista autorizzata nel nuovo set di dati
Nel nuovo set di dati, crea la vista che vuoi autorizzare. Questa è la vista che condividi con i tuoi analisti di dati. Questa visualizzazione viene creata utilizzando una query SQL che esclude le colonne che non vuoi che gli analisti di dati vedano.
La tabella di origine github_contributors contiene due campi di tipo RECORD:
author e committer. Per questo tutorial, la vista autorizzata esclude tutti i dati dell'autore, ad eccezione del nome, e tutti i dati del committer, ad eccezione del nome.
Per creare la vista nel nuovo set di dati, scegli una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nell'editor di query, inserisci la query seguente.
SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
Sostituisci
PROJECT_IDcon l'ID progetto.Fai clic su File > Salva > Salva visualizzazione.
Nella finestra di dialogo Salva visualizzazione, procedi nel seguente modo:
In Progetto, verifica che il progetto sia selezionato.
In Set di dati, inserisci
shared_views.In Tabella, inserisci
github_analyst_view.Fai clic su Salva.
SQL
Utilizza l'istruzione DDL CREATE VIEW:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
CREATE VIEW shared_views.github_analyst_view AS ( SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors` );
Sostituisci
PROJECT_IDcon l'ID progetto.Fai clic su Esegui.
Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Concedi ai tuoi analisti di dati l'autorizzazione per eseguire job di query
Per eseguire query sulla vista, gli analisti di dati devono disporre dell'autorizzazione bigquery.jobs.create per poter eseguire job di query. Questa autorizzazione è richiesta solo nel progetto in cui viene eseguito il job di query (il progetto di fatturazione o di esecuzione), che può essere diverso dal progetto che contiene la vista.
In questa sezione, concedi il ruolo bigquery.user agli analisti di dati nel progetto che utilizzano per eseguire i job. Il ruolo bigquery.user include l'autorizzazione bigquery.jobs.create. In un passaggio successivo, concederai ai tuoi analisti di dati l'autorizzazione ad accedere alla vista.
Per assegnare al gruppo di analisti di dati il ruolo bigquery.user nel progetto che utilizzano per eseguire i job, segui questi passaggi:
Nella console Google Cloud vai alla pagina IAM.
Assicurati che il progetto utilizzato dagli analisti per eseguire i job sia selezionato nel selettore dei progetti.
Fai clic su Concedi l'accesso.
Nella finestra di dialogo Concedi l'accesso a, segui questi passaggi:
Nel campo Nuove entità, inserisci il gruppo che contiene i tuoi analisti di dati. Ad esempio,
data_analysts@example.com.Nel campo Seleziona un ruolo, cerca il ruolo Utente BigQuery e selezionalo.
Fai clic su Salva.
Concedi agli analisti di dati l'autorizzazione per eseguire query sulla vista autorizzata
Per consentire agli analisti di dati di eseguire query sulla vista, devi concedere loro il ruolo bigquery.dataViewer a livello di set di dati o di vista.
La concessione di questo ruolo a livello di set di dati consente agli analisti di accedere a tutte le tabelle e le viste del set di dati. Poiché il set di dati creato in questo tutorial contiene una singola vista autorizzata, concedi l'accesso a livello di set di dati. Se hai una raccolta di viste autorizzate a cui devi concedere l'accesso, valuta la possibilità di utilizzare un set di dati autorizzato.
Il ruolo bigquery.user che hai concesso in precedenza agli analisti di dati fornisce loro le autorizzazioni necessarie per creare job di query nel progetto in cui vengono eseguiti i job di query. Tuttavia, non possono eseguire correttamente query sulla vista a meno che non dispongano anche dell'accesso bigquery.dataViewer alla vista autorizzata o al set di dati che la contiene.
Per concedere ai tuoi analisti di dati l'accesso bigquery.dataViewer al set di dati che contiene la vista autorizzata, segui questi passaggi:
Console
Vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, fai clic su Set di dati, quindi seleziona il set di dati
shared_viewsper aprire la scheda Dettagli.Fai clic su Condivisione > Autorizzazioni.
Nel riquadro Autorizzazioni di condivisione, fai clic su Aggiungi entità.
In Nuove entità, inserisci il gruppo che contiene i tuoi analisti di dati, ad esempio
data_analysts@example.com.Fai clic su Seleziona un ruolo e seleziona BigQuery > Visualizzatore dati BigQuery.
Fai clic su Salva.
Fai clic su Chiudi.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Autorizza la vista ad accedere al set di dati di origine
Dopo aver creato i controlli degli accessi per il set di dati che contiene la vista autorizzata, concedi alla vista autorizzata l'accesso al set di dati di origine. Questa autorizzazione consente alla vista, ma non al gruppo di analisti di dati, di accedere ai dati di origine.
Per concedere alla vista autorizzata l'accesso in visualizzazione ai dati di origine, scegli una di queste opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, fai clic su Set di dati, quindi seleziona il set di dati
github_source_dataper aprire la scheda Dettagli.Fai clic su Condivisione > Autorizza visualizzazioni.
Nel riquadro Viste autorizzate, in Vista autorizzata inserisci
PROJECT_ID.shared_views.github_analyst_view.Sostituisci PROJECT_ID con l'ID progetto.
Fai clic su Aggiungi autorizzazione.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Verificare la configurazione
Una volta completata la configurazione, un membro del gruppo di analisti di dati (ad esempio, data_analysts) può verificare la configurazione eseguendo una query sulla vista.
Per verificare la configurazione, un data analyst deve eseguire la seguente query:
Vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
SELECT * FROM `
PROJECT_ID.shared_views.github_analyst_view`;Sostituisci
PROJECT_IDcon l'ID progetto.Fai clic su Esegui.
I risultati della query sono simili ai seguenti. Nei risultati sono visibili solo il nome dell'autore e il nome del committer.
Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.
Codice sorgente completo
Ecco il codice sorgente completo del tutorial come riferimento.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Esegui la pulizia
Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
Console
- Nella console Google Cloud , vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.
gcloud
Elimina un progetto Google Cloud :
gcloud projects delete PROJECT_ID
Elimina singole risorse
In alternativa, per rimuovere le singole risorse utilizzate in questo tutorial, segui questi passaggi:
Elimina il set di dati che contiene la vista autorizzata.
Elimina la tabella nel set di dati di origine.
Poiché hai creato le risorse utilizzate in questo tutorial, non sono necessarie autorizzazioni aggiuntive per eliminarle.
Passaggi successivi
- Per scoprire di più sui controlli dell'accesso in BigQuery, consulta Ruoli e autorizzazioni IAM di BigQuery.
- Per scoprire di più sulle viste di BigQuery, consulta Introduzione alle viste logiche.
- Per scoprire di più sulle viste autorizzate, consulta Viste autorizzate.
- Per scoprire i concetti di base sul controllo dell'accesso, consulta la panoramica di IAM.
- Per scoprire come gestire il controllo dell'accesso, consulta Gestione delle policy.