Panoramica dello spazio di archiviazione BigQuery
Questa pagina descrive il componente di archiviazione di BigQuery.
Lo spazio di archiviazione BigQuery è ottimizzato per l'esecuzione di query analitiche su set di dati di grandi dimensioni. Supporta anche l'importazione di flussi di dati ad alta velocità effettiva e letture ad alta velocità effettiva. Comprendere l'archiviazione BigQuery può aiutarti a ottimizzare i carichi di lavoro.
Panoramica
Una delle caratteristiche principali dell'architettura di BigQuery è la separazione tra archiviazione e computing. Ciò consente a BigQuery di scalare archiviazione e computing in modo indipendente, in base alla domanda.
Quando esegui una query, il motore di query distribuisce il lavoro in parallelo su più worker, che scansionano le tabelle pertinenti nello spazio di archiviazione, elaborano la query e poi raccolgono i risultati. BigQuery esegue le query completamente in memoria, utilizzando una rete a livello di petabit per garantire che i dati si spostino molto rapidamente ai nodi di lavoro.
Ecco alcune funzionalità chiave dello spazio di archiviazione BigQuery:
Gestito. BigQuery Storage è un servizio completamente gestito. Non è necessario eseguire il provisioning delle risorse di archiviazione né prenotare unità di spazio di archiviazione. BigQuery alloca automaticamente lo spazio di archiviazione quando carichi i dati nel sistema. Paghi solo la quantità di spazio di archiviazione che utilizzi. Il modello di prezzi di BigQuery addebita separatamente i costi di computing e spazio di archiviazione. Per informazioni dettagliate sui prezzi, consulta la pagina Prezzi di BigQuery.
Durable. Lo spazio di archiviazione BigQuery è progettato per una durabilità annuale del 99,999999999% (11 nove). BigQuery replica i tuoi dati in più zone di disponibilità per proteggerli dalla perdita di dati dovuta a guasti a livello di macchina o di zona. Per saperne di più, consulta Affidabilità: pianificazione del recupero di emergenza.
Criptato. BigQuery cripta automaticamente tutti i dati prima che vengano scritti su disco. Puoi fornire la tua chiave di crittografia o lasciare che Google la gestisca. Per saperne di più, consulta Crittografia at-rest.
Efficiente. L'archiviazione BigQuery utilizza un formato di codifica efficiente ottimizzato per i carichi di lavoro analitici. Se vuoi saperne di più sul formato di archiviazione di BigQuery, consulta il post del blog Inside Capacitor, BigQuery's next-generation columnar storage format.
Dati tabella
La maggior parte dei dati archiviati in BigQuery sono dati tabellari. I dati delle tabelle includono tabelle standard, cloni di tabelle, istantanee di tabelle e viste materializzate. Ti viene addebitato lo spazio di archiviazione che utilizzi per queste risorse. Per maggiori informazioni, consulta la pagina Prezzi dell'archiviazione.
Le tabelle standard contengono dati strutturati. Ogni tabella ha uno schema e ogni colonna dello schema ha un tipo di dati. BigQuery archivia i dati in formato colonnare. Consulta la sezione Layout di archiviazione in questo documento.
I cloni di tabelle sono copie leggere e scrivibili delle tabelle standard. BigQuery archivia solo la differenza tra un clone di una tabella e la relativa tabella di base.
Gli snapshot delle tabelle sono copie delle tabelle in un momento specifico. Gli snapshot delle tabelle sono di sola lettura, ma puoi ripristinare una tabella da uno snapshot della tabella. BigQuery archivia solo la differenza tra uno snapshot di una tabella e la relativa tabella di base.
Le viste materializzate sono viste precalcolate che memorizzano periodicamente nella cache i risultati della query della vista. I risultati memorizzati nella cache vengono archiviati nello spazio di archiviazione BigQuery.
Inoltre, i risultati delle query memorizzati nella cache vengono archiviati come tabelle temporanee. Non ti viene addebitato alcun costo per i risultati delle query memorizzati nella cache nelle tabelle temporanee.
Le tabelle esterne sono un tipo speciale di tabella in cui i dati risiedono in un datastore esterno a BigQuery, ad esempio Cloud Storage. Una tabella esterna ha uno schema proprio come una tabella standard, ma la definizione della tabella punta al datastore esterno. In questo caso, solo i metadati della tabella vengono conservati nello spazio di archiviazione BigQuery. BigQuery non addebita costi per l'archiviazione di tabelle esterne, anche se l'datastorei esterno potrebbe addebitare costi per l'archiviazione.
BigQuery organizza le tabelle e altre risorse in contenitori logici chiamati set di dati. Il modo in cui raggruppi le risorse BigQuery influisce su autorizzazioni, quote, fatturazione e altri aspetti dei tuoi carichi di lavoro BigQuery. Per ulteriori informazioni e best practice, vedi Organizzare le risorse BigQuery.
Il criterio di conservazione dei dati utilizzato per una tabella è determinato dalla configurazione del set di dati che contiene la tabella. Per saperne di più, vedi Conservazione dei dati con time travel e fail-safe.
Metadati
Lo spazio di archiviazione BigQuery contiene anche i metadati relativi alle risorse BigQuery. Non ti viene addebitato alcun costo per l'archiviazione dei metadati.
Quando crei un'entità persistente in BigQuery, ad esempio una tabella, una vista o unafunzione definita dall'utentee (UDF), BigQuery archivia i metadati relativi all'entità. Questo vale anche per le risorse che non contengono dati di tabella, come UDF e viste logiche.
I metadati includono informazioni come lo schema della tabella, le specifiche di partizionamento e clustering, i tempi di scadenza della tabella e altre informazioni. Questo tipo di metadati è visibile all'utente e può essere configurato durante la creazione della risorsa. Inoltre, BigQuery archivia i metadati che utilizza internamente per ottimizzare le query. Questi metadati non sono direttamente visibili agli utenti.
Layout dello spazio di archiviazione
Molti sistemi di database tradizionali archiviano i dati in formato orientato alle righe, il che significa che le righe vengono archiviate insieme e i campi di ogni riga vengono visualizzati in sequenza su disco. I database orientati alle righe sono efficienti nella ricerca di singoli record. Tuttavia, possono essere meno efficienti nell'esecuzione di funzioni analitiche su molti record, perché il sistema deve leggere ogni campo quando accede a un record.
BigQuery archivia i dati delle tabelle in formato colonnare, il che significa che archivia ogni colonna separatamente. I database orientati alle colonne sono particolarmente efficienti nell'analisi di singole colonne in un intero set di dati.
I database orientati alle colonne sono ottimizzati per i carichi di lavoro analitici che aggregano i dati su un numero molto elevato di record. Spesso, una query analitica deve leggere solo alcune colonne di una tabella. Ad esempio, se vuoi calcolare la somma di una colonna su milioni di righe, BigQuery può leggere i dati della colonna senza leggere ogni campo di ogni riga.
Un altro vantaggio dei database orientati alle colonne è che i dati all'interno di una colonna in genere hanno più ridondanza rispetto ai dati di una riga. Questa caratteristica consente una maggiore compressione dei dati utilizzando tecniche come la codifica run-length, che può migliorare le prestazioni di lettura.
Modelli di fatturazione dello spazio di archiviazione
Puoi ricevere la fatturazione per l'archiviazione dei dati BigQuery in byte logici o fisici (compressi) oppure una combinazione di entrambi. Il modello di fatturazione dello spazio di archiviazione scelto determina i prezzi dello spazio di archiviazione. Il modello di fatturazione dello spazio di archiviazione che scegli non influisce sulle prestazioni di BigQuery. Qualunque sia il modello di fatturazione che scegli, i tuoi dati vengono archiviati come byte fisici.
Il modello di fatturazione dell'archiviazione viene impostato a livello di set di dati. Se non specifichi un modello di fatturazione dello spazio di archiviazione quando crei un set di dati, per impostazione predefinita viene utilizzata la fatturazione dello spazio di archiviazione logico. Tuttavia, puoi modificare il modello di fatturazione dello spazio di archiviazione di un set di dati dopo averlo creato. Se modifichi il modello di fatturazione dello spazio di archiviazione di un set di dati, devi attendere 14 giorni prima di poterlo modificare di nuovo.
Quando modifichi il modello di fatturazione di un set di dati, sono necessarie 24 ore prima che la modifica abbia effetto. Le tabelle o le partizioni di tabelle nello spazio di archiviazione a lungo termine non vengono reimpostate sullo spazio di archiviazione attivo quando modifichi il modello di fatturazione di un set di dati. Le prestazioni e la latenza delle query non sono interessate dalla modifica del modello di fatturazione di un set di dati.
I set di dati utilizzano l'esplorazione temporale e l'archiviazione fail-safe per la conservazione dei dati. Il time travel e lo spazio di archiviazione a prova di errore vengono addebitati separatamente alle tariffe dello spazio di archiviazione attivo quando utilizzi la fatturazione dello spazio di archiviazione fisico, ma sono inclusi nella tariffa base che ti viene addebitata quando utilizzi la fatturazione dello spazio di archiviazione logico. Puoi modificare la finestra di time travel che utilizzi per un set di dati per bilanciare i costi di archiviazione fisica con la conservazione dei dati. Non puoi modificare la finestra di sicurezza. Per saperne di più sulla conservazione dei dati dei set di dati, vedi Conservazione dei dati con Time Travel e fail-safe. Per saperne di più sulla previsione dei costi di archiviazione, consulta Previsione della fatturazione dell'archiviazione.
Non puoi registrare un set di dati per la fatturazione dell'archiviazione fisica se la tua organizzazione ha impegni di slot con tariffa fissa legacy esistenti nella stessa regione del set di dati. Ciò non si applica agli impegni acquistati con una versione di BigQuery.
Ottimizza lo spazio di archiviazione
L'ottimizzazione dello spazio di archiviazione BigQuery migliora le prestazioni delle query e
controlla i costi. Per visualizzare i metadati di archiviazione della tabella, esegui una query sulle seguenti viste INFORMATION_SCHEMA:
Per informazioni sull'ottimizzazione dello spazio di archiviazione, vedi Ottimizzare lo spazio di archiviazione in BigQuery.
Carica dati
Esistono diversi pattern di base per l'importazione dei dati in BigQuery.
Caricamento batch:carica i dati di origine in una tabella BigQuery in una singola operazione batch. Può essere un'operazione una tantum o puoi automatizzarla in modo che venga eseguita in base a una pianificazione. Un'operazione di caricamento in batch può creare una nuova tabella o aggiungere dati a una tabella esistente.
Streaming:trasmetti continuamente piccoli batch di dati in modo che i dati siano disponibili per le query quasi in tempo reale.
Dati generati:utilizza le istruzioni SQL per inserire righe in una tabella esistente o per scrivere i risultati di una query in una tabella.
Per ulteriori informazioni su quando scegliere ciascuno di questi metodi di importazione, consulta Introduzione al caricamento dei dati. Per informazioni sui prezzi, consulta Prezzi dell'importazione dati.
Leggere i dati dallo spazio di archiviazione BigQuery
La maggior parte delle volte, i dati vengono archiviati in BigQuery per eseguire query analitiche. Tuttavia, a volte potresti voler leggere i record direttamente da una tabella. BigQuery offre diversi modi per leggere i dati delle tabelle:
API BigQuery: Accesso sincrono paginato con il metodo
tabledata.list. I dati vengono letti in modo seriale, una pagina per chiamata. Per ulteriori informazioni, consulta Esplorazione dei dati delle tabelle.API BigQuery Storage: accesso con velocità effettiva elevata in streaming che supporta anche la proiezione e il filtro delle colonne lato server. Le letture possono essere parallelizzate su più lettori segmentandoli in più flussi disgiunti.
Esportazione: Copia asincrona a velocità effettiva elevata in Google Cloud Storage, tramite job di estrazione o l'istruzione
EXPORT DATA. Se devi copiare i dati in Cloud Storage, esportali con un job di estrazione o un'istruzioneEXPORT DATA.Copia: Copia asincrona dei set di dati in BigQuery. La copia viene eseguita in modo logico quando la posizione di origine e di destinazione è la stessa.
Per informazioni sui prezzi, consulta Prezzi dell'estrazione dei dati.
In base ai requisiti dell'applicazione, puoi leggere i dati della tabella:
- Lettura e copia:se hai bisogno di una copia inattiva in
Cloud Storage, esporta i dati con un job di estrazione o un'istruzione
EXPORT DATA. Se vuoi solo leggere i dati, utilizza l'API BigQuery Storage. Se vuoi creare una copia in BigQuery, utilizza un job di copia. - Scalabilità:l'API BigQuery è il metodo meno efficiente e non deve essere utilizzato per letture di volumi elevati. Se devi esportare più di 50 TB di dati al giorno, utilizza l'istruzione
EXPORT DATAo l'API BigQuery Storage. - Tempo per restituire la prima riga: l'API BigQuery è il metodo più veloce per restituire la prima riga, ma deve essere utilizzata solo per leggere piccole quantità di dati. L'API BigQuery Storage è più lenta a restituire la prima riga, ma ha una velocità effettiva molto più elevata. Le esportazioni e le copie devono essere completate prima che sia possibile leggere le righe, quindi il tempo necessario per la prima riga per questi tipi di job può essere dell'ordine di minuti.
Eliminazione
Quando elimini una tabella, i dati vengono conservati almeno per la durata della
finestra di spostamento nel tempo. Dopodiché, i dati vengono ripuliti
dal disco entro la
tempistica di eliminazione diGoogle Cloud .
Alcune operazioni di eliminazione, come l'istruzione
DROP COLUMN,
sono operazioni solo sui metadati. In questo caso, lo spazio di archiviazione viene liberato la volta successiva
che modifichi le righe interessate. Se non modifichi la tabella, non è previsto un tempo garantito entro il quale lo spazio di archiviazione viene liberato. Per saperne di più, consulta la sezione
Eliminazione dei dati su Google Cloud.
Passaggi successivi
- Scopri di più su come lavorare con le tabelle.
- Scopri come ottimizzare lo spazio di archiviazione.
- Scopri come eseguire query sui dati in BigQuery.
- Scopri di più sulla governance e la sicurezza dei dati.