Panoramica dello spazio 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 lo spazio di archiviazione e 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, vedi Prezzi di BigQuery.
Durable. 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 errori a livello di macchina o a errori di zona. Per ulteriori informazioni, vedi Affidabilità: pianificazione del disaster recovery.
File criptato. BigQuery cripta automaticamente tutti i dati prima che siano scritti su disco. Puoi fornire la tua chiave di crittografia o lasciare che Google gestisca la chiave di crittografia. Per ulteriori informazioni, vedi Crittografia at-rest.
Efficienti. 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, vedi Prezzi 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. Vedi 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 delle tabelle sono copie delle tabelle in un determinato momento. Gli snapshot delle 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 costi 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 di tabella, proprio come una tabella standard, ma la definizione della tabella punta al datastore esterno. In questo caso, nello spazio di archiviazione di BigQuery vengono conservati solo i metadati della tabella. 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, vedi 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, vedi Conservazione dei dati con spostamento cronologico e fail-safe.
Metadati
Lo spazio di archiviazione di BigQuery contiene anche i metadati delle 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 dell'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 delle 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
BigQuery offre due modelli di fatturazione dello spazio di archiviazione: logico (non compresso) e fisico (compresso).
La modifica del modello di fatturazione dello spazio di archiviazione cambia solo la configurazione della misurazione. Non comporta la migrazione dei dati, la conversione del formato dei file o modifiche all'infrastruttura. I dati vengono sempre archiviati nello stesso formato fisico compresso. La modifica di questa impostazione non influisce sulle prestazioni delle query, sulla latenza o sull'integrazione con altre applicazioni, come Looker.
Il modello selezionato determina solo il modo in cui i byte archiviati vengono misurati e il prezzo in base ai prezzi dello spazio di archiviazione:
- Fatturazione logica: ti vengono addebitati i costi in base alle dimensioni non compresse dei dati. Questo è il modello predefinito.
- Fatturazione fisica: ti vengono addebitati i costi in base alle dimensioni compresse dei dati su disco.
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 spostamento cronologico e lo spazio di archiviazione fail-safe per la conservazione dei dati. Lo spostamento cronologico e lo spazio di archiviazione fail-safe vengono addebitati separatamente alle tariffe dello spazio di archiviazione attivo quando utilizzi la fatturazione dello spazio di archiviazione fisico, ma sono inclusi 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, vedi Conservazione dei dati con spostamento cronologico e fail-safe. Per ulteriori informazioni sulla previsione dei costi di archiviazione, vedi 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 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 di dati in BigQuery.
Caricamento in 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.
Flusso di dati: trasmetti in flusso continuo 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, vedi Introduzione al caricamento dei dati. Per informazioni sui prezzi, vedi 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, vedi Esplorare i dati tabellari.API BigQuery Storage: accesso in streaming con velocità effettiva elevata che supporta anche la proiezione e il filtro 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 la località di origine e di destinazione è la stessa.
Per informazioni sui prezzi, vedi 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, vedi
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.