Caricare i dati nelle tabelle partizionate
Questo documento descrive come caricare i dati in tabelle partizionate.
Scrivere i dati in una partizione specifica
Puoi caricare i dati in una partizione specifica utilizzando il comando
bq load
con un
decoratore della partizione. L'esempio seguente aggiunge dati in 20160501
(maggio
1, 2016) di una tabella esistente, supponendo che la tabella sia già
partizionate per data:
bq load --source_format=CSV 'my_dataset.my_table$20160501' data.csv
Puoi anche scrivere i risultati di una query in una partizione specifica:
bq query \ --use_legacy_sql=false \ --destination_table='my_table$20160501' \ --append_table=true \ 'SELECT * FROM my_dataset.another_table'
Con il partizionamento in base all'ora di importazione, puoi utilizzare questa tecnica per caricare i dati meno recenti nella partizione corrispondente all'ora in cui sono stati creati originalmente.
Puoi utilizzare questa tecnica anche per regolare i fusi orari. Per impostazione predefinita,
le partizioni temporali sono basate sull'ora UTC. Se vuoi che l'ora della partizione corrisponda a un
determinato fuso orario, puoi utilizzare i decoratori della partizione per compensare l'ora di importazione
in UTC. Ad esempio, se utilizzi il fuso orario PST (Pacific Standard Time), puoi caricare i dati generati il 1° maggio 2016 PST nella partizione relativa a quella data utilizzando il decoratore della partizione corrispondente, $20160501
.
Per le tabelle partizionate con colonne di unità di tempo e intervalli interi, l'ID partizione
specificato nel decorator deve corrispondere ai dati scritti. Ad esempio, se
la tabella è partizionata in base a una colonna DATE
, il decorator deve corrispondere al valore
in quella colonna. In caso contrario, si verifica un errore. Tuttavia, se sai in anticipo che
i dati si trovano in un'unica partizione, specificando il decorator della partizione
migliorare le prestazioni di scrittura.
L'esempio precedente aggiunge dati a una partizione. Per sovrascrivere i dati in una
partizione, devi includere flag diversi per ogni comando, ovvero
bq load --replace=true ...
e bq query --append_table=false ...
.
Per maggiori informazioni sui flag in questi comandi, vedi bq load
e bq query
.
Per ulteriori informazioni sul caricamento dei dati, consulta Introduzione al caricamento dei dati in BigQuery.
Inserire dati in streaming in tabelle partizionate
Per informazioni su come inserire flussi di dati in una tabella partizionata con l'API BigQuery Storage Write, consulta Partizione delle colonne in base alle unità di tempo.
Passaggi successivi
Per saperne di più sull'utilizzo delle tabelle partizionate, consulta:
- Creazione di tabelle partizionate
- Gestione delle tabelle partizionate
- Esecuzione di query sulle tabelle partizionate