Carica i dati nelle tabelle partizionate
BigQuery ti consente di caricare dati in batch o scrivere i risultati delle query direttamente in un segmento specifico di una tabella partizionata senza influire sulle altre partizioni. Il targeting di singole partizioni ti aiuta a eseguire il backfill dei record storici, ad allineare le partizioni in base all'ora di importazione con i fusi orari locali e a migliorare le prestazioni di scrittura.
Scrivi i dati in una partizione specifica
Puoi caricare i dati in una partizione specifica utilizzando il comando bq load con un decoratore di partizione. L'esempio seguente aggiunge 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 creati originariamente.
Puoi utilizzare questa tecnica anche per adattare i fusi orari. Per impostazione predefinita, le partizioni per ora di importazione si basano sul fuso orario UTC. Se vuoi che l'ora della partizione corrisponda a un fuso orario specifico, puoi utilizzare i decoratori di partizione 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 alle 23:30 PST nella partizione per quella data utilizzando il decoratore di partizione esplicito corrispondente, $2016050123. Se non utilizzassi questo decoratore esplicito, il caricamento avverrebbe in $2016050207 (2 maggio, 07:00 UTC).
Per le tabelle partizionate per colonna di unità di tempo e per intervallo di numeri interi, l'ID partizione specificato nel decoratore deve corrispondere ai dati scritti. Ad esempio, se la tabella è partizionata in base a una colonna DATE, l'elemento decorativo 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 una singola partizione, specificare l'elemento decorativo della partizione può 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 saperne di più sui flag di questi comandi, consulta bq load
e bq query.
Per saperne di più sul caricamento dei dati, consulta Introduzione al caricamento dei dati in BigQuery.
Trasmetti i dati in flussi alle tabelle partizionate
Per informazioni sull'inserimento in streaming dei dati in una tabella partizionata con l'API BigQuery Storage Write (gRPC), consulta Inserisci in streaming nelle tabelle partizionate.
Passaggi successivi
Per scoprire di più sull'utilizzo delle tabelle partizionate, consulta:
- Crea tabelle partizionate
- Gestisci le tabelle partizionate
- Esecuzione di query su tabelle partizionate