Introduzione alle viste materializzate

Le viste materializzate di BigQuery sono tabelle precalcolate che ottimizzano le prestazioni delle query e riducono i costi di esecuzione per le query prevedibili eseguite di frequente. Memorizzando periodicamente i risultati di una query, le viste materializzate risolvono la latenza delle query e i costi di scansione elevati quando si eseguono ripetutamente query su set di dati di grandi dimensioni con pattern di aggregazione prevedibili. Unendo automaticamente i dati precalcolati con le modifiche recenti nelle tabelle di base, le viste materializzate garantiscono risultati di query aggiornati senza richiedere pipeline di dati manuali.

Questo documento è destinato a data engineer, amministratori di database e sviluppatori di business intelligence (BI) che progettano pipeline di analisi ad alte prestazioni. Per implementare correttamente le viste materializzate, devi conoscere le strutture dei set di dati BigQuery, le funzioni di aggregazione GoogleSQL e le strutture dei costi delle query.

Vantaggi delle viste materializzate

I seguenti casi d'uso evidenziano il valore delle viste materializzate:

  • Pre-elaborazione dei dati. Migliora le prestazioni delle query preparando aggregazioni, filtri, join e cluster.
  • Accelerazione delle dashboard. Consenti agli strumenti di BI come Looker di eseguire query di frequente 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.

Caratteristiche principali

Le caratteristiche principali delle viste materializzate includono le seguenti:

  • Nessuna manutenzione. BigQuery precalcola le viste materializzate in background quando le tabelle di base cambiano. BigQuery aggiunge automaticamente le modifiche incrementali dei dati dalle tabelle di base alle viste materializzate, senza richiedere l'intervento dell'utente.
  • Dati aggiornati. Le viste materializzate restituiscono dati aggiornati. Se le modifiche alle tabelle di base potrebbero invalidare la vista materializzata, BigQuery legge i dati direttamente dalle tabelle di base. Se le modifiche alle tabelle di base non invalidano la vista materializzata, BigQuery legge il resto dei dati dalla vista materializzata e legge solo le modifiche dalle tabelle di base.

    Il seguente diagramma mostra la logica utilizzata per unire le modifiche dei dati in tempo reale:

    Logica di unione dell'aggiornamento dei dati in tempo reale.

  • Ottimizzazione intelligente. Se una parte di una query su una tabella di base può essere risolta eseguendo una query sulla vista materializzata, BigQuery reindirizza la query per utilizzare la vista materializzata al fine di migliorare le prestazioni e l'efficienza. Per informazioni su come e quando l'ottimizzazione intelligente può migliorare le query, consulta Utilizzare le viste materializzate.

    Il seguente diagramma mostra il flusso di lavoro di reindirizzamento delle query dell'ottimizzazione intelligente:

    Workflow di reindirizzamento delle query di ottimizzazione intelligente.

Tipi di viste materializzate

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 viste materializzate non incrementali supportano la maggior parte delle sintassi non supportate dalle viste materializzate incrementali.

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 di vista materializzata migliore da utilizzare dipende dalla tua situazione. La seguente tabella mette a confronto le funzionalità delle viste materializzate incrementali e non incrementali:

Category Incremental Non-incremental
Query supportata Limitata La 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 l'ottimizzazione intelligente Supportato per la maggior parte delle query delle viste. No
Risultati sempre aggiornati Supportato. Le viste incrementali restituiscono risultati di query aggiornati anche se le tabelle di base sono state modificate dall'ultimo aggiornamento. No

Viste materializzate autorizzate

Puoi creare una vista materializzata 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. Le entità 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, consulta Viste 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 mostra quali viste materializzate vengono scansionate (se presenti) e 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 streaming nelle tabelle di base e così via).

  • Limitazione dei costi. Se specifichi il numero massimo di byte fatturati e una query legge dati oltre questo limite, la query non riesce senza comportare addebiti, indipendentemente dal fatto che la query utilizzi viste materializzate, tabelle di base o entrambe.

  • Stima dei costi utilizzando il test dry run. Un test 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.

  • Replica dei dati tra regioni. Le viste materializzate possono essere create su tabelle BigQuery con la replica tra regioni abilitata, ma solo nella regione primaria. Se utilizzi la regione secondaria, potresti visualizzare il seguente messaggio di errore: The dataset replica of the cross region dataset {PROJECT}:{DATASET} in region {REGION} is read-only because it's not the primary replica.

Oltre a queste funzionalità, puoi creare viste materializzate su tabelle con funzionalità specifiche, come descritto nelle sezioni seguenti.

Tabelle con Change Data Capture attivo

Puoi creare viste materializzate su tabelle con Change Data Capture (CDC) attivo, un pattern utilizzato per importare continuamente le modifiche di database o tabelle. Queste viste materializzate funzionano come le viste materializzate sulle tabelle BigQuery, inclusi i vantaggi dell'aggiornamento automatico. Le viste materializzate non possono eseguire query di unione in fase di runtime, pertanto devi configurarle con un valore sufficiente max_staleness per evitare job di unione in fase di runtime. Per ulteriori informazioni, consulta Limitazioni delle viste materializzate su tabelle con Change Data Capture attivo.

Prezzi delle viste materializzate

Le viste materializzate comportano costi nei seguenti modi:

  • Esecuzione di query sulle viste materializzate.
  • Manutenzione delle viste materializzate, ad esempio quando vengono aggiornate. Il costo dell'aggiornamento automatico viene addebitato al progetto in cui risiede la vista. Il costo dell'aggiornamento manuale viene addebitato al progetto in cui viene eseguito il job di aggiornamento manuale. Per ulteriori informazioni sul controllo dei costi di manutenzione, consulta Manutenzione dei job di aggiornamento.
  • Archiviazione delle tabelle delle vista materializzata.

La seguente tabella illustra i componenti dei prezzi per le viste materializzate:

Componente Prezzi on demand Prezzi basati sulla capacità
Esecuzione di query Byte elaborati dalle viste materializzate e da eventuali parti necessarie delle tabelle di base.1 Gli slot vengono utilizzati durante il tempo di esecuzione delle 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.

1 Se possibile, BigQuery legge solo le modifiche apportate da ll'ultimo aggiornamento della vista. Per maggiori dettagli, consulta Aggiornamenti incrementali.

Dettagli sui costi di archiviazione

Il modo in cui BigQuery archivia determinati valori aggregati influisce sul calcolo delle dimensioni di archiviazione. Per i valori aggregati AVG, ARRAY_AGG e APPROX_COUNT_DISTINCT in una vista materializzata, il valore finale non viene archiviato direttamente. Invece, BigQuery archivia internamente una vista materializzata come uno sketch intermedio, 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

Sebbene la colonna avg_paid venga visualizzata come NUMERIC o FLOAT64, internamente viene archiviata come BYTES, con il suo contenuto come sketch intermedio in un formato proprietario. Per il calcolo delle dimensioni dei dati, la colonna viene trattata come BYTES.

Workflow di configurazione

La configurazione delle viste materializzate prevede il seguente workflow:

  1. Progettazione e verifica della query. Crea la query di aggregazione utilizzando le linee guida di GoogleSQL.
  2. Creazione della vista materializzata. Esegui l'istruzione CREATE MATERIALIZED VIEW utilizzando la Google Cloud console, lo strumento a riga di comando bq o l'API BigQuery.
  3. Esecuzione dell'ottimizzazione intelligente. BigQuery reindirizza automaticamente le query sulla tabella di base per utilizzare la vista materializzata. Non è necessario riscrivere le destinazioni di query o applicazioni.

Per iniziare a creare, consulta Creare viste materializzate.

Passaggi successivi