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 conoscere 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 a quelli utilizzati 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 base, inclusi aggiornamenti ed eliminazioni, vengono propagate automaticamente in background alla vista materializzata continua, senza alcuna azione da parte dell'utente.
  • Pattern di sviluppo SQL: le viste materializzate continue si basano su query GoogleSQL per Bigtable, tra cui funzioni, filtri e aggregazioni SQL.
  • Sincronizzazione con la raccolta dei rifiuti: una vista materializzata continua rimane sincronizzata con i criteri di raccolta dei rifiuti della relativa tabella di origine e si aggiorna 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 stati pianificati in modo adeguato o utilizzano l'autoscaling.
  • Coerenza finale:le viste materializzate continue vengono calcolate in background. Gli aggiornamenti di una vista materializzata continua potrebbero subire ritardi, ma i risultati delle viste materializzate continue sono sempre coerenti nel tempo.

Puoi creare una vista materializzata continua utilizzando Google Cloud CLI, l'editor di query di Bigtable Studio nella Google Cloud console 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 tabella visualizzata con dati materializzati.

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. Quindi, anziché eseguire query sulla tabella e trasformare o aggregare i dati dopo averli letti, puoi eseguire query sulla visualizzazione materializzata continua.

Le viste materializzate 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 nelle righe. Questo è utile quando vuoi recuperare rapidamente dati riepilogati e aggregati, ad esempio le metriche per le dashboard.
  • Automatizzazione delle architetture lambda e kappa: se la tua applicazione richiede un mix di dati delle pipeline di streaming in tempo reale e di pipeline batch contenenti dati storici, le visualizzazioni materializzate continue forniscono una visione eventualmente coerente di tutte le origini dati, senza la necessità di ulteriori strumenti di elaborazione dello stream o job ETL personalizzati.

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

Quando utilizzare i contatori

Un altro modo per preaggregare i dati è creare contatori distribuiti utilizzando le celle aggregate.

Le scritture nelle celle aggregate sono immediatamente leggibili dal cluster in cui vengono scritte. Le visualizzazioni materializzate continue vengono elaborate dopo la scrittura dei dati e 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 presenti in 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 in più righe

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

  • Acquisisci metriche aggiornate in una cella aggregata, ma mantieni i raggruppamenti storici di queste metriche
  • Combinare le metriche in una vista materializzata continua

Provisioning delle risorse e prestazioni

L'elaborazione continua delle viste materializzate continue avviene come job in background di bassa priorità. Di conseguenza, ha un impatto minimo sul rendimento dell'applicazione e sulla latenza di lettura e scrittura nella tabella di origine, a condizione che i cluster abbiano dimensioni adeguate.

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 il sovraccarico di elaborazione, quindi li rimuove quando non sono più necessari. In questo modo, viene garantita la disponibilità di una capacità di calcolo sufficiente durante l'esecuzione della query SQL in esecuzione continua. La scalabilità automatica può anche garantire che tu abbia nodi sufficienti per gestire le esigenze di archiviazione delle viste materializzate continue.

Le visualizzazioni dei materiali vengono conteggiate ai fini del limite di 1000 tavole per istanza.

Archiviazione

Per ogni vista materializzata continua, Bigtable memorizza quanto segue:

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

Come per qualsiasi tabella Bigtable, esiste una vista materializzata continua su tutti i cluster dell'istanza che la contiene. I cluster nell'istanza devono avere nodi sufficienti per archiviare la tabella di origine e eventuali visualizzazioni materializzate continue basate sulla tabella. La scalabilità automatica garantisce che i cluster vengano aumentati o ridotti 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 viste materializzate continue

Una vista materializzata continua contiene i dati risultanti dalla query SQL su cui si basa. 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 tabella di origine, Bigtable utilizza lo spazio di archiviazione intermedio per archiviare le copie dei dati di cui ha bisogno per aggiornare in modo incrementale la vista materializzata continua.

La quantità di dati nello spazio di archiviazione intermedio è approssimativamente equivalente alla quantità di dati sottoposti a scansione 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 dell'intera tabella, Bigtable memorizza l'equivalente dell'intera tabella nello spazio di archiviazione intermedio. Una vista materializzata continua basata su una query di intervalli o colonne di chiavi di riga specifici conserva solo le righe o le colonne nello spazio di archiviazione intermedio.

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

Replica

Nelle istanze che utilizzano la replica, le viste materializzate continue non vengono replicate nello stesso modo delle tabelle. Invece, 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 visualizzazioni materializzate continue. Tuttavia, la creazione e la sincronizzazione delle viste materializzate continue richiedono elaborazione e archiviazione e ti verranno addebitate le tariffe standard. Quando crei una vista materializzata continua, puoi aspettarti un aumento di quanto segue:

  • Archiviazione: ti viene addebitato il costo per l'archiviazione dei dati nella vista materializzata continua e per l'archiviazione intermedia. Per ulteriori informazioni, consulta Spazio di archiviazione.
  • Computing: la sincronizzazione continua della tabella di origine e della vista materializzata continua richiede l'elaborazione della CPU e i tuoi cluster potrebbero richiedere più nodi per gestire il lavoro in background aggiuntivo.

Allo stesso tempo, potresti notare una diminuzione dell'elaborazione nella tabella di origine, ad esempio quando non esegui più scansioni dell'intervallo dei dati per eseguire calcoli ripetuti e altre query meno efficienti. Potresti anche eliminare la necessità di eseguire job di 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 delle visualizzazioni materializzate continue, consulta Metriche.

Metriche

Una vista materializzata continua registra in Cloud Logging diverse metriche chiave 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 lo spazio di archiviazione delle visualizzazioni materializzate continue 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 dai dati utente per la vista materializzata continua. Gli errori utente impediscono la propagazione dei dati alla visualizzazione.
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 visualizzazioni materializzate continue sono incluse nell'analisi dettagliata delle metriche della CPU, che può aiutarti a comprenderne l'impatto. Le metriche Bigtable per richieste al secondo, latenza e throughput vengono generate quando leggi una vista materializzata continua utilizzando il metodo ReadRows dell'API di dati. Per maggiori informazioni, consulta Metriche.

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

Limitazioni

  • 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 i criteri di garbage collection per una visualizzazione materializzata continua. Tutta la conservazione dei dati è regolata dalle norme di raccolta del garbage per la tabella di origine e la raccolta del garbage dell'origine viene applicata automaticamente alla vista materializzata continua.

Passaggi successivi