Ottimizzare lo spazio di archiviazione in BigQuery

Questa pagina fornisce le best practice per ottimizzare lo spazio di archiviazione di BigQuery. BigQuery archivia i dati in formato a colonne. I database orientati alle colonne sono ottimizzati per i carichi di lavoro di analisi che aggregano i dati su un numero molto elevato di record. Poiché le colonne hanno in genere più ridondanza delle righe, questa caratteristica consente una maggiore compressione dei dati utilizzando tecniche come la codifica della lunghezza di esecuzione. Per saperne di più su come BigQuery immagazzina i dati, consulta Panoramica dello spazio di archiviazione BigQuery. L'ottimizzazione dello spazio di archiviazione BigQuery migliora le prestazioni delle query e controlla i costi.

BigQuery fornisce dettagli sul consumo di spazio di archiviazione delle tue risorse. Per visualizzare i metadati dello spazio di archiviazione delle tabelle, esegui query sulle seguenti viste INFORMATION_SCHEMA:

Dati della tabella cluster

Best practice:crea tabelle in cluster.

Per ottimizzare lo spazio di archiviazione per le query, inizia raggruppando i dati delle tabelle. Raggruppando in cluster le colonne utilizzate di frequente, puoi ridurre il volume totale di dati sottoposti a scansione dalla query. Per informazioni su come creare cluster, consulta Creare e utilizzare tabelle in cluster.

Dati della tabella partizionata

Best practice:suddividi le tabelle di grandi dimensioni con le partizioni.

Con le partizioni, puoi raggruppare e ordinare i dati in base a un insieme di caratteristiche di colonna definite, ad esempio una colonna di dati interi, una colonna di unità di tempo o la data di importazione. Il partizionamento migliora le prestazioni delle query e controlla i costi riducendo il numero di byte letti da una query.

Per ulteriori informazioni sulle partizioni, consulta Introduzione alle tabelle partizionate.

Utilizzare le impostazioni di scadenza della tabella e della partizione

Best practice:per ottimizzare lo spazio di archiviazione, configura le impostazioni predefinite per la scadenza dei set di dati, delle tabelle e delle tabelle partizionate.

Puoi controllare i costi di archiviazione e ottimizzare l'utilizzo dello spazio di archiviazione impostando la scadenza predefinita della tabella per le tabelle appena create in un set di dati. Quando una tabella scade, viene eliminata insieme a tutti i dati in essa contenuti. Se imposti la proprietà al momento della creazione del set di dati, tutte le tabelle create nel set di dati vengono eliminate al termine del periodo di scadenza. Se imposti la proprietà dopo la creazione del set di dati, solo le nuove tabelle vengono eliminate dopo il periodo di scadenza.

Ad esempio, se imposti la scadenza predefinita della tabella su sette giorni, i dati precedenti vengono eliminati automaticamente dopo una settimana.

Questa opzione è utile se devi accedere solo ai dati più recenti. È anche utile se stai conducendo esperimenti sui dati e non devi conservarli.

Se le tabelle sono partizionate per data, la scadenza predefinita della tabella del set di dati si applica alle singole partizioni. Puoi anche controllare la scadenza della partizione utilizzando il flag time_partitioning_expiration nello strumento a riga di comando bq o l'impostazione di configurazione expirationMs nell'API. Quando una partizione scade, i dati al suo interno vengono eliminati, ma la tabella partizionata non viene eliminata anche se è vuota. Ad esempio, il seguente comando fa scadere le partizioni dopo tre giorni:

bq mk \
--time_partitioning_type=DAY \
--time_partitioning_expiration=259200 \
project_id:dataset.table

Utilizzare lo spazio di archiviazione a lungo termine di BigQuery

Best practice:utilizza l'archiviazione a lungo termine di BigQuery per ridurre i costi dei dati meno recenti.

Quando carichi i dati nello spazio di archiviazione BigQuery, questi sono soggetti ai prezzi di archiviazione di BigQuery. Anziché esportare i dati precedenti in un'altra opzione di archiviazione (ad esempio Cloud Storage), puoi usufruire dei prezzi per l'archiviazione a lungo termine di BigQuery.

Se una tabella non viene modificata per 90 giorni consecutivi, il relativo prezzo di archiviazione si riduce automaticamente del 50%. Se hai una tabella partizionata, ogni partizione viene considerata separatamente per l'idoneità ai prezzi a lungo termine, in base alle stesse regole delle tabelle non partizionate.

Configura il modello di fatturazione dello spazio di archiviazione

Best practice:ottimizza il modello di fatturazione dello spazio di archiviazione in base ai tuoi modelli di utilizzo.

BigQuery supporta la fatturazione dello spazio di archiviazione utilizzando byte logici (non compressi) o fisici (compressi) o una combinazione di entrambi. Il modello di fatturazione dello spazio di archiviazione configurato per ogni set di dati determina i prezzi dello spazio di archiviazione, ma non incide sul rendimento delle query.

Puoi utilizzare le visualizzazioni INFORMATION_SCHEMA per determinare il modello di fatturazione dello spazio di archiviazione più adatto in base ai tuoi pattern di utilizzo.

Identifica i dati a lungo o breve termine

Best practice:identifica se i dati a livello di riga devono essere archiviati a lungo termine e archivia solo i dati aggregati a lungo termine.

In molti casi, i dettagli contenuti nei dati transazionali o a livello di riga sono utili sul breve termine, ma vengono utilizzati meno nel lungo termine. In queste situazioni, puoi creare query di aggregazione per calcolare e memorizzare le metriche associate a questi dati, quindi utilizzare la scadenza della tabella o della partizione per rimuovere sistematicamente i dati a livello di riga. In questo modo, riduci gli addebiti per lo spazio di archiviazione mantenendo disponibili le metriche per il consumo a lungo termine.

Ridurre la finestra di spostamento nel tempo

Best practice:in base alle tue esigenze, puoi ridurre la finestra di viaggio nel tempo.

La riduzione della finestra di viaggio nel tempo dal valore predefinito di 7 giorni riduce il periodo di conservazione dei dati eliminati o modificati in una tabella. Ti viene addebitato lo spazio di archiviazione di Time-Travel solo se utilizzi il modello di fatturazione dello spazio di archiviazione fisico (compresso).

La finestra di spostamento nel tempo viene impostata a livello di set di dati.

Archiviare i dati in Cloud Storage

Best practice:valuta la possibilità di archiviare i dati in Cloud Storage.

Puoi spostare i dati da BigQuery a Cloud Storage in base alle esigenze aziendali di archiviazione. Come best practice, valuta i prezzi a lungo termine di BigQuery prima di esportare i dati da BigQuery.

Passaggi successivi