Gestione dei dati delle tabelle partizionate

Questo documento descrive come gestire i dati delle tabelle partizionate in BigQuery.

Decoratori per pareti divisorie

I decoratori di partizionamento ti consentono di fare riferimento a una partizione di una tabella. Ad esempio, puoi utilizzarle per scrivere dati in una partizione specifica.

Un decorator di partizione ha la forma table_name$partition_id, in cui il formato del segmento partition_id dipende dal tipo di partizionamento:

Tipo di partizionamento Formatta Esempio
Ogni ora yyyymmddhh my_table$2021071205
Ogni giorno yyyymmdd my_table$20210712
Ogni mese yyyymm my_table$202107
Ogni anno yyyy my_table$2021
Intervallo di numeri interi range_start my_table$40

Sfoglia i dati in una partizione

Per sfogliare i dati in una partizione specificata, utilizza il comando bq head con un decorator di partizione.

Ad esempio, il seguente comando elenca tutti i campi nelle prime 10 righe di my_dataset.my_table nella partizione 24/02/2018:

    bq head --max_rows=10 'my_dataset.my_tablee$20180224'

Scrivi i dati in una partizione specifica

Puoi caricare i dati in una partizione specifica utilizzando il comando bq load con un decorator di partizione. L'esempio seguente scrive i dati nella 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 sono stati creati.

Puoi utilizzare questa tecnica anche per regolare i fusi orari. Per impostazione predefinita, le partizioni dei tempi di importazione si basano sull'ora UTC. Se vuoi che l'ora della partizione corrisponda a un particolare fuso orario, puoi utilizzare le decorazioni delle partizioni per compensare l'ora di importazione UTC. Ad esempio, se utilizzi il 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 in colonne di unità di tempo e intervallo intero, l'ID partizione specificato nel decorator deve corrispondere ai dati scritti. Ad esempio, se la tabella è partizionata in 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 tuoi dati si trovano in un'unica partizione, specificare il decorator della partizione può migliorare le prestazioni di scrittura.

Per ulteriori informazioni sul caricamento dei dati, consulta Introduzione al caricamento dei dati in BigQuery.

Trasmetti i dati in tabelle partizionate

Per informazioni sullo streaming dei dati in una tabella partizionata utilizzando il metodo tabledata.insertAll, consulta Streaming in tabelle partizionate.

Esporta dati tabella

L'esportazione di tutti i dati da una tabella partizionata funziona come l'esportazione dei dati da una tabella non partizionata. Per ulteriori informazioni, consulta Esportare i dati delle tabelle.

Per esportare i dati da una singola partizione, aggiungi il decorator della partizione al nome della tabella. Ad esempio, my_table$20160201.

Puoi anche esportare i dati dalle partizioni __NULL__ e __UNPARTITIONED__ aggiungendo i nomi delle partizioni al nome della tabella. Ad esempio, my_table$__NULL__ o my_table$__UNPARTITIONED__.

Sicurezza delle tabelle partizionate

Il controllo dell'accesso per le tabelle partizionate è lo stesso per le tabelle standard. Per saperne di più, consulta Introduzione ai controlli dell'accesso alle tabelle.

Passaggi successivi

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