Introduzione alle viste materializzate
Le viste materializzate sono viste precalcolate che memorizzano periodicamente i risultati di una query SQL. In alcuni casi d'uso, le viste materializzate riducono il tempo di elaborazione totale e gli addebiti correlati riducendo la quantità di dati da analizzare per ogni query. Puoi eseguire query sulle viste materializzate come faresti con altre risorse di dati.
I seguenti casi d'uso evidenziano il valore delle 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 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.
Le caratteristiche principali delle viste materializzate includono:
- Nessuna manutenzione. Le viste materializzate vengono precalcolate in background quando le tabelle di base cambiano. Tutte le modifiche incrementali dei dati delle tabelle di base vengono aggiunte automaticamente alle viste materializzate, senza che sia necessaria alcuna azione da parte dell'utente.
- Dati aggiornati. Le viste materializzate restituiscono dati aggiornati. Se le modifiche alle tabelle di base potrebbero invalidare la vista materializzata, i dati vengono letti direttamente dalle tabelle di base. Se le modifiche alle tabelle di base non invalidano la vista materializzata, il resto dei dati viene letto dalla vista materializzata e solo le modifiche vengono lette dalle tabelle di base.
- Ottimizzazione intelligente. Se una parte di una query su una tabella di base può essere risolta eseguendo query sulla vista materializzata, BigQuery reindirizza la query per utilizzare la vista materializzata per migliorare le prestazioni e l'efficienza. Per informazioni su come e quando l'ottimizzazione intelligente può migliorare le query, vedi Utilizzare le viste materializzate.
Viste materializzate incrementali e non incrementali
Esistono due tipi di base di viste materializzate:
- Le viste materializzate incrementali supportano un insieme limitato di funzionalità. Per scoprire di più sulla sintassi SQL supportata per le viste materializzate, consulta Creare viste materializzate. Solo le viste materializzate incrementali possono sfruttare l'ottimizzazione intelligente.
- Le funzioni non incrementali supportano la maggior parte delle sintassi che le viste materializzate incrementali non supportano.
Quando crei viste materializzate, per impostazione predefinita BigQuery ti consente di creare solo
viste basate su query incrementali. Per creare una vista non incrementale, puoi
specificare allow_non_incremental_definition = true nella definizione
della vista materializzata.
Il tipo migliore di vista materializzata da utilizzare dipende dalla situazione. La seguente tabella mette a confronto le funzionalità delle viste materializzate incrementali e non incrementali:
| Category | Incrementale | Non incrementale |
|---|---|---|
| Query supportata | Limitata | Maggior parte delle query |
| Costo di manutenzione | Può ridurre il costo delle query utilizzate di frequente. Per scoprire come vengono aggiornate le viste materializzate, consulta aggiornamenti incrementali. | Ogni aggiornamento esegue la query completa. |
| Supporto per la sintonizzazione intelligente | Supportato per la maggior parte delle query sulle visualizzazioni. | No |
| Risultati sempre aggiornati | Supportato. Le visualizzazioni incrementali restituiscono risultati della query aggiornati anche quando le tabelle di base sono cambiate dall'ultimo aggiornamento. | No |
Viste materializzate autorizzate
Puoi creare una vista materializzata autorizzata per condividere un sottoinsieme di dati di un set di dati di origine con una vista in un set di dati secondario. Puoi quindi condividere questa visualizzazione con utenti e gruppi specifici (principal) che possono visualizzare i dati che condividi. I principal possono eseguire query sui dati che fornisci in una vista, ma non possono accedere direttamente al set di dati di origine.
Le viste autorizzate e le viste materializzate autorizzate vengono autorizzate nello stesso modo. Per maggiori dettagli, vedi Visualizzazioni autorizzate.
Interazione con altre funzionalità di BigQuery
Le seguenti funzionalità di BigQuery funzionano in modo trasparente con le viste materializzate:
Spiegazione del piano di query: il piano di query riflette le viste materializzate scansionate (se presenti) e mostra quanti byte vengono letti dalle viste materializzate e dalle tabelle di base combinate.
Memorizzazione nella cache delle query: i risultati di una query che BigQuery riscrive utilizzando una vista materializzata possono essere memorizzati nella cache in base alle limitazioni consuete (utilizzo di funzioni deterministiche, nessun flusso nelle tabelle di base e così via).
Limitazione dei costi: Se hai impostato un valore per i byte fatturati massimi e una query legge un numero di byte superiore al limite, la query non riesce senza comportare addebiti, indipendentemente dal fatto che utilizzi viste materializzate, le tabelle di base o entrambe.
Stima dei costi utilizzando dry run: un dry run ripete la logica di riscrittura delle query utilizzando le viste materializzate disponibili e fornisce una stima dei costi. Puoi utilizzare questa funzionalità per verificare se una query specifica utilizza viste materializzate.
Prezzi delle viste materializzate
I costi sono associati ai seguenti aspetti delle viste materializzate:
- Eseguire query sulle viste materializzate.
- Manutenzione delle viste materializzate, ad esempio quando vengono aggiornate. Il costo dell'aggiornamento automatico viene fatturato al progetto in cui si trova la vista. Il costo dell'aggiornamento manuale viene addebitato al progetto in cui viene eseguito il job di aggiornamento manuale. Per saperne di più sul controllo dei costi di manutenzione, consulta Manutenzione dei job di aggiornamento.
- Memorizzazione delle tabelle delle vista materializzata.
| Componente | Prezzi on demand | Prezzi basati sulla capacità |
|---|---|---|
| Esecuzione di query | Byte elaborati dalle viste materializzate e da qualsiasi parte necessaria delle tabelle di base.1 | Gli slot vengono utilizzati durante il tempo di esecuzione della query. |
| Manutenzione | Byte elaborati durante il tempo di aggiornamento. | Gli slot vengono utilizzati durante il tempo di aggiornamento. |
| Archiviazione | Byte archiviati nelle viste materializzate. | Byte archiviati nelle viste materializzate. |
1Se possibile, BigQuery legge solo le modifiche apportate dall'ultimo aggiornamento della vista. Per ulteriori informazioni, vedi Aggiornamenti incrementali.
Dettagli sui costi di archiviazione
Per i valori aggregati di AVG, ARRAY_AGG e APPROX_COUNT_DISTINCT in una
vista materializzata, il valore finale non viene memorizzato direttamente. BigQuery memorizza internamente una vista materializzata come schizzo intermedio, che viene utilizzato per produrre il valore finale.
Ad esempio, considera una vista materializzata creata con il seguente comando:
CREATE MATERIALIZED VIEW project-id.my_dataset.my_mv_table AS SELECT date, AVG(net_paid) AS avg_paid FROM project-id.my_dataset.my_base_table GROUP BY date
Mentre la colonna avg_paid viene visualizzata come NUMERIC o FLOAT64 per l'utente, internamente viene memorizzata come BYTES, con i suoi contenuti che sono uno schizzo intermedio in formato proprietario. Per il calcolo delle dimensioni dei dati,
la colonna viene trattata come BYTES.