Creare visualizzazioni
Questo documento descrive come creare visualizzazioni in BigQuery.
Puoi creare una vista in BigQuery nei seguenti modi:
- Utilizzando la console Google Cloud.
- Utilizzo del comando
bq mk
dello strumento a riga di comando bq. - Chiamata del metodo dell'API
tables.insert
. - Utilizzo delle librerie client.
- Invio di un'istruzione DDL (Data Definition Language)
CREATE VIEW
.
Visualizza limitazioni
Le visualizzazioni BigQuery sono soggette alle seguenti limitazioni:
- Le visualizzazioni sono di sola lettura. Ad esempio, non puoi eseguire query che inseriscono, aggiornano o eliminano i dati.
- Il set di dati contenente la visualizzazione e il set di dati contenente le tabelle a cui fa riferimento la visualizzazione devono trovarsi nella stessa località.
- Un riferimento all'interno di una vista deve essere qualificato con un set di dati. Il set di dati predefinito non influisce sul corpo di una visualizzazione.
- Non puoi utilizzare il metodo dell'API JSON
TableDataList
per recuperare i dati da una visualizzazione. Per ulteriori informazioni, consulta Tabledata: list. - Non puoi combinare query GoogleSQL e SQL precedente quando utilizzi le viste. Una query GoogleSQL non può fare riferimento a una vista definita utilizzando la sintassi SQL precedente.
- Non puoi fare riferimento ai parametri di query nelle visualizzazioni.
- Gli schemi delle tabelle sottostanti vengono archiviati con la visualizzazione al momento della sua creazione. Se le colonne vengono aggiunte, eliminate o modificate dopo la creazione della vista, la vista non viene aggiornata automaticamente e lo schema riportato rimane impreciso fino a quando la definizione SQL della vista non viene modificata o la vista non viene ricreata. Anche se lo schema segnalato potrebbe essere impreciso, tutte le query inviate producono risultati accurati.
- Non puoi aggiornare automaticamente una vista SQL precedente alla sintassi GoogleSQL. Per modificare la query utilizzata per definire una visualizzazione, puoi utilizzare quanto segue:
- L'opzione Modifica query nella console Google Cloud
- Il comando
bq update --view
nello strumento a riga di comando bq - Le librerie client di BigQuery
- I metodi API update o patch.
- Non puoi includere una funzione definita dall'utente temporanea o una tabella temporanea nella query SQL che definisce una vista.
- Non puoi fare riferimento a una vista in una query della tabella con caratteri jolly.
Per informazioni su quote e limiti che si applicano alle visualizzazioni, consulta Limiti delle visualizzazioni.
Prima di iniziare
Concedi i ruoli IAM (Identity and Access Management) che concedono agli utenti le autorizzazioni necessarie per eseguire ogni attività in questo documento.
Autorizzazioni obbligatorie
Le viste vengono trattate come risorse di tabella in BigQuery, pertanto la creazione di una vista richiede le stesse autorizzazioni necessarie per creare una tabella. Devi inoltre disporre delle autorizzazioni per eseguire query su tutte le tabelle a cui fa riferimento la query SQL della vista.
Per creare una vista, devi disporre dell'bigquery.tables.create
autorizzazione IAM. Il ruolo IAM predefinito roles/bigquery.dataEditor
include le autorizzazioni necessarie per creare una visualizzazione.
Inoltre, se disponi dell'autorizzazione bigquery.datasets.create
, puoi creare visualizzazioni nei set di dati che crei. Per creare una vista per i dati che non possiedi, devi disporre dell'autorizzazione bigquery.tables.getData
per la tabella in questione.
Per ulteriori informazioni sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.
Denominazione delle visualizzazioni
Quando crei una vista in BigQuery, il nome deve essere univoco per ogni set di dati. Il nome della vista può:
- Contenere caratteri per un totale massimo di 1024 byte UTF-8.
- Contengono caratteri Unicode della categoria L (lettera), M (segno), N (numero), Pc (connettore, incluso il trattino basso), Pd (tratto), Zs (spazio). Per ulteriori informazioni, consulta la sezione Categoria generale.
Di seguito sono riportati tutti gli esempi di nomi di visualizzazioni validi:
view 01
, ग्राहक
, 00_お客様
, étudiant-01
.
Limitazioni:
- I nomi delle tabelle sono sensibili alle maiuscole per impostazione predefinita.
mytable
eMyTable
possono coesistere nello stesso set di dati, a meno che non facciano parte di un set di dati con la sensibilità alle maiuscole disattivata. - Alcuni nomi di visualizzazioni e prefissi dei nomi di visualizzazione sono riservati. Se ricevi un messaggio di errore che indica che il nome o il prefisso della vista è riservato, seleziona un nome diverso e riprova.
Se includi più operatori punto (
.
) in una sequenza, gli operatori duplicati vengono rimossi implicitamente.Ad esempio:
project_name....dataset_name..table_name
Diventa:
project_name.dataset_name.table_name
Crea una vista
Puoi creare una vista componendo una query SQL utilizzata per definire i dati accessibili alla vista. La query SQL deve essere costituita da un'istruzione SELECT
.
Altri tipi di istruzioni (ad esempio istruzioni DML) e
query con più istruzioni non sono consentiti
nelle query sulle visualizzazioni.
Per creare una vista:
Console
Dopo aver eseguito una query, fai clic sul pulsante Salva visualizzazione sopra la finestra dei risultati della query per salvarla come visualizzazione.
Nella finestra di dialogo Salva vista:
- In Nome progetto, seleziona un progetto in cui archiviare la visualizzazione.
- Per Nome set di dati, scegli un set di dati in cui archiviare la visualizzazione. Il set di dati contenente la visualizzazione e il set di dati contenente le tabelle a cui fa riferimento la visualizzazione devono trovarsi nella stessa posizione.
- In Nome tabella, inserisci il nome della visualizzazione.
- Fai clic su Salva.
SQL
Utilizza
l'istruzione CREATE VIEW
.
L'esempio seguente crea una visualizzazione denominata usa_male_names
dal set di dati pubblico dei nomi degli Stati Uniti:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
CREATE VIEW mydataset.usa_male_names(name, number) AS ( SELECT name, number FROM
bigquery-public-data.usa_names.usa_1910_current
WHERE gender = 'M' ORDER BY number DESC );Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
bq
Utilizza il comando bq mk
con il flag --view
. Per le query GoogleSQL,
aggiungi il flag --use_legacy_sql
e impostalo su false
. Alcuni parametri facoltativi includono --add_tags
, --expiration
, --description
e --label
. Per un elenco completo dei parametri, consulta la documentazione di riferimento del comando bq mk
.
Se la query fa riferimento a risorse di funzione definita dall'utente dall'utente (UDF) esterne memorizzate in Cloud Storage o in file locali, utilizza il flag --view_udf_resource
per specificarle. Il flag --view_udf_resource
non è mostrato qui. Per ulteriori informazioni sull'utilizzo delle funzioni definite dall'utente, consulta Funzioni definite dall'utente.
Se stai creando una vista in un progetto diverso da quello predefinito,
specifica l'ID progetto utilizzando il flag --project_id
.
bq mk \ --use_legacy_sql=false \ --view_udf_resource=PATH_TO_FILE \ --expiration=INTEGER \ --description="DESCRIPTION" \ --label=KEY_1:VALUE_1 \ --add_tags=KEY_2:VALUE_2[,...] \ --view='QUERY' \ --project_id=PROJECT_ID \ DATASET.VIEW
Sostituisci quanto segue:
PATH_TO_FILE
è l'URI o il percorso del file system locale di un file di codice da caricare e valutare immediatamente come risorsa UDF utilizzata dalla vista. Ripeti il flag per specificare più file.INTEGER
imposta la durata (in secondi) della visualizzazione. SeINTEGER
è0
, la visualizzazione non scade. Se non includi il flag--expiration
, BigQuery crea la vista con la durata predefinita della tabella del set di dati.DESCRIPTION
è una descrizione della vista tra virgolette.KEY_1:VALUE_1
è la coppia chiave-valore che rappresenta un'etichetta. Ripeti il flag--label
per specificare più etichette.KEY_2:VALUE_2
è la coppia chiave-valore che rappresenta un tag. Aggiungi più tag nello stesso flag con virgole tra le coppie chiave:valore.QUERY
è una query valida.PROJECT_ID
è il tuo ID progetto (se non hai configurato un progetto predefinito).DATASET
è un set di dati nel tuo progetto.VIEW
è il nome della visualizzazione che vuoi creare.
Esempi:
Inserisci il seguente comando per creare una visualizzazione denominata myview
in
mydataset
nel tuo progetto predefinito. La data e l'ora di scadenza sono impostate su 3600 secondi (1 ora), la descrizione è impostata su This is my view
e l'etichetta su organization:development
. La query utilizzata per creare la visualizzazione
esegue query sui dati del set di dati pubblico Dati relativi ai nomi USA.
bq mk \
--use_legacy_sql=false \
--expiration 3600 \
--description "This is my view" \
--label organization:development \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
mydataset.myview
Inserisci il seguente comando per creare una vista denominata myview
in
mydataset
in myotherproject
. La descrizione è impostata su This is my view
, l'etichetta su organization:development
e la scadenza della visualizzazione è impostata sulla scadenza della tabella predefinita del set di dati.
La query utilizzata per creare la visualizzazione
esegue query sui dati del set di dati pubblico Dati relativi ai nomi USA.
bq mk \
--use_legacy_sql=false \
--description "This is my view" \
--label organization:development \
--project_id myotherproject \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
mydataset.myview
Una volta creata la vista, puoi aggiornarne la scadenza, la descrizione e le etichette. Per ulteriori informazioni, consulta la sezione Aggiornare le visualizzazioni.
Terraform
Utilizza la risorsa google_bigquery_table
.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Il seguente esempio crea una vista denominata myview
:
Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi farlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione di Terraform deve avere una propria directory (chiamata anche modulo principale).
-
In Cloud Shell, crea una directory e un nuovo
file al suo interno. Il nome file deve avere l'estensione
.tf
, ad esempiomain.tf
. In questo tutorial, il file è denominatomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel
main.tf
appena creato.Se vuoi, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o
aggiornare corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il seguente comando e inserendo
yes
al prompt:terraform apply
Attendi che Terraform mostri il messaggio "Applicazione completata".
- Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
API
Chiama il metodo tables.insert
con una risorsa tabella che contiene una proprietà view
.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Dopo aver creato la vista, esegui query come faresti con una tabella.
Visualizza sicurezza
Per controllare l'accesso alle visualizzazioni in BigQuery, consulta Visualizzazioni autorizzate.
Passaggi successivi
- Per informazioni sulla creazione di una vista autorizzata, consulta Creare viste autorizzate.
- Per informazioni su come recuperare i metadati delle visualizzazioni, consulta Recupero delle informazioni sulle viste.
- Per saperne di più sulla gestione delle visualizzazioni, consulta Gestire le visualizzazioni.