Panoramica dello spazio di archiviazione di BigQuery

In questa pagina viene descritto il componente di archiviazione di BigQuery.

L'archiviazione BigQuery è ottimizzata per l'esecuzione di query analitiche su set di dati di grandi dimensioni. Supporta inoltre l'importazione di flussi di dati e velocità effettiva elevata. Comprendere lo spazio di archiviazione di BigQuery può aiutarti a ottimizzare i carichi di lavoro.

Panoramica

Una delle caratteristiche principali dell'architettura di BigQuery è la separazione tra archiviazione e computing. Questo consente a BigQuery di scalare sia l'archiviazione che il computing in modo indipendente, in base alla domanda.

Architettura di BigQuery
Figura 1. architettura di BigQuery.

Quando esegui una query, il motore di query distribuisce il lavoro in parallelo tra 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 di petabyte per garantire che i dati si spostino i più rapidamente nei nodi worker.

Ecco alcune funzionalità chiave dello spazio di archiviazione BigQuery:

  • Gestita. L'archiviazione BigQuery è un servizio completamente gestito. Non è necessario eseguire il provisioning delle risorse di archiviazione o prenotare unità 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 i costi per computing e archiviazione separatamente. Per i dettagli sui prezzi, vedi Prezzi di BigQuery.

  • Robustezza. L'archiviazione BigQuery è progettata 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 errori a livello di zona. Per ulteriori informazioni, consulta Affidabilità: pianificazione in caso di emergenza.

  • Criptato. BigQuery cripta automaticamente tutti i dati prima che siano scritti su disco. Puoi fornire la tua chiave di crittografia o lasciare che sia Google a gestirla. Per ulteriori informazioni, vedi Crittografia at-rest.

  • Efficiente. Lo spazio di archiviazione BigQuery usa un formato di codifica efficiente ottimizzato per i carichi di lavoro di analisi. Per saperne di più sul formato di archiviazione di BigQuery, consulta il blog post Inside Capacitor, BigQuery's next-generation columnar storage format (Inside Capacitor, il formato di archiviazione a colonne di nuova generazione di BigQuery).

Dati tabella

La maggior parte dei dati archiviati in BigQuery sono dati di tabelle. I dati delle tabelle includono tabelle standard, cloni di tabelle, snapshot delle tabelle e viste materializzate. Ti viene addebitato il costo dello spazio di archiviazione che utilizzi per queste risorse. Per ulteriori informazioni, vedi 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 a colonne. Vedi Layout dello spazio di archiviazione in questo documento.

  • I cloni di tabelle sono copie leggere e scrivibili di tabelle standard. BigQuery archivia solo il delta tra un clone di tabelle e la relativa tabella di base.

  • Gli snapshot delle tabelle sono copie point-in-time delle tabelle. Gli snapshot delle tabelle sono di sola lettura, ma puoi ripristinare una tabella da uno snapshot della tabella. BigQuery archivia solo il delta tra uno snapshot della tabella e la relativa tabella di base.

  • Le viste materializzate sono viste precalcolate che memorizzano periodicamente nella cache i risultati della query di visualizzazione. 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 viene addebitato alcun costo per i risultati delle query memorizzati nella cache archiviati in tabelle temporanee.

Le tabelle esterne sono un tipo speciale di tabella in cui i dati si trovano 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 rimanda al datastore esterno. In questo caso, solo i metadati della tabella vengono conservati nell'archiviazione BigQuery. BigQuery non addebita alcun costo per l'archiviazione esterna delle tabelle, anche se il datastore esterno potrebbe addebitare costi per l'archiviazione.

BigQuery organizza le tabelle e altre risorse in container logici denominati 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, consulta Organizzazione delle risorse BigQuery.

Il criterio di conservazione dei dati utilizzato per una tabella è determinato dalla configurazione del set di dati che contiene la tabella. Per maggiori informazioni, consulta Conservazione dei dati con viaggi nel tempo e sicurezza in caso di errori.

Metadati

BigQuery Storage contiene anche i metadati relativi alle risorse BigQuery. L'archiviazione dei metadati non prevede alcun addebito.

Quando crei un'entità permanente in BigQuery, ad esempio una tabella, una vista o una funzione definita dall'utente dall'utente, BigQuery archivia i metadati relativi all'entità. Questo vale anche per le risorse che non contengono dati di tabelle, come funzioni definite dall'utente e viste logiche.

I metadati includono informazioni come schema della tabella, specifiche di partizionamento e clustering, tempi di scadenza delle tabelle 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 archiviazione

Molti sistemi di database tradizionali archiviano i propri dati in formato orientato alle righe, ovvero le righe vengono archiviate insieme e i campi di ogni riga vengono visualizzati in sequenza sul disco. I database orientati a righe consentono di cercare in modo efficiente i singoli record. Tuttavia, possono essere meno efficienti nell'esecuzione di funzioni analitiche su molti record, poiché il sistema deve leggere ogni campo quando si accede a un record.

Formato orientato alle righe
Figura 2. Formato orientato alle righe.

BigQuery archivia i dati delle tabelle nel formato a colonne, il che significa che ogni colonna archivia separatamente. I database orientati a colonne sono particolarmente efficienti nell'analisi di singole colonne su un intero set di dati.

I database orientati a colonne sono ottimizzati per carichi di lavoro di analisi che aggregano i dati in un numero molto elevato di record. Spesso, una query analitica ha bisogno di 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 a colonne è che i dati all'interno di una colonna di solito presentano più ridondanza rispetto ai dati in una riga. Questa caratteristica consente una maggiore compressione dei dati mediante tecniche come la codifica di esecuzione, che possono migliorare le prestazioni di lettura.

Formato orientato alle colonne
Figura 3. Formato orientato alle colonne.

Modelli di fatturazione dello spazio di archiviazione

I costi per l'archiviazione dei dati di BigQuery possono essere addebitati in byte logici o fisici (compressi) o in una combinazione di entrambi. Il modello di fatturazione dello spazio di archiviazione che scegli determina i prezzi dello spazio di archiviazione. Il modello di fatturazione dello spazio di archiviazione che scegli non influisce sulle prestazioni di BigQuery. Qualunque modello di fatturazione tu scelga, i dati vengono archiviati come byte fisici.

Il modello di fatturazione dello spazio di archiviazione viene impostato a livello del set di dati. Se non specifichi un modello di fatturazione dello spazio di archiviazione quando crei un set di dati, per impostazione predefinita viene utilizzato la fatturazione dell'archiviazione logica. Tuttavia, puoi modificare il modello di fatturazione dell'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 poter modificare di nuovo il modello di fatturazione dello spazio di archiviazione.

Quando cambi il modello di fatturazione di un set di dati, sono necessarie 24 ore prima che la modifica abbia effetto. Le tabelle o le partizioni delle 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. La modifica del modello di fatturazione di un set di dati non influisce sulle prestazioni e sulla latenza delle query.

I set di dati utilizzano i viaggi nel tempo e l'archiviazione in caso di errore per la conservazione dei dati. I costi per l'archiviazione in tempo reale e per l'archiviazione in sicurezza vengono addebitati separatamente in base alle tariffe di archiviazione attive quando utilizzi la fatturazione per l'archiviazione fisica, ma sono incluse nella tariffa base che ti viene addebitata quando utilizzi la fatturazione per l'archiviazione logica. Puoi modificare la finestra di spostamento cronologico utilizzata per un set di dati al fine di bilanciare i costi di archiviazione fisica con la conservazione dei dati. Non puoi modificare la finestra di sicurezza. Per ulteriori informazioni sulla conservazione dei dati dei set di dati, consulta Conservazione dei dati con viaggi nel tempo e sicurezza in caso di errore. Per ulteriori informazioni sulla previsione dei costi di archiviazione, consulta Prevedere la 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 costo fisso 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 di archiviazione della tabella, esegui una query sulle seguenti INFORMATION_SCHEMA viste:

Per informazioni su come ottimizzare lo spazio di archiviazione, vedi Ottimizzare lo spazio di archiviazione in BigQuery.

Carica dati

Esistono diversi pattern di base per l'importazione di dati in BigQuery.

  • Caricamento in batch: carica i dati di origine in una tabella BigQuery con un'unica 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.

  • Flusso di dati: invia 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'importazione dati.

Leggi i dati dallo spazio di archiviazione BigQuery

La maggior parte delle volte archivi i dati in BigQuery per eseguire query analitiche sui dati. 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 impaginato sincrono con il metodo tabledata.list. I dati vengono letti in modo seriale, una pagina per chiamata. Per maggiori informazioni, consulta la sezione Dati della tabella di navigazione.

  • API BigQuery Storage: accesso in modalità flusso ad alta velocità effettiva che supporta anche la proiezione e i filtri delle colonne lato server. Le letture possono essere parallelizzate tra più lettori segmentandole in più flussi separati.

  • Esportazione: copia asincrona ad alta velocità effettiva in Google Cloud Storage tramite job di estrazione o EXPORT DATA. Se devi copiare dati in Cloud Storage, esporta i dati con un job di estrazione o un'istruzione EXPORT DATA.

  • Copia: copia asincrona dei set di dati all'interno di BigQuery. La copia viene eseguita logicamente quando la località di origine e quella di destinazione sono le stesse.

Per informazioni sui prezzi, consulta la pagina relativa ai 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 at-rest in Cloud Storage, esporta i dati con un job di estrazione o un'istruzione EXPORT DATA. Se vuoi solo leggere i dati, usa l'API BigQuery Storage. Se vuoi creare una copia in BigQuery, usa un job di copia.
  • Scalabilità: l'API BigQuery è il metodo meno efficiente e non deve essere utilizzata per letture di volumi elevati. Se devi esportare più di 50 TB di dati al giorno, utilizza l'istruzione EXPORT DATA o 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 nel restituire la prima riga, ma ha una velocità effettiva molto più elevata. Le esportazioni e le copie devono terminare prima di poter leggere qualsiasi riga, quindi il tempo per passare alla prima riga per questi tipi di job può essere dell'ordine di minuti.

Eliminazione

Quando elimini una tabella, i dati vengono mantenuti per almeno la durata della finestra di spostamento cronologico. Dopodiché, i dati vengono ripuliti dal disco entro i tempi di eliminazione di Google Cloud. Alcune operazioni di eliminazione, come l'istruzione DROP COLUMN, sono operative solo per i metadati. In questo caso, lo spazio di archiviazione verrà liberato la prossima volta che modifichi le righe interessate. Se non modifichi la tabella, non vi è un tempo garantito entro il quale lo spazio di archiviazione viene liberato. Per ulteriori informazioni, consulta Eliminazione dei dati su Google Cloud.

Passaggi successivi