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:
- Creazione di tabelle partizionate
- Gestione delle tabelle partizionate
- Eseguire query su tabelle partizionate