Creazione di set di dati
Questo documento descrive come creare set di dati in BigQuery.
Puoi creare set di dati nei seguenti modi:
- Utilizzo della console Google Cloud.
- Utilizzo di una query SQL.
- Utilizzo del comando
bq mk
nello strumento a riga di comando bq. - Chiamata al metodo API
datasets.insert
. - Utilizzo delle librerie client.
- Copia di un set di dati esistente.
Per visualizzare la procedura per copiare un set di dati, anche tra regioni, consulta Copia dei set di dati.
Per scoprire come eseguire query sulle tabelle in un set di dati pubblico, vedi Eseguire query su un set di dati pubblico con la console Google Cloud.
Limitazioni del set di dati
I set di dati BigQuery sono soggetti alle seguenti limitazioni:
- La località del set di dati può essere impostata solo al momento della creazione. Una volta creato un set di dati, la sua posizione non può essere modificata.
Tutte le tabelle a cui viene fatto riferimento in una query devono essere archiviate in set di dati nella stessa località.
Quando copi una tabella, i set di dati contenenti la tabella di origine e quella di destinazione devono trovarsi nella stessa località.
I nomi dei set di dati devono essere univoci per ogni progetto.
Prima di iniziare
Concedi i ruoli IAM (Identity and Access Management) che concedono agli utenti le autorizzazioni necessarie per eseguire ogni attività nel documento.
Autorizzazioni obbligatorie
Per creare un set di dati, devi disporre dell'autorizzazione IAM bigquery.datasets.create
.
Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per creare un set di dati:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.user
roles/bigquery.admin
Per ulteriori informazioni sui ruoli IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.
Assegna un nome ai set di dati
Quando crei un set di dati in BigQuery, il nome del set di dati deve essere univoco per ogni progetto. Il nome del set di dati può contenere quanto segue:
- Massimo 1024 caratteri.
- Lettere (maiuscole o minuscole), numeri e trattini bassi.
Per impostazione predefinita, i nomi dei set di dati sono sensibili alle maiuscole. mydataset
e MyDataset
possono
coesistere nello stesso progetto, a meno che per uno di questi non sia disattivata la
sensibilità alle maiuscole.
I nomi dei set di dati non possono contenere spazi o caratteri speciali, come -
, &
, @
o %
.
Set di dati nascosti
Un set di dati nascosto è un set di dati il cui nome inizia con un trattino basso. Puoi eseguire query su tabelle e viste in set di dati nascosti come faresti in qualsiasi altro set di dati. I set di dati nascosti hanno le seguenti restrizioni:
- ma non sono visibili nel riquadro Explorer nella console Google Cloud.
- Non compaiono in nessuna vista
INFORMATION_SCHEMA
. - Non possono essere utilizzate con set di dati collegati.
- Non vengono visualizzati in Data Catalog.
Creazione di set di dati
Per creare un set di dati:
Console
Apri la pagina BigQuery nella console Google Cloud.
Nel riquadro Explorer, seleziona il progetto in cui vuoi creare il set di dati.
Espandi l'opzione
Azioni e fai clic su Crea set di dati.Nella pagina Crea set di dati:
- In ID set di dati, inserisci un nome univoco del set di dati.
In Tipo di località, scegli una località geografica per il set di dati. Dopo aver creato un set di dati, la località non può essere modificata.
(Facoltativo) Se vuoi che le tabelle in questo set di dati scadano, seleziona Abilita scadenza della tabella , quindi specifica l'età massima predefinita delle tabelle in giorni.
(Facoltativo) Se vuoi utilizzare una chiave di crittografia gestita dal cliente (CMEK), espandi Opzioni avanzate, quindi seleziona Chiave di crittografia gestita dal cliente (CMEK).
(Facoltativo) Se vuoi utilizzare nomi delle tabelle senza distinzione tra maiuscole e minuscole, espandi Opzioni avanzate e poi seleziona Abilita nomi di tabelle senza distinzione tra maiuscole e minuscole.
(Facoltativo) Se vuoi utilizzare regole di confronto predefinite, espandi Opzioni avanzate, seleziona Attiva regole di confronto predefinite, quindi seleziona le confrontazioni predefinite da utilizzare.
(Facoltativo) Se vuoi utilizzare una modalità di arrotondamento predefinita, espandi Opzioni avanzate, quindi seleziona la Modalità di arrotondamento predefinita da utilizzare.
(Facoltativo) Se vuoi abilitare il modello di fatturazione dell'archiviazione fisica, espandi Opzioni avanzate, quindi seleziona Abilita modello di fatturazione dello spazio di archiviazione fisico.
Quando modifichi il modello di fatturazione di un set di dati, sono necessarie 24 ore prima che la modifica abbia effetto.
Dopo aver modificato il modello di fatturazione dello spazio di archiviazione di un set di dati, devi attendere 14 giorni prima di poter modificare di nuovo il modello di fatturazione dello spazio di archiviazione.
(Facoltativo) Se vuoi impostare la finestra di spostamento cronologico del set di dati, espandi Opzioni avanzate, poi seleziona la finestra di spostamento cronologico da utilizzare.
Fai clic su Crea set di dati.
SQL
Utilizza l'istruzione CREATE SCHEMA
.
Per creare un set di dati in un progetto diverso da quello predefinito, aggiungi l'ID progetto all'ID del set di dati nel seguente formato: PROJECT_ID.DATASET_ID
.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'Editor query, inserisci la seguente istruzione:
CREATE SCHEMA PROJECT_ID.DATASET_ID OPTIONS ( default_kms_key_name = 'KMS_KEY_NAME', default_partition_expiration_days = PARTITION_EXPIRATION, default_table_expiration_days = TABLE_EXPIRATION, description = 'DESCRIPTION', labels = [('LABEL_1','VALUE_1'),('LABEL_2','VALUE_2')], location = 'LOCATION', max_time_travel_hours = HOURS, storage_billing_model = BILLING_MODEL);
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoDATASET_ID
: l'ID del set di dati che stai creandoKMS_KEY_NAME
: il nome della chiave predefinita di Cloud Key Management Service utilizzata per proteggere le tabelle appena create in questo set di dati, a meno che non venga fornita una chiave diversa al momento della creazione. Non puoi creare una tabella criptata da Google in un set di dati con questo set di parametri.PARTITION_EXPIRATION
: la durata predefinita (in giorni) per le partizioni nelle tabelle partizionate appena create. La scadenza predefinita della partizione non ha un valore minimo. La data e l'ora di scadenza corrispondono alla data della partizione più il valore intero. Qualsiasi partizione creata in una tabella partizionata nel set di dati viene eliminataPARTITION_EXPIRATION
giorni dopo la data della partizione. Se fornisci l'opzionetime_partitioning_expiration
quando crei o aggiorni una tabella partizionata, la scadenza della partizione a livello di tabella ha la precedenza su quella predefinita a livello di set di dati.TABLE_EXPIRATION
: la durata predefinita (in giorni) per le tabelle appena create. Il valore minimo è 0,042 giorni (un'ora). La scadenza restituisce l'ora attuale più il valore intero. Qualsiasi tabella creata nel set di dati viene eliminataTABLE_EXPIRATION
giorni dopo la data di creazione. Questo valore viene applicato se non imposti una scadenza per la creazione della tabella.DESCRIPTION
: una descrizione del set di datiLABEL_1:VALUE_1
: la coppia chiave-valore che vuoi impostare come prima etichetta in questo set di datiLABEL_2:VALUE_2
: la coppia chiave-valore che vuoi impostare come seconda etichettaLOCATION
: la posizione del set di dati. Una volta creato un set di dati, la località non può essere modificata.HOURS
: la durata in ore della finestra di spostamento cronologico del nuovo set di dati. Il valoreHOURS
deve essere un numero intero espresso in multipli di 24 (48, 72, 96, 120, 144, 168) compresi tra 48 (2 giorni) e 168 (7 giorni). Se questa opzione non è specificata, il valore predefinito è 168 ore.BILLING_MODEL
: imposta il modello di fatturazione dello spazio di archiviazione per il set di dati. Imposta il valoreBILLING_MODEL
suPHYSICAL
per utilizzare i byte fisici per il calcolo dei costi di archiviazione o suLOGICAL
per utilizzare i byte logici.LOGICAL
è l'impostazione predefinita.Quando modifichi il modello di fatturazione di un set di dati, sono necessarie 24 ore prima che la modifica abbia effetto.
Dopo aver modificato il modello di fatturazione dello spazio di archiviazione di un set di dati, devi attendere 14 giorni prima di poter modificare di nuovo il modello di fatturazione dello spazio di archiviazione.
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
bq
Per creare un nuovo set di dati, utilizza il comando bq mk
con il flag --location
.
Per creare un set di dati in un progetto diverso da quello predefinito, aggiungi l'ID progetto al nome del set di dati nel seguente formato: PROJECT_ID:DATASET_ID
.
bq --location=LOCATION mk \ --dataset \ --default_kms_key=KMS_KEY_NAME \ --default_partition_expiration=PARTITION_EXPIRATION \ --default_table_expiration=TABLE_EXPIRATION \ --description="DESCRIPTION" \ --label=LABEL_1:VALUE_1 \ --label=LABEL_2:VALUE_2 \ --max_time_travel_hours=HOURS \ --storage_billing_model=BILLING_MODEL \ PROJECT_ID:DATASET_ID
Sostituisci quanto segue:
LOCATION
: la posizione del set di dati. Una volta creato un set di dati, la località non può essere modificata. Puoi impostare un valore predefinito per la località utilizzando il file.bigqueryrc
.KMS_KEY_NAME
: il nome della chiave predefinita di Cloud Key Management Service utilizzata per proteggere le tabelle appena create in questo set di dati, a meno che non venga fornita una chiave diversa al momento della creazione. Non puoi creare una tabella criptata da Google in un set di dati con questo set di parametri.PARTITION_EXPIRATION
: la durata predefinita (in secondi) per le partizioni nelle tabelle partizionate appena create. La scadenza predefinita della partizione non ha un valore minimo. La scadenza restituisce la data della partizione più il valore intero. Qualsiasi partizione creata in una tabella partizionata nel set di dati viene eliminataPARTITION_EXPIRATION
secondi dopo la data della partizione. Se fornisci il flag--time_partitioning_expiration
quando crei o aggiorni una tabella partizionata, la scadenza della partizione a livello di tabella ha la precedenza su quella predefinita a livello di set di dati.TABLE_EXPIRATION
: la durata predefinita (in secondi) per le tabelle create di recente. Il valore minimo è 3600 secondi (un'ora). La scadenza restituisce l'ora corrente più il valore intero. Qualsiasi tabella creata nel set di dati viene eliminataTABLE_EXPIRATION
secondi dopo l'ora di creazione. Questo valore viene applicato se non imposti una scadenza per la creazione della tabella.DESCRIPTION
: una descrizione del set di datiLABEL_1:VALUE_1
: la coppia chiave-valore che vuoi impostare come prima etichetta in questo set di dati eLABEL_2:VALUE_2
è la coppia chiave-valore che vuoi impostare come seconda etichetta.HOURS
: la durata in ore della finestra di spostamento cronologico del nuovo set di dati. Il valoreHOURS
deve essere un numero intero espresso in multipli di 24 (48, 72, 96, 120, 144, 168) tra 48 (2 giorni) e 168 (7 giorni). 168 ore è il valore predefinito, se questa opzione non è specificata.BILLING_MODEL
: imposta il modello di fatturazione dell'archiviazione per il set di dati. Imposta il valoreBILLING_MODEL
suPHYSICAL
per utilizzare i byte fisici per il calcolo dei costi di archiviazione o suLOGICAL
per utilizzare i byte logici.LOGICAL
è l'impostazione predefinita.Quando modifichi il modello di fatturazione di un set di dati, sono necessarie 24 ore prima che la modifica abbia effetto.
Dopo aver modificato il modello di fatturazione dello spazio di archiviazione di un set di dati, devi attendere 14 giorni prima di poter modificare di nuovo il modello di fatturazione dello spazio di archiviazione.
PROJECT_ID
: il tuo ID progetto.DATASET_ID
è l'ID del set di dati che stai creando.
Ad esempio, il seguente comando crea un set di dati denominato mydataset
con la posizione dei dati impostata su US
, una scadenza predefinita della tabella di 3600 secondi (1 ora) e una descrizione di This is my dataset
. Anziché usare il flag --dataset
, il comando
usa la scorciatoia -d
. Se ometti -d
e --dataset
, il comando
per impostazione predefinita crea un set di dati.
bq --location=US mk -d \ --default_table_expiration 3600 \ --description "This is my dataset." \ mydataset
Per confermare che il set di dati sia stato creato, inserisci il comando bq ls
. Puoi anche creare una tabella quando crei un nuovo set di dati utilizzando il seguente formato: bq mk -t dataset.table
.
Per saperne di più sulla creazione delle tabelle, consulta la sezione Creazione di una tabella.
Terraform
Utilizza la risorsa google_bigquery_dataset
.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Crea un set di dati
L'esempio seguente crea un set di dati denominato mydataset
:
Quando crei un set di dati utilizzando la risorsa google_bigquery_dataset
, l'accesso al set di dati viene concesso automaticamente a tutti gli account che sono membri dei ruoli di base a livello di progetto.
Se esegui il comando terraform show
dopo aver creato il set di dati, il blocco access
per il set di dati sarà simile al seguente:
Per concedere l'accesso al set di dati, ti consigliamo di utilizzare una delle risorse google_bigquery_iam
, come mostrato nell'esempio seguente, a meno che tu non preveda di creare oggetti autorizzati, come le viste autorizzate, all'interno del set di dati.
In tal caso, utilizza la risorsa google_bigquery_dataset_access
. Fai riferimento alla documentazione per gli esempi.
Crea un set di dati e concedi l'accesso
L'esempio seguente crea un set di dati denominato mydataset
, quindi utilizza la risorsa google_bigquery_dataset_iam_policy
per concedergli l'accesso.
Creare un set di dati con una chiave di crittografia gestita dal cliente
L'esempio seguente crea un set di dati denominato mydataset
e utilizza anche le risorse
google_kms_crypto_key
e
google_kms_key_ring
per specificare una chiave Cloud Key Management Service per il set di dati. Prima di eseguire questo esempio devi abilitare l'API Cloud Key Management Service.
Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle sezioni seguenti.
prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito a cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Se imposti valori espliciti nel file di configurazione Terraform, le variabili di ambiente vengono sostituite.
Prepara la directory
Ogni file di configurazione Terraform deve avere una propria directory (detta anche modulo principale).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome del file deve avere l'estensione
.tf
, ad esempiomain.tf
. In questo tutorial, il file è indicato comemain.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 file
main.tf
appena creato.Se vuoi, copia il codice da GitHub. Questa opzione è consigliata se 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
Facoltativamente, 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 creerà o aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione Terraform eseguendo il comando seguente e inserendo
yes
al prompt:terraform apply
Attendi finché Terraform non visualizza il messaggio "Applicazione completata".
- Apri il 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 datasets.insert
con una risorsa del set di dati definita.
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery C#.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery PHP.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Ruby.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Sicurezza del set di dati
Per controllare l'accesso ai set di dati in BigQuery, consulta Controllo dell'accesso ai set di dati. Per informazioni sulla crittografia dei dati, vedi Crittografia at-rest.
Passaggi successivi
- Per ulteriori informazioni su come elencare i set di dati in un progetto, consulta Elenco dei set di dati.
- Per maggiori informazioni sui metadati del set di dati, consulta Ottenere informazioni sui set di dati.
- Per ulteriori informazioni sulla modifica delle proprietà del set di dati, consulta Aggiornare i set di dati.
- Per saperne di più sulla creazione e la gestione delle etichette, consulta Creazione e gestione delle etichette.
Provalo
Se non hai mai utilizzato Google Cloud, crea un account per valutare le prestazioni di BigQuery in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
Prova BigQuery gratuitamente