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 visualizzazioni condividano un'interfaccia comune, i meccanismi sottostanti, i profili di rendimento e le implicazioni sui costi differiscono.

Viste logiche

Una vista logica (standard) è una tabella virtuale definita da una query SQL. Non memorizza dati fisici. Memorizza invece la logica di 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 esegue nuovamente la vista ogni volta che viene chiamata.

I vantaggi delle visualizzazioni logiche includono:

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

Viste materializzate

Le viste materializzate sono viste precalcolate che memorizzano periodicamente i risultati di una query SQL. A differenza delle viste logiche, archiviano fisicamente i dati calcolati, il che consente a BigQuery di fornire risultati più rapidamente senza elaborare ripetutamente i dati di base non elaborati. Ciò 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 visualizzazioni materializzate BigQuery combinano la velocità dei dati precalcolati con l'accuratezza di una visualizzazione in tempo reale. A tal fine:

  • Aggiornamento automatico. Un processo in background aggiorna le viste materializzate quando cambiano le tabelle di base.
  • Aggiornamento dei dati. Se viene eseguita una query mentre è in attesa un aggiornamento in background, BigQuery compensa automaticamente le modifiche alla tabella di base non elaborate per fornire risultati aggiornati.
  • Sintonizzazione intelligente. L'ottimizzatore delle 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 con un costo di calcolo elevato, 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 le prestazioni.

La seguente tabella riassume 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) Fisico (memorizzato su disco)
Esecuzione Ogni volta che viene chiamata la vista Precalcolati; aggiornamento in background
Dati inattivi Mai Facoltativo 1 (tramite aggiornamento)
Prestazioni Variabile (dipendente dalla tabella di base) Coerente e veloce
Complessità SQL Illimitato Limitata
Ottimizzato per Sicurezza e astrazione Riduzione di velocità e costi
Costi di manutenzione e archiviazione No

1 L'opzione --max_staleness migliora le prestazioni delle query con costi controllati durante l'elaborazione di set di dati di grandi dimensioni e in continua evoluzione.

Quando utilizzare le visualizzazioni logiche

  • Livelli semantici. Rinomina i nomi delle colonne complessi in termini adatti alle aziende per gli utenti non tecnici.
  • Sviluppo rapido. Utilizza questa opzione quando la logica è in continua evoluzione e non vuoi gestire l'overhead dello spazio di archiviazione fisico.
  • Origini dati consolidate. Fornisci un'origine dati per gli strumenti di visualizzazione come Looker Studio o BigQuery sharing (in precedenza Analytics Hub).

Quando utilizzare le viste materializzate

  • Pre-elabora i dati. Migliora le prestazioni delle query preparando aggregazioni, filtri, join e cluster.
  • Accelerazione della dashboard. Potenzia gli strumenti di BI come Looker che interrogano spesso le stesse metriche aggregate, ad esempio gli utenti attivi giornalieri.
  • Analisi in tempo reale su flussi di grandi dimensioni. Può fornire risposte più rapide sulle tabelle che ricevono dati di streaming ad alta velocità.
  • Gestione dei costi. Ridurre 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 visualizzazione in un set di dati secondario. Puoi quindi condividere questa vista con utenti e gruppi (principal) specifici che possono visualizzare i dati che condividi ed eseguire query, 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