Viste materializzate continue

Questo documento fornisce una panoramica delle viste materializzate continue e dei relativi casi d'uso comuni. Prima di leggere questa pagina, devi acquisire familiarità con la panoramica di Bigtable.

In Bigtable, una vista materializzata continua è un risultato precalcolato e completamente gestito di una query SQL in esecuzione continua che aggiorna in modo incrementale la vista materializzata continua. La query SQL può includere aggregazioni e trasformazioni nella tabella Bigtable sottostante. L'utilizzo di viste materializzate continue può aumentare le prestazioni e l'efficienza.

I dati in una vista materializzata continua includono quanto segue:

  • Valori aggregati o trasformati derivati dai dati della tabella di origine
  • Valori non aggregati che definiscono la chiave di raggruppamento

Le viste materializzate continue ti consentono di preaggregare i dati durante l'importazione. Inoltre, una vista materializzata continua ha uno schema diverso rispetto alla tabella di origine, presentando i dati della tabella di origine in una struttura ottimizzata per le query con pattern di ricerca diversi rispetto alle query utilizzate nella tabella di origine.

Di seguito sono riportate le caratteristiche principali delle viste materializzate continue in Bigtable:

  • Nessuna manutenzione: una vista materializzata continua viene precalcolata in background. Le modifiche ai dati della tabella di origine, inclusi aggiornamenti ed eliminazioni, vengono propagate automaticamente in background alla vista materializzata continua, senza che sia necessaria alcuna azione da parte dell'utente.
  • Pattern di sviluppo SQL: le viste materializzate continue si basano su GoogleSQL per le query Bigtable, incluse funzioni, filtri e aggregazioni SQL.
  • Sincronizzazione con la garbage collection: una vista materializzata continua rimane sincronizzata con le norme di garbage collection della tabella di origine, aggiornandosi automaticamente quando i dati della tabella scadono o vengono eliminati.
  • La latenza di lettura e scrittura non è interessata: una vista materializzata continua ha un impatto minimo sulle prestazioni della tabella di origine quando i cluster dell'istanza sono adeguatamente sottoposti a provisioning o utilizzano la scalabilità automatica.
  • Coerenza finale:le viste materializzate continue vengono calcolate in background. Gli aggiornamenti di una vista materializzata continua potrebbero essere ritardati, ma i risultati materializzati continui sono sempre coerenti nel tempo.

La chiave di riga, il qualificatore di colonna e i valori di colonna che utilizzi per definire una vista materializzata continua vengono trattati come dati di servizio. Per questo motivo, non creare una vista materializzata continua utilizzando la chiave di riga, il qualificatore di colonna o i valori delle colonne che contengono informazioni sensibili. Per informazioni su come vengono gestiti i dati del servizio, consulta l'Google Cloud Informativa sulla privacy.

Puoi creare una vista materializzata continua utilizzando Google Cloud CLI, l'editor di query Bigtable Studio nella console Google Cloud o le librerie client Bigtable per Java e Go.

Puoi leggere da una vista materializzata continua utilizzando quanto segue:

Per ulteriori informazioni, consulta Lettura da una vista materializzata continua.

Quando utilizzare le viste materializzate continue

Le viste materializzate continue ti consentono di definire una nuova rappresentazione dei tuoi dati Bigtable utilizzando SQL. Una volta creata, una vista materializzata continua ristruttura continuamente e automaticamente i dati della tabella di origine nel formato definito dalla query SQL. In questo modo, anziché eseguire query sulla tabella e trasformare o aggregare i dati dopo averli letti, puoi eseguire query sulla vista materializzata continua.

Le viste materializzate continue possono migliorare le prestazioni delle query per i seguenti casi d'uso:

  • Pre-aggregazione dei dati: puoi utilizzare una vista materializzata continua per aggregare i dati in entrata tra le righe. In questo modo puoi recuperare rapidamente dati riepilogati e aggregati, ad esempio le metriche per le dashboard.
  • Automazione delle architetture lambda e kappa: se la tua applicazione richiede una combinazione di dati della pipeline di streaming in tempo reale e dati della pipeline batch che contengono dati storici, utilizza le viste materializzate continue. Queste visualizzazioni forniscono una visualizzazione di tutte le origini dati che viene aggiornata nel tempo per riflettere le modifiche ai dati sottostanti, senza la necessità di ulteriori strumenti di elaborazione dei flussi o job ETL personalizzati.
  • Pattern di accesso secondari: le viste materializzate continue creano una rappresentazione alternativa dei dati. Questa rappresentazione può essere ottimizzata per le query con pattern di ricerca diversi da quelli utilizzati nelle query sulla tabella di origine. Per saperne di più su questi pattern, vedi Crea un indice secondario asincrono.

Per confrontare le viste materializzate continue con altri tipi di viste Bigtable, consulta Tabelle e viste.

Quando utilizzare i contatori

Un altro modo per pre-aggregare i dati consiste nel creare contatori distribuiti utilizzando le celle aggregate.

Le scritture nelle celle aggregate sono immediatamente leggibili dal cluster in cui vengono scritte. Le viste materializzate continue vengono elaborate dopo la scrittura dei dati e alla fine diventano coerenti con la tabella di origine.

Utilizza i contatori anziché le viste materializzate continue per quanto segue:

  • Aggregazioni che non richiedono filtri e non devono essere applicate a più righe
  • Se devi leggere immediatamente le scritture dal cluster in cui sono state scritte

Utilizza le viste materializzate continue quando vuoi:

  • Genera una chiave diversa per le query sulle aggregazioni
  • Visualizzare le modifiche alla tabella di base riflesse nelle aggregazioni
  • Combinare automaticamente i dati su più righe

Utilizza una combinazione di contatori e viste materializzate continue per casi d'uso come quando vuoi:

  • Acquisire nuove metriche in una cella aggregata, ma conservare i rollup storici di queste metriche
  • Combinare le metriche in una vista materializzata continua

Provisioning delle risorse e rendimento

L'elaborazione continua per le viste materializzate continue viene eseguita come job in background a bassa priorità. Di conseguenza, ha un impatto minimo sulle prestazioni dell'applicazione e sulla latenza di lettura e scrittura nella tabella di origine, a condizione che i cluster siano dimensionati in modo adeguato.

Come best practice per assicurarti che i dati nella vista materializzata continua rimangano aggiornati, attiva la scalabilità automatica per i cluster nell'istanza che contiene la vista materializzata continua. La scalabilità automatica aggiunge automaticamente nodi sufficienti per gestire l'overhead di elaborazione e poi li rimuove quando non sono più necessari. Ciò contribuisce a garantire che sia disponibile una capacità di calcolo sufficiente durante l'esecuzione della query SQL in esecuzione continua. La scalabilità automatica può anche garantire di avere nodi sufficienti per gestire le esigenze di archiviazione delle viste materializzate continue.

Le viste materializzate continue vengono conteggiate ai fini del limite di 1000 tabelle per istanza.

Archiviazione

Per ogni vista materializzata continua, Bigtable archivia quanto segue:

  • I dati nella vista materializzata continua
  • Spazio di archiviazione intermedio

Come qualsiasi tabella Bigtable, una vista materializzata continua esiste su tutti i cluster dell'istanza che la contiene. I cluster nell'istanza devono avere nodi sufficienti per archiviare la tabella di origine e tutte le viste materializzate continue basate sulla tabella. La scalabilità automatica consente ai cluster di aumentare o diminuire le dimensioni in base alle variazioni dei requisiti di archiviazione.

Una vista materializzata continua deve essere creata nella stessa istanza della tabella di origine, anche se lo spazio di archiviazione per la vista materializzata continua è distinto dalla tabella di origine.

Archiviazione delle vista materializzata continue

Una vista materializzata continua contiene i dati risultanti dalla query SQL su cui si basa la vista materializzata continua. Ciò significa che contiene valori aggregati definiti dalle clausole di aggregazione nella query SQL e valori non aggregati che definiscono la chiave di raggruppamento.

Spazio di archiviazione intermedio

Per supportare la sincronizzazione di una vista materializzata continua con la relativa tabella di origine, Bigtable utilizza uno spazio di archiviazione intermedio per archiviare copie dei dati necessari per aggiornare in modo incrementale la vista materializzata continua.

La quantità di dati nello spazio di archiviazione intermedio è approssimativamente equivalente alla quantità di dati scansionati nella tabella di origine per generare il risultato della query SQL che definisce la vista materializzata continua. Ad esempio, se la query aggrega i dati nell'intera tabella, Bigtable memorizza l'equivalente dell'intera tabella nell'archivio intermedio. Una vista materializzata continua basata su una query di intervalli di chiave di riga o colonne specifici conserva solo queste righe o colonne nell'archiviazione intermedia.

Lo spazio di archiviazione intermedio persiste per tutta la durata della vista materializzata continua per supportare in modo efficiente gli aggiornamenti incrementali della vista e propagare le eliminazioni dalla tabella di origine alla vista materializzata continua. Non puoi leggere i dati nello spazio di archiviazione intermedio. Per informazioni dettagliate sull'utilizzo dello spazio di archiviazione intermedio, consulta Metriche vista materializzata continue.

Replica

Nelle istanze che utilizzano la replica, le viste materializzate continue non vengono replicate nello stesso modo delle tabelle. Al contrario, ogni cluster di un'istanza elabora la vista materializzata continua in modo indipendente, utilizzando la propria copia della tabella di origine. Ciò significa, ad esempio, che i dati scritti in una tabella di origine sul cluster A vengono replicati nella tabella sul cluster B e poi nella vista materializzata continua sul cluster B.

Costi

Non è previsto alcun costo per risorsa per l'utilizzo delle viste materializzate continue. Tuttavia, la creazione e la sincronizzazione delle viste materializzate continue richiedono elaborazione e spazio di archiviazione e ti vengono addebitati alle tariffe standard. Quando crei una vista materializzata continua, puoi aspettarti aumenti di quanto segue:

  • Archiviazione: ti viene addebitato il costo per l'archiviazione dei dati nella vista materializzata continua e per l'archiviazione intermedia. Per saperne di più, vedi Archiviazione.
  • Calcolo: la sincronizzazione continua della tabella di origine e della vista materializzata richiede l'elaborazione della CPU e i cluster potrebbero aver bisogno di più nodi per gestire il lavoro aggiuntivo in background.

Allo stesso tempo, potresti notare una diminuzione dell'elaborazione nella tabella di origine, ad esempio quando non esegui più scansioni di intervalli dei dati per eseguire calcoli ripetuti e altre query meno efficienti. Potresti anche eliminare la necessità di eseguire job della pipeline, come Dataflow o Spark, per aggregare i dati di origine e riscriverli in Bigtable.

Per ulteriori informazioni sui prezzi, consulta la sezione Prezzi di Bigtable. Per le metriche che possono aiutarti a monitorare l'utilizzo della vista materializzata continua, consulta Metriche.

Metriche

Una vista materializzata continua riporta diverse metriche chiave a Cloud Logging che puoi utilizzare per monitorare le viste materializzate continue.

Metrica Descrizione
materialized_view/max_delay Limite superiore del ritardo di elaborazione per la vista materializzata continua
materialized_view/storage Quantità di dati utilizzati per l'archiviazione della vista materializzata continua in byte
materialized_view/intermediate_storage Quantità di dati utilizzati dall'elaborazione intermedia per la vista materializzata continua in byte
table/materialized_view_intermediate_storage Quantità di dati utilizzati dall'elaborazione intermedia per le viste materializzate continue definite in questa tabella
materialized_view/user_errors Numero di errori nei dati utente per la vista materializzata continua. Gli errori dell'utente impediscono la propagazione dei dati alla vista.
materialized_view/system_errors Numero di errori del sistema per la vista materializzata continua

Puoi anche utilizzare molte metriche delle tabelle Bigtable per monitorare una vista materializzata continua, utilizzando l'ID della vista materializzata continua al posto dell'ID tabella. In particolare, le viste materializzate continue sono incluse nella suddivisione delle metriche della CPU, che possono aiutarti a comprenderne l'impatto. Le metriche Bigtable per richieste al secondo, latenza e velocità effettiva vengono generate quando leggi una vista materializzata continua utilizzando il metodo ReadRows dell'API Data. Per ulteriori informazioni, consulta Metriche.

Per iniziare a utilizzare Cloud Logging, consulta la panoramica delle query e della visualizzazione dei log.

Limitazioni

  • Puoi creare una sola vista materializzata continua per tabella.
  • Quando crei una vista senza un _key specificato, le colonne selezionate nella tabella di origine non devono essere NULL. Per ulteriori informazioni, consulta la sezione Chiavi di riga definite dalla clausola GROUP BY.
  • Non puoi modificare la query SQL che definisce una vista materializzata continua. Devi eliminare la vista materializzata continua e crearne una nuova con le modifiche.
  • Non puoi creare una vista materializzata continua di un'altra vista materializzata continua o di una vista logica.
  • Non puoi configurare criteri di garbage collection per una vista materializzata continua. Tutta la conservazione dei dati è regolata dalle norme di garbage collection per la tabella di origine e la garbage collection dell'origine si riflette automaticamente nella vista materializzata continua.

Passaggi successivi