Panoramica dello spazio di archiviazione di BigQuery
Questa pagina descrive il componente di archiviazione di BigQuery.
Lo spazio di archiviazione di BigQuery è ottimizzato per l'esecuzione di query analitiche su set di dati di grandi dimensioni. Supporta anche importazione di flussi di dati di dati con velocità effettiva elevata e le letture con velocità effettiva elevata. Comprendere lo spazio di archiviazione di BigQuery può aiutarti a ottimizzare i carichi di lavoro.
Panoramica
Una delle funzionalità chiave dell'architettura di BigQuery è la separazione tra spazio di archiviazione e computing. Ciò consente a BigQuery di scalare sia lo spazio di archiviazione sia il 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 analizzano 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 petabit per garantire che i dati si spostino molto rapidamente ai nodi worker.
Di seguito sono riportate alcune funzionalità chiave dello spazio di archiviazione di BigQuery:
Gestito. Lo spazio di archiviazione di BigQuery è 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 determinazione dei prezzi di BigQuery addebita separatamente il computing e lo spazio di archiviazione. Per i dettagli sui prezzi, consulta Prezzi di BigQuery.
Duraturo. Lo spazio di archiviazione di BigQuery è progettato per una durabilità annuale del 99,999999999% (11 9). BigQuery replica i dati in più zone di disponibilità per proteggerli dalla perdita di dati dovuta a guasti a livello di macchina o a guasti di zona. Per ulteriori informazioni, consulta Affidabilità: pianificazione del disaster recovery.
Crittografato. BigQuery cripta automaticamente tutti i dati prima che vengano scritti su disco. Puoi fornire la tua chiave di crittografia o lasciare che Google gestisca la chiave di crittografia. Per ulteriori informazioni, consulta Crittografia at-rest.
Efficiente. Lo spazio di archiviazione di 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 tabellari includono tabelle standard, cloni di tabelle, snapshot di tabelle e viste materializzate. Ti viene addebitato il costo dello spazio di archiviazione utilizzato per queste risorse. Per ulteriori informazioni, consulta Prezzi dello spazio di 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 Layout dello spazio di archiviazione in questo documento.
I cloni di tabelle sono copie leggere e scrivibili delle tabelle standard. BigQuery archivia solo il delta tra un clone di tabella e la relativa tabella di base.
Gli snapshot di tabelle sono copie delle tabelle in un determinato momento. Gli snapshot di tabelle sono di sola lettura, ma puoi ripristinare una tabella da uno snapshot di tabella. BigQuery archivia solo il delta tra uno snapshot di 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 di BigQuery.
Inoltre, i risultati delle query memorizzati nella cache vengono archiviati come tabelle temporanee. Non ti vengono addebitati 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 di tabella, 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 di BigQuery. BigQuery non addebita costi per lo spazio di archiviazione delle tabelle esterne, anche se il datastore esterno potrebbe addebitare costi per lo spazio di archiviazione.
BigQuery organizza le tabelle e altre risorse in container logici chiamati set di dati. Il modo in cui raggruppi le risorse BigQuery influisce su autorizzazioni, quote, fatturazione e altri aspetti dei carichi di lavoro BigQuery. Per ulteriori informazioni e best practice, consulta Introduzione alla gerarchia delle risorse.
La policy di conservazione dei dati utilizzata per una tabella è determinata dalla configurazione del set di dati che contiene la tabella. Per ulteriori informazioni, consulta Conservazione dei dati con spostamento cronologico e fail-safe.
Metadati
Lo spazio di archiviazione di BigQuery contiene anche i metadati relativi alle risorse BigQuery. Non ti vengono addebitati costi per lo spazio di archiviazione dei metadati.
Quando crei un'entità persistente in BigQuery, ad esempio una tabella, una vista o una funzione definita dall'utente (UDF), BigQuery archivia i metadati relativi all'entità. Questo vale anche per le risorse che non contengono dati tabellari, come le UDF e le 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 quando crei la risorsa. Inoltre, BigQuery archivia i metadati che utilizza internamente per ottimizzare le query. Questi metadati non sono visibili direttamente 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 tabellari in formato colonnare, il che significa che archivia ogni colonna separatamente. I database orientati alle colonne sono particolarmente efficienti nell'analisi di singole colonne su 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 una ridondanza maggiore 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 fattura per lo spazio di archiviazione dei dati di BigQuery in byte logici o fisici (compressi) o in 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 scelto non influisce sulle prestazioni di BigQuery. Qualunque sia il modello di fatturazione scelto, i dati vengono archiviati come byte fisici.
Imposti il modello di fatturazione dello spazio di archiviazione 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, la modifica diventa effettiva dopo 24 ore. 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 delle query e la latenza delle query non sono influenzate dalla modifica del modello di fatturazione di un set di dati.
I set di dati utilizzano lo spazio di archiviazione con spostamento cronologico e fail-safe per la conservazione dei dati. Lo spazio di archiviazione con spostamento cronologico e fail-safe viene addebitato separatamente alle tariffe dello spazio di archiviazione attivo quando utilizzi la fatturazione dello spazio di archiviazione fisico, ma è incluso nella tariffa di base addebitata quando utilizzi la fatturazione dello spazio di archiviazione logico. Puoi modificare la finestra di spostamento cronologico utilizzata per un set di dati per bilanciare i costi dello spazio di archiviazione fisico con la conservazione dei dati. Non puoi modificare la finestra fail-safe. Per ulteriori informazioni sulla conservazione dei dati del set di dati, consulta Conservazione dei dati con spostamento cronologico e fail-safe. Per ulteriori informazioni sulla previsione dei costi dello spazio di archiviazione, consulta Previsione della fatturazione dello spazio di archiviazione.
Non puoi registrare un set di dati per la fatturazione dello spazio di archiviazione fisico se la tua organizzazione ha impegni di slot a tariffa fissa legacy esistenti nella stessa regione del set di dati. Questo non si applica agli impegni acquistati con una versione di BigQuery.Ottimizza lo spazio di archiviazione
L'ottimizzazione dello spazio di archiviazione di BigQuery migliora le prestazioni delle query e controlla i costi. Per visualizzare i metadati dello spazio di archiviazione delle tabelle, esegui una query sulle seguenti viste INFORMATION_SCHEMA:
Per informazioni sull'ottimizzazione dello spazio di archiviazione, consulta Ottimizzare lo spazio di archiviazione in BigQuery.
Carica dati
Esistono diversi pattern di base per l'importazione dei dati in BigQuery.
Caricamento in batch: carica i dati di origine in una tabella BigQuery in una singola operazione batch. Può trattarsi di un'operazione una tantum oppure 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.
Flusso di dati: trasmetti in streaming continuamente batch di dati più piccoli, in modo che i dati siano disponibili per l'esecuzione di query quasi in tempo reale.
Dati generati: utilizza le istruzioni SQL per inserire righe in una tabella esistente o 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'acquisizione dei dati.
Leggi i dati dallo spazio di archiviazione di BigQuery
La maggior parte delle volte, archivi i dati in BigQuery per eseguire query analitiche su questi dati. Tuttavia, a volte potresti voler leggere i record direttamente da una tabella. BigQuery offre diversi modi per leggere i dati tabellari:
API BigQuery: accesso paginato sincrono con il
tabledata.listmetodo. I dati vengono letti in modo seriale, una pagina per chiamata. Per ulteriori informazioni, consulta Esplorare i dati tabellari.API BigQuery Storage: accesso in streaming con velocità effettiva elevata che supporta anche la proiezione e il filtraggio delle colonne lato server. Le letture possono essere parallelizzate su più lettori segmentandole in più flussi disgiunti.
Esportazione: copia asincrona con velocità effettiva elevata in Google Cloud Storage, tramite job di estrazione o l'
EXPORT DATAistruzione. 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 all'interno di BigQuery. La copia viene eseguita logicamente quando l'origine e la destinazione si trovano nella stessa località.
Per informazioni sui prezzi, consulta Prezzi dell'estrazione dei dati.
In base ai requisiti dell'applicazione, puoi leggere i dati tabellari:
- Leggi e copia: se hai bisogno di una copia at-rest 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 all'interno di BigQuery, utilizza un job di copia. - Scala: l'API BigQuery è il metodo meno efficiente e non deve essere utilizzata per le 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 per restituire la prima riga, ma ha una velocità effettiva molto più elevata. Le esportazioni e le copie devono essere completate prima che le righe possano essere lette, quindi il tempo per la prima riga per questi tipi di job può essere dell'ordine di minuti.
Eliminazione
Quando elimini una tabella, i dati vengono conservati per almeno la durata della tua
finestra di spostamento cronologico.
Dopodiché, i dati vengono eliminati
dal disco entro la
Google Cloud sequenza temporale di eliminazione.
Alcune operazioni di eliminazione, come l'
istruzioneDROP 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 è garantito un tempo entro il quale lo spazio di archiviazione viene liberato.
Per ulteriori informazioni, consulta
Eliminazione dei dati su Google Cloud.
Passaggi successivi
- Scopri come utilizzare le tabelle.
- Scopri come ottimizzare lo spazio di archiviazione.
- Scopri come eseguire query sui dati in BigQuery.
- Scopri di più sulla sicurezza e sulla governance dei dati.