Panoramica delle viste logiche e materializzate

Questo documento descrive e confronta le viste logiche e materializzate in BigQuery. Nel data warehousing moderno, le viste fungono da importante livello di astrazione tra i dati non elaborati e la business intelligence. In BigQuery, gli architetti in genere scelgono tra due tipi: viste logiche (standard) e viste materializzate. Sebbene queste viste condividano un'interfaccia comune, i meccanismi sottostanti, i profili di rendimento e le implicazioni sui costi sono diversi.

Viste logiche

Una vista logica (standard) è una tabella virtuale definita da una query SQL. Non archivia dati fisici. Memorizza invece la logica della query necessaria per recuperare i dati dalle tabelle di base sottostanti. Quando esegui una query su una vista logica, il motore di query BigQuery espande la vista nella query sottostante. Questo processo significa che BigQuery riesegue la vista ogni volta che viene chiamata.

I vantaggi delle viste logiche includono:

  • Nessun overhead di archiviazione. Poiché non vengono archiviati dati aggiuntivi, paghi solo l'archiviazione delle tabelle di base.
  • Precisione in tempo reale. Poiché la query viene eseguita in fase di esecuzione, i risultati riflettono sempre lo stato più attuale delle tabelle di base.
  • Astrazione logica. Semplifica i join complessi o applica la sicurezza a livello di riga senza duplicare i dati.
  • Flessibilità SQL. Supporta l'intera gamma di SQL BigQuery, incluse funzioni finestra complesse, funzioni definite dall'utente (UDF) e tutti i tipi di join.

Viste materializzate

Le viste materializzate sono viste precalcolate che archiviano periodicamente i risultati di una query SQL. A differenza delle viste logiche, archiviano fisicamente i dati calcolati, il che consente a BigQuery di pubblicare i risultati più rapidamente senza elaborare ripetutamente i dati di base non elaborati. Questo può ridurre la latenza delle query per i set di dati di grandi dimensioni pre-elaborando le query e può ridurre i costi di calcolo per le query utilizzate di frequente.

Le viste materializzate di BigQuery combinano la velocità dei dati precalcolati con la precisione di una vista live. Questo risultato si ottiene grazie a:

  • Aggiornamento automatico. Un processo in background aggiorna le viste materializzate quando le tabelle di base cambiano.
  • Aggiornamento dei dati. Se una query viene eseguita mentre è in attesa un aggiornamento in background, BigQuery compensa automaticamente le modifiche non elaborate della tabella di base per fornire risultati aggiornati.
  • Ottimizzazione intelligente. L'ottimizzatore di query può reindirizzare automaticamente le query dalle tabelle di base alla vista materializzata se determina che la vista materializzata può fornire la risposta in modo più efficiente.

Confronto tra viste logiche e materializzate

Sebbene le viste logiche siano il tipo di vista predefinito, se esegui spesso query su una vista di grandi dimensioni o costosa dal punto di vista computazionale, ti consigliamo di creare una vista materializzata. Le viste logiche sono virtuali e forniscono un riferimento riutilizzabile a un insieme di dati, ma non archiviano fisicamente alcun dato. Le viste materializzate vengono definite utilizzando SQL, come una vista logica, ma archiviano fisicamente i dati che BigQuery utilizza per migliorare il rendimento.

La seguente tabella riepiloga le somiglianze e le differenze tra le viste logiche e le viste materializzate di BigQuery:

Dimensione Vista logica Vista materializzata
Persistenza dei dati Nessuna (virtuale) Fisica (archiviata su disco)
Esecuzione Ogni volta che viene chiamata la vista Precalcolata; aggiornamento in background
Dati inattivi Mai Facoltativo 1 (tramite aggiornamento)
Rendimento Variabile (dipende dalla tabella di base) Coerente e veloce
Complessità SQL Illimitata Limitata
Ottimizzata per Sicurezza e astrazione Velocità e riduzione dei costi
Costi di manutenzione e archiviazione No

1 L'--max_staleness opzione migliora il rendimento delle query con costi controllati durante l'elaborazione di set di dati di grandi dimensioni che cambiano di frequente.

Quando utilizzare le viste logiche

  • Livello semantico. Rinomina i nomi delle colonne complesse in termini di facile utilizzo per gli utenti non tecnici.
  • Sviluppo rapido. Utilizza questa opzione quando la logica è in continua evoluzione e non vuoi gestire l'overhead dell'archiviazione fisica.
  • Origini dati consolidate. Fornisci un'origine dati per gli strumenti di visualizzazione come Data Studio o BigQuery sharing (in precedenza Analytics Hub).

Quando utilizzare le viste materializzate

  • Pre-elabora i dati. Migliora il rendimento delle query preparando aggregazioni, filtri, join e cluster.
  • Accelerazione della dashboard. Potenzia gli strumenti di BI come Looker che eseguono spesso query sulle stesse metriche aggregate, ad esempio gli utenti attivi giornalieri.
  • Analisi in tempo reale su stream di grandi dimensioni. Può fornire risposte più rapide sulle tabelle che ricevono dati di streaming ad alta velocità.
  • Gestione dei costi. Riduci il costo delle query ripetitive e costose su set di dati di grandi dimensioni.

Visualizzazioni autorizzate

Puoi anche creare una vista autorizzata per condividere un sottoinsieme di dati da un set di dati di origine a una vista in un set di dati secondario. Puoi quindi condividere questa vista con utenti e gruppi (entità) specifici che possono visualizzare i dati che condividi ed eseguire query su di essi, ma che non possono accedere direttamente al set di dati di origine.

Puoi creare una vista autorizzata per una vista logica o materializzata. Una vista autorizzata per una vista materializzata è chiamata vista materializzata autorizzata.

Best practice

Per un ambiente BigQuery ben progettato, le viste logiche sono uno strumento utile per consolidare i dati di cui hai bisogno. Riserva le viste materializzate per l'utilizzo come strumento di ottimizzazione del rendimento per pattern di query specifici e ad alto traffico che comportano un'aggregazione elevata.

Per scoprire come monitorare l'utilizzo e il rendimento delle viste materializzate, consulta la vista MATERIALIZED_VIEWS.

Passaggi successivi