Modifica degli schemi delle tabelle
Questo documento descrive come modificare le definizioni dello schema per e tabelle BigQuery.
Puoi apportare la maggior parte delle modifiche allo schema descritte in questo documento utilizzando SQL Istruzioni DDL (Data Definition Language). Questi estratti conto non comportano alcun addebito.
Puoi modificare uno schema di tabella in tutti i modi descritti in questa pagina: esportare i dati delle tabelle in Cloud Storage e poi caricando i dati in una nuova tabella con la definizione dello schema modificata. I job di caricamento ed esportazione di BigQuery sono ma comportano costi per l'archiviazione dei dati esportati di archiviazione ideale in Cloud Storage. Le seguenti sezioni descrivono altri metodi per eseguire i vari tipi di modifiche allo schema.
Aggiungi una colonna
Puoi aggiungere colonne alla definizione dello schema di una tabella esistente utilizzando una delle seguenti opzioni: le seguenti opzioni:
- Aggiungi una nuova colonna vuota.
- Sovrascrivi una tabella con un job di caricamento o di query.
- Aggiungi dati a una tabella con un job di caricamento o di query.
Qualsiasi colonna aggiunta deve rispettare le regole di BigQuery per nomi delle colonne. Per ulteriori informazioni sulla creazione dei componenti dello schema, consulta l'articolo Specificare uno schema.
Aggiungi una colonna vuota
Se aggiungi nuove colonne a uno schema di tabella esistente, le colonne devono essere
NULLABLE
o REPEATED
. Non puoi aggiungere una colonna REQUIRED
a una colonna esistente
schema della tabella. Aggiunta di una colonna REQUIRED
a una tabella esistente
nell'API o nello strumento a riga di comando bq causa un errore. Tuttavia, puoi creare un
colonna REQUIRED
nidificata come parte di un nuovo campo RECORD
.
Puoi aggiungere REQUIRED
colonne solo quando
crea una tabella durante il caricamento dei dati o quando crei una tabella vuota
definizione dello schema.
Per aggiungere colonne vuote alla definizione dello schema di una tabella:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e il set di dati, quindi seleziona nella tabella.
Nel riquadro dei dettagli, fai clic sulla scheda Schema.
Fai clic su Modifica schema. Potresti dover scorrere per visualizzare questo pulsante.
Nella pagina Schema corrente, in Nuovi campi, fai clic su Aggiungi campo.
- In Nome, digita il nome della colonna.
- In Tipo, scegli il tipo di dati.
- In Modalità:
scegli
NULLABLE
oREPEATED
.
Quando hai finito di aggiungere le colonne, fai clic su Salva.
SQL
Utilizza la
ALTER TABLE ADD COLUMN
Istruzione DDL:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor query, inserisci la seguente istruzione:
ALTER TABLE mydataset.mytable ADD COLUMN new_column STRING;
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire le query, vedi Eseguire una query interattiva.
bq
Esegui il comando bq update
e fornisci un file di schema JSON. Se la tabella
che stai aggiornando si trova in un progetto diverso da quello predefinito, aggiungi
al nome del set di dati nel seguente formato:
PROJECT_ID:DATASET
.
bq update PROJECT_ID:DATASET.TABLE SCHEMA
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.DATASET
: il nome del set di dati che contiene la tabella che stai aggiornando.TABLE
: il nome della tabella che stai aggiornando.SCHEMA
: il percorso del file di schema JSON sul tuo server in una macchina virtuale.
Quando specifichi uno schema in linea, non puoi specificare la colonna
descrizione, modalità e RECORD
(STRUCT
)
di testo. Tutte le modalità delle colonne sono impostate su NULLABLE
per impostazione predefinita. Di conseguenza, se
aggiungendo una nuova colonna nidificata a un RECORD
, devi
fornisci un file di schema JSON.
Se tenti di aggiungere colonne utilizzando una definizione di schema in linea, devi:
fornisce l'intera definizione dello schema, incluse le nuove colonne. Perché
non può specificare le modalità a colonne utilizzando una definizione di schema in linea, l'aggiornamento
cambia qualsiasi colonna REPEATED
esistente in NULLABLE
,
genera il seguente errore: BigQuery error in update
operation: Provided Schema does not match Table
PROJECT_ID:dataset.table. Field field has changed mode
from REPEATED to NULLABLE.
Il metodo preferito per aggiungere colonne a una tabella esistente utilizzando lo strumento a riga di comando bq è per fornire un file di schema JSON.
Per aggiungere colonne vuote allo schema di una tabella utilizzando un file di schema JSON:
Innanzitutto, invia il comando
bq show
con il flag--schema
e scrivi schema di tabella esistente in un file. Se la tabella che stai aggiornando è in una per un progetto diverso da quello predefinito, aggiungi l'ID progetto nome del set di dati nel seguente formato:PROJECT_ID:DATASET
.bq show \ --schema \ --format=prettyjson \ PROJECT_ID:DATASET.TABLE > SCHEMA
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.DATASET
: il nome del set di dati che contiene la tabella che stai aggiornando.TABLE
: il nome della tabella che stai aggiornando.SCHEMA
: il file di definizione dello schema scritto nel tuo dalla macchina locale.
Ad esempio, per scrivere la definizione di schema di
mydataset.mytable
in un inserisci il seguente comando.mydataset.mytable
è in progetto predefinito.bq show \ --schema \ --format=prettyjson \ mydataset.mytable > /tmp/myschema.json
Apri il file di schema in un editor di testo. Lo schema dovrebbe avere l'aspetto seguenti:
[ { "mode": "REQUIRED", "name": "column1", "type": "STRING" }, { "mode": "REQUIRED", "name": "column2", "type": "FLOAT" }, { "mode": "REPEATED", "name": "column3", "type": "STRING" } ]
Aggiungi le nuove colonne alla fine della definizione dello schema. Se tenti per aggiungere nuove colonne altrove nell'array, l'errore seguente è restituito:
BigQuery error in update operation: Precondition Failed
.Con un file JSON puoi specificare descrizioni,
NULLABLE
o modalitàREPEATED
eRECORD
tipi per le nuove colonne. Ad esempio: utilizzando la definizione dello schema del passaggio precedente, il nuovo array JSON sarebbe simile al seguente. In questo esempio, una nuova colonnaNULLABLE
viene aggiunto con il nomecolumn4
.column4
include una descrizione.[ { "mode": "REQUIRED", "name": "column1", "type": "STRING" }, { "mode": "REQUIRED", "name": "column2", "type": "FLOAT" }, { "mode": "REPEATED", "name": "column3", "type": "STRING" }, { "description": "my new column", "mode": "NULLABLE", "name": "column4", "type": "STRING" } ]
Per ulteriori informazioni sull'utilizzo dei file di schema JSON, vedi Specifica di un file di schema JSON.
Dopo aver aggiornato il file di schema, esegui il comando seguente per aggiornare lo schema della tabella. Se la tabella che stai aggiornando si trova in un progetto diverso rispetto al progetto predefinito, aggiungi l'ID progetto al nome del set di dati nella nel seguente formato:
PROJECT_ID:DATASET
.bq update PROJECT_ID:DATASET.TABLE SCHEMA
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.DATASET
: il nome del set di dati che contiene la tabella che stai aggiornando.TABLE
: il nome della tabella che stai aggiornando.SCHEMA
: il file di definizione dello schema scritto nel tuo dalla macchina locale.
Ad esempio, inserisci il comando seguente per aggiornare la definizione dello schema di
mydataset.mytable
nel progetto predefinito. Il percorso dello schema sul computer locale è/tmp/myschema.json
.bq update mydataset.mytable /tmp/myschema.json
API
Chiama il tables.patch
e utilizza la proprietà schema
per aggiungere colonne vuote al tuo schema
definizione di Kubernetes. Perché il metodo tables.update
sostituisce l'intera tabella
risorsa, è preferibile il metodo tables.patch
.
Vai
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Node.js BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Python BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Aggiungi un nuovo SchemaField in una copia di Table.schema e sostituisci il valore del parametro Table.schema con lo schema aggiornato.Aggiungi una colonna nidificata a una colonna RECORD
Oltre ad aggiungere nuove colonne allo schema di una tabella, puoi anche aggiungere nuove
colonne nidificate in una colonna RECORD
. La procedura per aggiungere una nuova colonna nidificata è
in modo simile alla procedura per aggiungere una nuova colonna.
Console
L'aggiunta di un nuovo campo nidificato a una colonna RECORD
esistente non
supportate dalla console Google Cloud.
SQL
Aggiunta di un nuovo campo nidificato a una colonna RECORD
esistente utilizzando un DDL SQL
non è supportata.
bq
Esegui il comando bq update
e fornisci un file di schema JSON che aggiunga il
campo nidificato alla definizione dello schema della colonna RECORD
esistente. Se
che stai aggiornando si trova in un progetto diverso da quello predefinito, aggiungi
l'ID progetto al nome del set di dati nel seguente formato:
PROJECT_ID:DATASET
.
bq update PROJECT_ID:DATASET.TABLE SCHEMA
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.DATASET
: il nome del set di dati che contiene la tabella che stai aggiornando.TABLE
: il nome della tabella che stai aggiornando.SCHEMA
: il percorso del file di schema JSON sul tuo server in una macchina virtuale.
Quando specifichi uno schema in linea, non puoi specificare la colonna
descrizione, modalità e RECORD
(STRUCT
)
di testo. Tutte le modalità delle colonne sono impostate su NULLABLE
per impostazione predefinita. Di conseguenza, se
aggiungendo una nuova colonna nidificata a un RECORD
, devi
fornisci un file di schema JSON.
Per aggiungere una colonna nidificata a un RECORD
utilizzando un file di schema JSON:
Innanzitutto, invia il comando
bq show
con il flag--schema
e scrivi schema di tabella esistente in un file. Se la tabella che stai aggiornando è in una per un progetto diverso da quello predefinito, aggiungi l'ID progetto nome del set di dati nel seguente formato:PROJECT_ID:DATASET.TABLE
.bq show \ --schema \ --format=prettyjson \ PROJECT_ID:DATASET.TABLE > SCHEMA
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.DATASET
: il nome del set di dati che contiene la tabella che stai aggiornando.TABLE
: il nome della tabella che stai aggiornando.SCHEMA
: il file di definizione dello schema scritto nel tuo dalla macchina locale.
Ad esempio, per scrivere la definizione di schema di
mydataset.mytable
in un inserisci il seguente comando.mydataset.mytable
è in progetto predefinito.bq show \ --schema \ --format=prettyjson \ mydataset.mytable > /tmp/myschema.json
Apri il file di schema in un editor di testo. Lo schema dovrebbe avere l'aspetto seguire. In questo esempio,
column3
è una colonna nidificata e ripetuta. La le colonne nidificate sononested1
enested2
. L'arrayfields
elenca i campi nidificati all'interno dicolumn3
.[ { "mode": "REQUIRED", "name": "column1", "type": "STRING" }, { "mode": "REQUIRED", "name": "column2", "type": "FLOAT" }, { "fields": [ { "mode": "NULLABLE", "name": "nested1", "type": "STRING" }, { "mode": "NULLABLE", "name": "nested2", "type": "STRING" } ], "mode": "REPEATED", "name": "column3", "type": "RECORD" } ]
Aggiungi la nuova colonna nidificata alla fine dell'array
fields
. In questo Ad esempio,nested3
è la nuova colonna nidificata.[ { "mode": "REQUIRED", "name": "column1", "type": "STRING" }, { "mode": "REQUIRED", "name": "column2", "type": "FLOAT" }, { "fields": [ { "mode": "NULLABLE", "name": "nested1", "type": "STRING" }, { "mode": "NULLABLE", "name": "nested2", "type": "STRING" }, { "mode": "NULLABLE", "name": "nested3", "type": "STRING" } ], "mode": "REPEATED", "name": "column3", "type": "RECORD" } ]
Per ulteriori informazioni sull'utilizzo dei file di schema JSON, vedi Specifica di un file di schema JSON.
Dopo aver aggiornato il file di schema, esegui il comando seguente per aggiornare lo schema della tabella. Se la tabella che stai aggiornando si trova in un progetto diverso rispetto al progetto predefinito, aggiungi l'ID progetto al nome del set di dati nella seguente formato:
PROJECT_ID:DATASET
.bq update PROJECT_ID:DATASET.TABLE SCHEMA
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.DATASET
: il nome del set di dati che contiene la tabella che stai aggiornando.TABLE
: il nome della tabella che stai aggiornando.SCHEMA
: il percorso del file di schema JSON sul tuo server in una macchina virtuale.
Ad esempio, inserisci il comando seguente per aggiornare la definizione dello schema di
mydataset.mytable
nel progetto predefinito. Il percorso dello schema sul computer locale è/tmp/myschema.json
.bq update mydataset.mytable /tmp/myschema.json
API
Chiama il tables.patch
e utilizza la proprietà schema
per aggiungere le colonne nidificate
definizione dello schema. Poiché il metodo tables.update
sostituisce l'intero
di risorsa tabella, è preferibile il metodo tables.patch
.
Aggiungi colonne quando sovrascrivi o aggiungi dati
Puoi aggiungere nuove colonne a una tabella esistente quando carichi i dati al suo interno e scegli di sovrascrivere la tabella esistente. Quando sovrascrivi una tabella esistente, lo schema dei dati che stai caricando viene utilizzato per sovrascrivere . Per informazioni sulla sovrascrittura di una tabella utilizzando un job di caricamento, consulta il documento per il formato dei dati:
Aggiungi colonne in un job di aggiunta del caricamento
Puoi aggiungere colonne a una tabella quando aggiungi dati alla tabella in un job di caricamento. La Il nuovo schema viene determinato da uno dei seguenti fattori:
- Rilevamento automatico (per file CSV e JSON)
- Uno schema specificato in un file di schema JSON (per i file CSV e JSON)
- I dati di origine autodescrittivi per Avro, ORC, Parquet e File di esportazione Datastore
Se specifichi lo schema in un file JSON, le nuove colonne devono essere definite al suo interno. Se mancano le nuove definizioni di colonna, viene restituito un errore quando provi ad aggiungere dati.
Quando aggiungi nuove colonne durante un'operazione,
i valori nelle nuove colonne sono impostati su NULL
per le righe esistenti.
Per aggiungere una nuova colonna quando aggiungi dati a una tabella durante un job di caricamento, utilizza una delle seguenti opzioni:
bq
Usa il comando bq load
per caricare i dati e specifica --noreplace
per indicare che stai aggiungendo i dati a una tabella esistente.
Se i dati che stai aggiungendo sono in formato CSV o JSON delimitato da nuova riga,
specifica il flag --autodetect
per utilizzare il rilevamento automatico dello schema
oppure fornisci lo schema in un file di schema JSON. Le colonne aggiunte possono essere
dedotti automaticamente dai file di esportazione Avro o Datastore.
Imposta il flag --schema_update_option
su ALLOW_FIELD_ADDITION
per indicare
che i dati aggiunti contengano nuove colonne.
Se la tabella che stai aggiungendo si trova in un set di dati di un progetto diverso da quello
predefinito, aggiungi l'ID progetto al nome del set di dati nel seguente
formato: PROJECT_ID:DATASET
.
(Facoltativo) Fornisci il flag --location
e imposta il valore su
località.
Inserisci il comando load
come segue:
bq --location=LOCATION load \ --noreplace \ --autodetect \ --schema_update_option=ALLOW_FIELD_ADDITION \ --source_format=FORMAT \ PROJECT_ID:DATASET.TABLE \ PATH_TO_SOURCE \ SCHEMA
Sostituisci quanto segue:
LOCATION
: il nome del luogo in cui ti trovi. Il flag--location
è facoltativo. Ad esempio, se utilizzi BigQuery Regione di Tokyo, imposta il valore del flag suasia-northeast1
. Puoi impostare un valore predefinito per la località utilizzando file.bigqueryrc.FORMAT
: il formato dello schema.NEWLINE_DELIMITED_JSON
,CSV
,AVRO
ePARQUET
ORC
oDATASTORE_BACKUP
.PROJECT_ID
: il tuo ID progetto.DATASET
: il nome del set di dati che contiene la tabella.TABLE
: il nome della tabella che stai aggiungendo.PATH_TO_SOURCE
: un URI Cloud Storage completo, un elenco di URI separati da virgole o il percorso di un file di dati sul tuo dalla macchina locale.SCHEMA
: il percorso di un file di schema JSON locale. Un file di schema è obbligatorio solo per i file CSV e JSON quando--autodetect
è non specificato. Gli schemi Avro e Datastore vengono dedotti i dati di origine.
Esempi:
Inserisci il comando seguente per aggiungere un file di dati Avro locale:
/tmp/mydata.avro
, a mydataset.mytable
utilizzando un job di caricamento. Poiché gli schemi
possono essere dedotti automaticamente dai dati Avro che non hai bisogno di utilizzare
il flag --autodetect
. mydataset
è nel tuo progetto predefinito.
bq load \
--noreplace \
--schema_update_option=ALLOW_FIELD_ADDITION \
--source_format=AVRO \
mydataset.mytable \
/tmp/mydata.avro
Inserisci il seguente comando per aggiungere un file di dati JSON delimitato da nuova riga
Cloud Storage in mydataset.mytable
utilizzando un job di caricamento. --autodetect
viene usato per rilevare le nuove colonne. mydataset
è nella tua predefinita
progetto.
bq load \
--noreplace \
--autodetect \
--schema_update_option=ALLOW_FIELD_ADDITION \
--source_format=NEWLINE_DELIMITED_JSON \
mydataset.mytable \
gs://mybucket/mydata.json
Inserisci il seguente comando per aggiungere un file di dati JSON delimitato da nuova riga
Cloud Storage in mydataset.mytable
utilizzando un job di caricamento. Lo schema
che contiene le nuove colonne è specificato in un file di schema JSON locale,
/tmp/myschema.json
. mydataset
si trova in myotherproject
, non è il tuo indirizzo predefinito
progetto.
bq load \
--noreplace \
--schema_update_option=ALLOW_FIELD_ADDITION \
--source_format=NEWLINE_DELIMITED_JSON \
myotherproject:mydataset.mytable \
gs://mybucket/mydata.json \
/tmp/myschema.json
API
Chiama il jobs.insert
. Configura un job load
e imposta le seguenti proprietà:
- Fai riferimento ai tuoi dati in Cloud Storage utilizzando la proprietà
sourceUris
. - Specifica il formato dei dati impostando la proprietà
sourceFormat
. - Specifica lo schema nella proprietà
schema
. - Specifica l'opzione di aggiornamento dello schema utilizzando
schemaUpdateOptions
proprietà. - Imposta l'istruzione di scrittura della tabella di destinazione su
WRITE_APPEND
usando la proprietàwriteDisposition
.
Vai
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Node.js BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Python BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Aggiungi colonne in un job di aggiunta query
Puoi aggiungere colonne a una tabella aggiungendo i risultati della query.
Quando aggiungi colonne utilizzando un'operazione di aggiunta in un job di query, lo schema del i risultati della query vengono utilizzati per aggiornare lo schema della tabella di destinazione. Tieni presente che non puoi eseguire query su una tabella in una posizione e scrivere i risultati in una tabella in un'altra posizione.
Per aggiungere una nuova colonna quando aggiungi dati a una tabella durante un job di query, seleziona una delle seguenti opzioni:
bq
Usa il comando bq query
per eseguire query sui dati e specificare
--destination_table
per indicare la tabella che stai aggiungendo.
Per specificare l'aggiunta dei risultati della query a una destinazione esistente.
specifica il flag --append_table
.
Imposta il flag --schema_update_option
su ALLOW_FIELD_ADDITION
per indicare
che i risultati della query che stai aggiungendo contengano nuove colonne.
Specifica il flag use_legacy_sql=false
per utilizzare la sintassi GoogleSQL per
query.
Se la tabella che stai aggiungendo si trova in un set di dati di un progetto diverso da quello
predefinito, aggiungi l'ID progetto al nome del set di dati nel seguente
formato: PROJECT_ID:DATASET
. Tieni presente che la tabella
su cui esegui la query e la tabella di destinazione deve trovarsi nella stessa località.
(Facoltativo) Fornisci il flag --location
e imposta il valore su
località.
bq --location=LOCATION query \ --destination_table PROJECT_ID:DATASET.TABLE \ --append_table \ --schema_update_option=ALLOW_FIELD_ADDITION \ --use_legacy_sql=false \ 'QUERY'
Sostituisci quanto segue:
LOCATION
: il nome del luogo in cui ti trovi. Il flag--location
è facoltativo. Ad esempio, se utilizzi BigQuery Regione di Tokyo, imposta il valore del flag suasia-northeast1
. Puoi impostare un valore predefinito per la località utilizzando file.bigqueryrc. Tieni presente che non puoi aggiungere i risultati della query a una tabella di un'altra in ogni località.PROJECT_ID
: il tuo ID progetto.dataset
: il nome del set di dati che contiene la tabella che stai aggiungendo.TABLE
: il nome della tabella che stai aggiungendo.QUERY
: una query con la sintassi GoogleSQL.
Esempi:
Inserisci il seguente comando per eseguire una query su mydataset.mytable
nel tuo file predefinito
progetto e di aggiungere i risultati della query a mydataset.mytable2
(anche in
il progetto predefinito).
bq query \
--destination_table mydataset.mytable2 \
--append_table \
--schema_update_option=ALLOW_FIELD_ADDITION \
--use_legacy_sql=false \
'SELECT
column1,column2
FROM
mydataset.mytable'
Inserisci il seguente comando per eseguire una query su mydataset.mytable
nel tuo file predefinito
progetto e di aggiungere i risultati della query a mydataset.mytable2
in
myotherproject
.
bq query \
--destination_table myotherproject:mydataset.mytable2 \
--append_table \
--schema_update_option=ALLOW_FIELD_ADDITION \
--use_legacy_sql=false \
'SELECT
column1,column2
FROM
mydataset.mytable'
API
Chiama il jobs.insert
. Configura un job query
e imposta le seguenti proprietà:
- Specifica la tabella di destinazione utilizzando la proprietà
destinationTable
. - Imposta l'istruzione di scrittura della tabella di destinazione su
WRITE_APPEND
usando la proprietàwriteDisposition
. - Specifica l'opzione di aggiornamento dello schema utilizzando
schemaUpdateOptions
proprietà. - Specifica la query GoogleSQL utilizzando la proprietà
query
.
Vai
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Node.js BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Python BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Modificare il nome di una colonna
Per rinominare una colonna in una tabella, utilizza la classe
ALTER TABLE RENAME COLUMN
Istruzione DDL. L'esempio seguente rinomina la colonna old_name
in new_name
in mytable
:
ALTER TABLE mydataset.mytable
RENAME COLUMN old_name TO new_name;
Per ulteriori informazioni
informazioni sugli estratti conto ALTER TABLE RENAME COLUMN
, consulta
Dettagli DDL.
Modificare il tipo di dati di una colonna
La modifica del tipo di dati di una colonna non è supportata dalla console Google Cloud, a riga di comando bq o l'API BigQuery. Se tenti di aggiornare una tabella applicazione di uno schema che specifica un nuovo tipo di dati per una colonna, viene restituito un errore.
Modificare il tipo di dati di una colonna con un'istruzione DDL
Puoi usare GoogleSQL per apportare determinate modifiche al tipo di dati di un
colonna. Per ulteriori informazioni e un elenco completo dei tipi di dati supportati
conversioni, consulta le
ALTER COLUMN SET DATA TYPE
Istruzione DDL.
L'esempio seguente crea una tabella con una colonna di tipo INT64
, quindi
aggiorna il tipo in NUMERIC
:
CREATE TABLE mydataset.mytable(c1 INT64); ALTER TABLE mydataset.mytable ALTER COLUMN c1 SET DATA TYPE NUMERIC;
L'esempio seguente crea una tabella con una colonna nidificata con due campi e
poi aggiorna il tipo di una delle colonne da INT
a NUMERIC
:
CREATE TABLE mydataset.mytable(s1 STRUCT); ALTER TABLE mydataset.mytable ALTER COLUMN s1 SET DATA TYPE STRUCT;
Trasmetti il tipo di dati di una colonna
Per modificare il tipo di dati di una colonna in un castable, usa una query SQL per selezionare i dati della tabella trasmetti la colonna pertinente e sovrascrivi la tabella. Trasmissione in corso... e la sovrascrittura non è consigliata per tabelle molto grandi perché richiede scansione completa della tabella.
L'esempio seguente mostra una query SQL che seleziona tutti i dati da
column_two
e column_three
in mydataset.mytable
e trasmette column_one
dalle ore DATE
alle ore STRING
. Il risultato della query viene utilizzato per sovrascrivere
. La tabella sovrascritta archivia column_one
come tipo di dati STRING
.
Quando utilizzi CAST
, una query può non riuscire se BigQuery non è in grado di
eseguire la trasmissione. Per maggiori dettagli sulle regole di trasmissione in GoogleSQL, consulta
Trasmissione.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
In Editor di query, inserisci la seguente query per selezionare tutte le query dati da
column_two
ecolumn_three
nel mese dimydataset.mytable
e a trasmetticolumn_one
daDATE
aSTRING
. La query utilizza un alias per trasmetticolumn_one
con lo stesso nome.mydataset.mytable
partecipa il progetto predefinito.SELECT column_two, column_three, CAST(column_one AS STRING) AS column_one FROM mydataset.mytable;
Fai clic su Altro e seleziona Impostazioni query.
Nella sezione Destinazione, segui questi passaggi:
Seleziona Imposta una tabella di destinazione per i risultati della query.
In Nome progetto, lascia il valore impostato sul progetto predefinito. Questo è il progetto che contiene
mydataset.mytable
.In Set di dati, scegli
mydataset
.Nel campo ID tabella, inserisci
mytable
.Per Preferenza di scrittura per la tabella di destinazione, seleziona Sovrascrivi dalla tabella. Questa opzione sovrascrive
mytable
utilizzando i risultati della query.
Se vuoi, scegli la posizione dei dati.
Per aggiornare le impostazioni, fai clic su Salva.
Fai clic su
Esegui.Al termine del job di query, il tipo di dati
column_one
èSTRING
.
bq
Inserisci il seguente comando bq query
per selezionare tutti i dati da
column_two
e column_three
in mydataset.mytable
e trasmettere
column_one
dalle ore DATE
alle ore STRING
. La query utilizza un alias per trasmettere
column_one
con lo stesso nome. mydataset.mytable
è nella tua predefinita
progetto.
I risultati della query vengono scritti in mydataset.mytable
utilizzando
--destination_table
e il flag --replace
viene utilizzato per sovrascrivere
mytable
. Specifica il flag use_legacy_sql=false
da utilizzare
Sintassi GoogleSQL.
Se vuoi, fornisci il flag --location
e imposta il valore sul tuo
località.
bq query \
--destination_table mydataset.mytable \
--replace \
--use_legacy_sql=false \
'SELECT
column_two,
column_three,
CAST(column_one AS STRING) AS column_one
FROM
mydataset.mytable'
API
Per selezionare tutti i dati di column_two
e column_three
in
mydataset.mytable
e per trasmettere column_one
da DATE
a STRING
, chiama
jobs.insert
e configurare un job query
. Facoltativamente, specifica la tua posizione nel
location
nella sezione jobReference
.
La query SQL utilizzata nel job di query sarà SELECT column_two,
column_three, CAST(column_one AS STRING) AS column_one FROM
mydataset.mytable
. La query utilizza un alias per trasmettere column_one
con
con lo stesso nome.
Per sovrascrivere mytable
con i risultati della query, includi mydataset.mytable
nella proprietà configuration.query.destinationTable
e specifica
WRITE_TRUNCATE
nella proprietà configuration.query.writeDisposition
.
Modificare la modalità di una colonna
L'unica modifica supportata che puoi apportare alla modalità di una colonna è
modificandolo da REQUIRED
a NULLABLE
. Modifica della modalità di una colonna da
Da REQUIRED
a NULLABLE
è anche detto riduzione della colonna. Puoi anche rilassarti
quando carichi i dati per sovrascrivere una tabella esistente,
o quando aggiungi dati a una tabella esistente. Non puoi modificare la modalità di una colonna
dalle ore NULLABLE
alle ore REQUIRED
.
Imposta una colonna NULLABLE
in una tabella esistente
Per modificare la modalità di una colonna da REQUIRED
a NULLABLE
, seleziona una delle
le seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e il set di dati, quindi seleziona nella tabella.
Nel riquadro dei dettagli, fai clic sulla scheda Schema.
Fai clic su Modifica schema. Potresti dover scorrere per visualizzare questo pulsante.
Nella pagina Schema attuale, individua il campo da modificare.
Nell'elenco a discesa Modalità per il campo in questione, seleziona
NULLABLE
.Per aggiornare le impostazioni, fai clic su Salva.
SQL
Utilizza la
ALTER COLUMN DROP NOT NULL
Istruzione DDL.
L'esempio seguente modifica la modalità della colonna mycolumn
da
Da REQUIRED
a NULLABLE
:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor query, inserisci la seguente istruzione:
ALTER TABLE mydataset.mytable ALTER COLUMN mycolumn DROP NOT NULL;
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire le query, vedi Eseguire una query interattiva.
bq
Innanzitutto, invia il comando
bq show
con il flag--schema
e scrivi schema di tabella esistente in un file. Se la tabella che stai aggiornando è in una un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nome nel seguente formato:PROJECT_ID:DATASET
.bq show \ --schema \ --format=prettyjson \ PROJECT_ID:DATASET.TABLE > SCHEMA_FILE
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.DATASET
: il nome del set di dati che contiene la tabella che stai aggiornando.TABLE
: il nome della tabella che stai aggiornando.SCHEMA_FILE
: il file di definizione dello schema scritto nel file locale in una macchina virtuale.
Ad esempio, per scrivere la definizione di schema di
mydataset.mytable
in un inserisci il seguente comando.mydataset.mytable
è in progetto predefinito.bq show \ --schema \ --format=prettyjson \ mydataset.mytable > /tmp/myschema.json
Apri il file di schema in un editor di testo. Lo schema dovrebbe avere l'aspetto seguenti:
[ { "mode": "REQUIRED", "name": "column1", "type": "STRING" }, { "mode": "REQUIRED", "name": "column2", "type": "FLOAT" }, { "mode": "REPEATED", "name": "column3", "type": "STRING" } ]
Modifica la modalità di una colonna esistente da
REQUIRED
aNULLABLE
. In questo ad esempio, la modalitàcolumn1
è informale.[ { "mode": "NULLABLE", "name": "column1", "type": "STRING" }, { "mode": "REQUIRED", "name": "column2", "type": "FLOAT" }, { "mode": "REPEATED", "name": "column3", "type": "STRING" } ]
Per ulteriori informazioni sull'utilizzo dei file di schema JSON, vedi Specifica di un file di schema JSON.
Dopo aver aggiornato il file di schema, esegui il comando seguente per aggiornare lo schema della tabella. Se la tabella che stai aggiornando si trova in un progetto diverso da progetto predefinito, aggiungi l'ID progetto al nome del set di dati nella nel seguente formato:
PROJECT_ID:DATASET
.bq update PROJECT_ID:DATASET.TABLE SCHEMA
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto.DATASET
: il nome del set di dati che contiene la tabella che stai aggiornando.TABLE
: il nome della tabella che stai aggiornando.SCHEMA
: il percorso del file di schema JSON sul tuo server in una macchina virtuale.
Ad esempio, inserisci il comando seguente per aggiornare la definizione dello schema di
mydataset.mytable
nel progetto predefinito. Il percorso dello schema sul computer locale è/tmp/myschema.json
.bq update mydataset.mytable /tmp/myschema.json
API
Chiama tables.patch
e
utilizza la proprietà schema
per modificare una colonna REQUIRED
in NULLABLE
in
la definizione dello schema. Poiché il metodo tables.update
sostituisce
l'intera risorsa di tabella, è preferibile il metodo tables.patch
.
Vai
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Node.js BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Python BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Sovrascrivi Table.schema con un elenco di SchemaField di oggetti con la modalità proprietà impostata su'NULLABLE'
Crea una colonna NULLABLE
con un job di caricamento aggiunto
Puoi allentare la modalità di una colonna quando aggiungi dati a una tabella in un job di caricamento. Seleziona una delle seguenti opzioni in base al tipo di file:
- Quando aggiungi dati da file CSV e JSON, allenta la modalità per specificando un file di schema JSON.
- Quando aggiungi dati da file Avro, ORC o Parquet, allenta le colonne in
NULL
nello schema e consentire all'inferenza dello schema di rilevare le colonne rilassate.
Allentare una colonna da REQUIRED
a NULLABLE
quando aggiungi dati a una tabella
durante un job di caricamento, seleziona una delle seguenti opzioni:
Console
Non puoi riattivare la modalità di una colonna utilizzando la console Google Cloud.
bq
Usa il comando bq load
per caricare i dati e specifica --noreplace
per indicare che stai aggiungendo i dati a una tabella esistente.
Se i dati che stai aggiungendo sono in formato CSV o JSON delimitato da nuova riga,
specificare le colonne confortevoli in un file di schema JSON locale o utilizzare il metodo
Flag --autodetect
per utilizzare il rilevamento dello schema
per scoprire colonne confortevoli nei dati di origine.
Le colonne confortevoli possono essere dedotte automaticamente da Avro, ORC e Parquet
. Il rilassamento della colonna non si applica all'esportazione di Datastore
. Le colonne nelle tabelle create caricando l'esportazione Datastore
i file sono sempre NULLABLE
.
Imposta il flag --schema_update_option
su ALLOW_FIELD_RELAXATION
su
indicare che i dati aggiunti contengono colonne flessibili.
Se la tabella che stai aggiungendo si trova in un set di dati di un progetto diverso da quello
predefinito, aggiungi l'ID progetto al nome del set di dati nel seguente
formato: PROJECT_ID:DATASET
.
(Facoltativo) Fornisci il flag --location
e imposta il valore su
località.
Inserisci il comando load
come segue:
bq --location=LOCATION load \ --noreplace \ --schema_update_option=ALLOW_FIELD_RELAXATION \ --source_format=FORMAT \ PROJECT_ID:DATASET.TABLE \ PATH_TO_SOURCE \ SCHEMA
Sostituisci quanto segue:
LOCATION
: il nome del luogo in cui ti trovi. Il flag--location
è facoltativo. Ad esempio, se utilizzi BigQuery Regione di Tokyo, imposta il valore del flag suasia-northeast1
. Puoi impostare un valore predefinito per la località utilizzando file.bigqueryrc.FORMAT
:NEWLINE_DELIMITED_JSON
,CSV
,PARQUET
,ORC
oAVRO
. I fileDATASTORE_BACKUP
non richiedono un rilassamento della colonna. La Le colonne nelle tabelle create dai file di esportazione Datastore sono sempreNULLABLE
.PROJECT_ID
: il tuo ID progetto.dataset è il nome del set di dati che contiene la tabella.
TABLE
: il nome della tabella che stai in aggiunta.PATH_TO_SOURCE
: un URI Cloud Storage completo, un elenco di URI separati da virgole o il percorso di un file di dati sul tuo dalla macchina locale.SCHEMA
: il percorso di un file di schema JSON locale. Questa opzione è e vengono utilizzati solo per i file CSV e JSON. Le colonne confortevoli vengono visualizzate automaticamente dedotti dai file Avro.
Esempi:
Inserisci il comando seguente per aggiungere un file di dati Avro locale:
/tmp/mydata.avro
, a mydataset.mytable
utilizzando un job di caricamento. Da rilassato
possono essere dedotte automaticamente dai dati Avro di cui non è necessario
specificare un file di schema. mydataset
è nel tuo progetto predefinito.
bq load \
--noreplace \
--schema_update_option=ALLOW_FIELD_RELAXATION \
--source_format=AVRO \
mydataset.mytable \
/tmp/mydata.avro
Inserisci il comando seguente per aggiungere dati da un file JSON delimitato da nuova riga
in Cloud Storage in mydataset.mytable
utilizzando un job di caricamento. La
lo schema contenente le colonne relax è inserito in un file di schema JSON locale:
/tmp/myschema.json
. mydataset
è nel tuo progetto predefinito.
bq load \
--noreplace \
--schema_update_option=ALLOW_FIELD_RELAXATION \
--source_format=NEWLINE_DELIMITED_JSON \
mydataset.mytable \
gs://mybucket/mydata.json \
/tmp/myschema.json
Inserisci il seguente comando per aggiungere dati in un file CSV sulla tua rete locale
dalla macchina virtuale a mydataset.mytable
utilizzando un job di caricamento. Il comando utilizza uno schema
rilevamento automatico per scoprire colonne confortevoli nei dati di origine. mydataset
si trova in myotherproject
, non nel tuo progetto predefinito.
bq load \
--noreplace \
--schema_update_option=ALLOW_FIELD_RELAXATION \
--source_format=CSV \
--autodetect \
myotherproject:mydataset.mytable \
mydata.csv
API
Chiama il jobs.insert
. Configura un job load
e imposta le seguenti proprietà:
- Fai riferimento ai tuoi dati in Cloud Storage utilizzando la proprietà
sourceUris
. - Specifica il formato dei dati impostando la proprietà
sourceFormat
. - Specifica lo schema nella proprietà
schema
. - Specifica l'opzione di aggiornamento dello schema utilizzando
schemaUpdateOptions
proprietà. - Imposta l'istruzione di scrittura della tabella di destinazione su
WRITE_APPEND
usando la proprietàwriteDisposition
.
Vai
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Node.js BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Python BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Imposta tutte le colonne come NULLABLE
con un job di aggiunta
Puoi allentare tutte le colonne di una tabella aggiungendovi i risultati della query. Tu
puoi allentare tutti i campi obbligatori nella tabella di destinazione impostando il parametro
--schema_update_option
flag per ALLOW_FIELD_RELAXATION
. Non puoi rilassarti
le singole colonne di una tabella di destinazione con l'aggiunta di query. Per rilassarsi
singole colonne con un job di aggiunta di caricamento, consulta
Crea una colonna NULLABLE
con un job di aggiunta.
Per rilassare tutte le colonne quando aggiungi i risultati della query a una tabella di destinazione, seleziona una delle seguenti opzioni:
Console
Non puoi riattivare la modalità di una colonna utilizzando la console Google Cloud.
bq
Usa il comando bq query
per eseguire query sui dati e specificare
--destination_table
per indicare la tabella che stai aggiungendo.
Per specificare l'aggiunta dei risultati della query a una destinazione esistente.
specifica il flag --append_table
.
Imposta il flag --schema_update_option
su ALLOW_FIELD_RELAXATION
su
indica che tutte le REQUIRED
colonne nella tabella che stai aggiungendo devono essere
modificato in NULLABLE
.
Specifica il flag use_legacy_sql=false
per utilizzare la sintassi GoogleSQL per
query.
Se la tabella che stai aggiungendo si trova in un set di dati di un progetto diverso da quello
predefinito, aggiungi l'ID progetto al nome del set di dati nel seguente
formato: PROJECT_ID:DATASET
.
(Facoltativo) Fornisci il flag --location
e imposta il valore su
località.
bq --location=LOCATION query \ --destination_table PROJECT_ID:DATASET.TABLE \ --append_table \ --schema_update_option=ALLOW_FIELD_RELAXATION \ --use_legacy_sql=false \ 'QUERY'
Sostituisci quanto segue:
LOCATION
: il nome del luogo in cui ti trovi. Il flag--location
è facoltativo. Ad esempio, se utilizzi BigQuery Regione di Tokyo, imposta il valore del flag suasia-northeast1
. Puoi impostare un valore predefinito per la località utilizzando file.bigqueryrc.PROJECT_ID
: il tuo ID progetto.DATASET
: il nome del set di dati che contiene la tabella che stai aggiungendo.TABLE
: il nome della tabella che stai aggiungendo.QUERY
: una query con la sintassi GoogleSQL.
Esempi:
Inserisci la seguente query di comando mydataset.mytable
nel file predefinito
per aggiungere i risultati della query a mydataset.mytable2
(anche in
il progetto predefinito). Il comando modifica tutte le REQUIRED
colonne in
tabella di destinazione su NULLABLE
.
bq query \
--destination_table mydataset.mytable2 \
--append_table \
--schema_update_option=ALLOW_FIELD_RELAXATION \
--use_legacy_sql=false \
'SELECT
column1,column2
FROM
mydataset.mytable'
Inserisci la seguente query di comando mydataset.mytable
nel file predefinito
progetto e di aggiungere i risultati della query a mydataset.mytable2
in
myotherproject
. Il comando modifica tutte le REQUIRED
colonne in
tabella di destinazione su NULLABLE
.
bq query \
--destination_table myotherproject:mydataset.mytable2 \
--append_table \
--schema_update_option=ALLOW_FIELD_RELAXATION \
--use_legacy_sql=false \
'SELECT
column1,column2
FROM
mydataset.mytable'
API
Chiama il jobs.insert
. Configura un job query
e imposta le seguenti proprietà:
- Specifica la tabella di destinazione utilizzando la proprietà
destinationTable
. - Imposta l'istruzione di scrittura della tabella di destinazione su
WRITE_APPEND
usando la proprietàwriteDisposition
. - Specifica l'opzione di aggiornamento dello schema utilizzando
schemaUpdateOptions
proprietà. - Specifica la query GoogleSQL utilizzando la proprietà
query
.
Vai
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Python BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Modificare il valore predefinito di una colonna
Per modificare il valore predefinito di una colonna, seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e il set di dati, quindi seleziona nella tabella.
Nel riquadro dei dettagli, fai clic sulla scheda Schema.
Fai clic su Modifica schema. Potresti dover scorrere per visualizzare questo pulsante.
Nella pagina Schema attuale, individua il campo di primo livello che ti interessa. per cambiare.
Inserisci il valore predefinito per il campo in questione.
Fai clic su Salva.
SQL
Utilizza la
ALTER COLUMN SET DEFAULT
Istruzione DDL.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor query, inserisci la seguente istruzione:
ALTER TABLE mydataset.mytable ALTER COLUMN column_name SET DEFAULT default_expression;
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire le query, vedi Eseguire una query interattiva.
Elimina una colonna
Puoi eliminare una colonna da una tabella esistente utilizzando il metodo
ALTER TABLE DROP COLUMN
Istruzione DDL.
La dichiarazione non libera immediatamente lo spazio di archiviazione associato
nella colonna eliminata. Per ulteriori informazioni sull'impatto sullo spazio di archiviazione quando rilasci un
colonna relativa allo spazio di archiviazione, consulta l'istruzione ALTER TABLE DROP COLUMN
dettagli.
Esistono due opzioni per recuperare immediatamente spazio di archiviazione:
- Sovrascrivi una tabella con una query
SELECT * EXCEPT
. - Esportare i dati in Cloud Storage, eliminare le colonne indesiderate e caricare i dati in una nuova tabella con lo schema corretto.