Creazione di set di dati
Questo documento descrive come creare set di dati in BigQuery.
Puoi creare set di dati nei seguenti modi:
- Utilizzare la console Google Cloud.
- usando una query SQL.
- Utilizzare il comando
bq mk
nello strumento a riga di comandobq
. - Chiamata al metodo API
datasets.insert
. - Usare le librerie client.
- Copiare un set di dati esistente.
Per conoscere la procedura di copia di un set di dati, incluse le regioni, consulta Copia di set di dati.
Per scoprire di più sulle query in un set di dati pubblico, consulta Eseguire una query su un set di dati pubblico con la console Google Cloud.
Limitazioni per i 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 nei set di dati nella stessa località.
Quando copi una tabella, i set di dati che contengono la tabella di origine e la tabella di destinazione devono risiedere nella stessa posizione.
I nomi dei set di dati devono essere univoci per ogni progetto.
Prima di iniziare
Concedi i ruoli IAM (Identity and Access Management) che forniscono agli utenti le autorizzazioni necessarie per eseguire ciascuna attività in questo 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 Autorizzazioni e ruoli predefiniti.
Assegna un nome ai set di dati
Quando crei un set di dati in BigQuery, il nome deve essere univoco per ogni progetto. Il nome del set di dati può contenere:
- Può includere un massimo di 1024 caratteri.
Lettere (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 una di queste non abbia sensibile alle maiuscole.
I nomi dei set di dati non possono contenere spazi o caratteri speciali come -
, &
, @
o %
.
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 per il set di dati.
In Tipo di località, scegli una località geografica per il set di dati. Una volta creato un set di dati, la località non può essere modificata.
In Scadenza tabella predefinita, scegli una delle seguenti opzioni:
- Mai: (impostazione predefinita) le tabelle create nel set di dati non vengono mai eliminate automaticamente. Devi eliminarli manualmente.
Numero di giorni dopo la creazione della tabella: questo valore determina il momento in cui viene eliminata una tabella appena creata nel set di dati. Questo valore viene applicato se non imposti una scadenza per la tabella quando questa viene creata.
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 = STORAGE_BILLING_MODEL);
Sostituisci quanto segue:
PROJECT_ID
: l'ID del tuo 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 nuove tabelle 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
: il ciclo di vita predefinito (in giorni) per le partizioni nelle tabelle partizionate appena create. La scadenza predefinita delle partizioni non ha un valore minimo. La scadenza corrisponde 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 sulla scadenza della partizione predefinita a livello di set di dati.TABLE_EXPIRATION
: la durata predefinita (in giorni) delle tabelle appena create. Il valore minimo è 0,042 giorni (un'ora). La data di scadenza valuta il valore dell'ora attuale più il valore intero. Qualsiasi tabella creata nel set di dati viene eliminataTABLE_EXPIRATION
giorni dopo la data/ora di creazione. Questo valore viene applicato se non imposti una scadenza per la tabella quando crei la 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 del periodo di tempo per il nuovo set di dati. La possibilità di configurare la finestra temporale è in anteprima. Il campohours
deve essere un multiplo di 24 tra 48 e 168. Se non specificato, il valore predefinito è 168.STORAGE_BILLING_MODEL
: imposta questa opzione suphysical
per utilizzare i byte fisici anziché i byte logici durante il calcolo delle spese di archiviazione di questo set di dati. Se imposti il modello di fatturazione dello spazio di archiviazione per un set di dati in modo che utilizzi i byte fisici, non puoi modificarlo in modo che utilizzi byte logici. La possibilità di impostare il modello di fatturazione dello spazio di archiviazione è disponibile in anteprima.
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Esecuzione di query interattive.
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 di Cloud Key Management Service predefinito utilizzato per proteggere le nuove tabelle 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) delle partizioni nelle tabelle partizionate appena create. La scadenza predefinita della partizione non ha un valore minimo. La data di scadenza valuta 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 sulla scadenza della partizione predefinita a livello di set di dati.TABLE_EXPIRATION
: il ciclo di vita predefinito (in secondi) per le nuove tabelle create. Il valore minimo è 3600 secondi (un'ora). L'ora di scadenza viene valutata all'ora corrente più il valore intero. Qualsiasi tabella creata nel set di dati viene eliminataTABLE_EXPIRATION
secondi dopo la data/ora di creazione. Questo valore viene applicato se non imposti una scadenza per la tabella quando crei la 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 del periodo di tempo per il nuovo set di dati. La possibilità di configurare la finestra temporale è in anteprima. Il campoHOURS
deve essere un multiplo di 24 tra 48 e 168. Se non specificato, il valore predefinito è 168.BILLING_MODEL
: il modello di fatturazione dello spazio di archiviazione per il set di dati. La possibilità di impostare il modello di fatturazione dello spazio di archiviazione è in anteprima. Imposta questo valore del flag suLOGICAL
per utilizzare i byte logici per la fatturazione dello spazio di archiviazione o suPHYSICAL
per utilizzare i byte fisici.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 località dei dati impostata su US
, scadenza tabella predefinita di 3600 secondi (1 ora) e descrizione di This is my dataset
. Anziché utilizzare il flag --dataset
, il comando utilizza la scorciatoia -d
. Se ometti -d
e --dataset
, il comando
crea per impostazione predefinita la creazione di 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
. Inoltre, puoi creare una tabella quando crei un nuovo set di dati utilizzando il seguente formato: bq mk -t dataset.table
.
Per ulteriori informazioni sulla creazione delle tabelle, consulta Creazione di una tabella.
Terraform
Utilizza la risorsa google_bigquery_dataset
.
Crea un set di dati
Nell'esempio seguente viene creato un set di dati denominato mydataset
:
Quando crei un set di dati utilizzando la risorsa google_bigquery_dataset
, questo concede automaticamente l'accesso al set di dati a tutti gli account che sono membri di 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 è 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 non prevedi di creare oggetti autorizzati, come le visualizzazioni autorizzate, all'interno del set di dati.
In questo caso, utilizza la risorsa google_bigquery_dataset_access
. Fai riferimento a questa documentazione per consultare degli 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 di Cloud Key Management Service per il set di dati. Devi
abilitare l'API Cloud Key Management Service prima di eseguire questo esempio.
Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle sezioni seguenti.
Preparare Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito a cui vuoi applicare le tue configurazioni Terraform.
Questo comando deve essere eseguito una sola volta per progetto e può essere eseguito 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 Terraform deve avere una propria directory (nota anche come modulo root).
-
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 viene denominatomain.tf
il file.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se segui un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nella proprietà
main.tf
appena creata.In via facoltativa, copia il codice da GitHub. Questo metodo è consigliato 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. Dovrai 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 aggiorni corrispondano alle tue aspettative:
terraform plan
Apporta le modifiche 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 "Applica completato".
- Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle tue risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
API
Chiama il metodo datasets.insert
con una risorsa di set di dati definita.
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida di BigQuery che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento per le API C#BigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento per le API GoBigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento per le API JavaBigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento per le API Node.jsBigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida di BigQuery che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento per le API PHPBigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento per le API PythonBigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida di BigQuery che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento per le API RubyBigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Sicurezza dei 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 sull'elenco dei set di dati in un progetto, consulta la pagina Elenco dei set di dati.
- Per ulteriori informazioni sui metadati dei set di dati, consulta la pagina Ottenere informazioni sui set di dati.
- Per ulteriori informazioni sulla modifica delle proprietà del set di dati, consulta Aggiornamento dei set di dati.
- Per ulteriori informazioni 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