Carica i dati in 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 decorator della partizione. Nell'esempio seguente vengono aggiunti dati alla partizione 20160501
(1° maggio 2016) di una tabella esistente, supponendo che la tabella sia già partizionata 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 fase di importazione, puoi utilizzare questa tecnica per caricare i dati meno recenti nella partizione corrispondente al momento in cui i dati sono stati originariamente creati.
Puoi utilizzare questa tecnica anche per regolare i fusi orari. Per impostazione predefinita, le partizioni
per data di importazione si basano sull'ora UTC. Se vuoi che la data e l'ora di partizione corrisponda a un determinato fuso orario, puoi utilizzare i decoratori della partizione per compensare l'ora di importazione UTC. Ad esempio, se il tuo fuso orario è PST (Pacific Standard Time), puoi caricare i dati generati il 1° maggio 2016 PST nella partizione per quella data utilizzando il decorator della partizione corrispondente, $20160501
.
Per le tabelle partizionate con colonne di unità di tempo e con intervallo di numeri interi, l'ID partizione specificato nel decorator deve corrispondere ai dati scritti. Ad esempio, se
la tabella è partizionata su 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, specificare il decorator della partizione può migliorare le prestazioni di scrittura.
Nell'esempio precedente vengono aggiunti dati a una partizione. Per sovrascrivere i dati in una partizione, devi includere flag diversi per ciascun 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.
Trasmetti il flusso di dati in tabelle partizionate
Per informazioni sull'inserimento di flussi di dati in una tabella partizionata con l'API BigQuery Storage Write, consulta Partizionamento delle colonne per 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 su tabelle partizionate