Panoramica delle viste logiche e materializzate
BigQuery supporta due tipi di viste, logiche (standard) e viste materializzate, che condividono un'interfaccia di query comune, ma differiscono per meccanismi, prestazioni e costi sottostanti. Questo documento mette a confronto le caratteristiche, i vantaggi e le limitazioni di ogni tipo per aiutarti a scegliere la visualizzazione giusta per il tuo workload.
Viste logiche
Una vista logica (standard) è una tabella virtuale definita da una query SQL. Non memorizza dati fisici. Archivia invece la logica di query richiesta per recuperare i dati dalle tabelle di base sottostanti. Quando esegui una query su una vista logica, il motore di query di BigQuery espande la vista nella query sottostante. Questo processo significa che BigQuery esegue nuovamente 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 per l'archiviazione delle tabelle di base.
- Accuratezza in tempo reale. Poiché la query viene eseguita in fase di esecuzione, i risultati riflettono sempre lo stato più aggiornato 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 i risultati più velocemente senza elaborare ripetutamente i dati di base non elaborati. Ciò può ridurre la latenza delle query per 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 l'accuratezza di una vista in tempo reale. Per farlo, utilizzano:
- 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. Query Optimizer può cambiare automaticamente il percorso delle 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 sono definite utilizzando SQL, come una vista logica, ma archiviano fisicamente i dati che BigQuery utilizza per migliorare le prestazioni.
La seguente tabella riassume le analogie e le differenze tra le viste logiche e le viste materializzate di BigQuery:
| Dimensione | Vista logica | Vista materializzata |
|---|---|---|
| Persistenza dei dati | Nessuno (virtuale) | Fisica (archiviata su disco) |
| Esecuzione | Ogni volta che viene chiamata la vista | Precalcolati; aggiornamento in background |
| Data Staleness | Mai | Facoltativo 1 (tramite aggiornamento) |
| Prestazioni | Variabile (dipendente dalla tabella di base) | Coerenza e velocità |
| Complessità SQL | Illimitato | Limitata |
| Ottimizzato per | Sicurezza e astrazione | Velocità e riduzione dei costi |
| Costi di manutenzione e archiviazione | No | Sì |
1 L'opzione --max_staleness migliora le prestazioni delle query con costi controllati durante l'elaborazione di set di dati di grandi dimensioni che cambiano di frequente.
Quando utilizzare le viste logiche
- Livelli semantici. Rinomina i nomi delle colonne complesse in termini di facile comprensione per gli utenti non tecnici.
- Sviluppo rapido. Utilizzala quando la logica è in evoluzione e non vuoi gestire l'overhead dello spazio di archiviazione fisico.
- Origini dati consolidate. Fornire un'origine dati per strumenti di visualizzazione come Data Studio o BigQuery Sharing (precedentemente 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. Potenziare 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 su tabelle che ricevono dati in modalità flusso ad alta velocità.
- Gestione dei costi. Riduci il costo di 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 specifici (entità) 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 utilizzarle come strumento di ottimizzazione delle prestazioni per pattern di query specifici con traffico elevato che comportano un'aggregazione pesante.
Per scoprire come monitorare l'utilizzo e le prestazioni delle viste materializzate, consulta Vista MATERIALIZED_VIEWS.