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 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 fase di importazione, puoi utilizzare questa tecnica per caricare dati meno recenti nella partizione che corrisponde al momento in cui i dati erano originariamente è stato creato.

Puoi utilizzare questa tecnica anche per regolare i fusi orari. Per impostazione predefinita, le partizioni temporali sono basate sull'ora UTC. Se vuoi che il tempo di partizione corrisponda a un fuso orario specifico, puoi usare i decoratori delle partizioni per applicare l'offset UTC in fase di importazione. Ad esempio, se ti trovi nel fuso orario PST (Pacific Standard Time), puoi caricare i dati generati il 1° maggio 2016 PST nella partizione per quella data usando il decorator 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 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 un devi includere flag diversi per ciascun comando, ovvero bq load --replace=true ... e bq query --append_table=false .... Per saperne di più 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.

Inserimento di flussi di dati in tabelle partizionate

Per informazioni sull'inserimento di flussi di dati in una tabella partizionata con API BigQuery StorageWrite, consulta Partizionamento delle colonne delle unità di tempo.

Passaggi successivi

Per saperne di più sull'utilizzo delle tabelle partizionate, consulta: