Introduzione alle viste materializzate

Questo documento fornisce una panoramica del supporto di BigQuery per le viste materializzate. Prima di leggere questo documento, acquisisci familiarità con BigQuery e le viste logiche di BigQuery.

Panoramica

In BigQuery, le viste materializzate sono viste precalcolate che memorizzano periodicamente nella cache i risultati di una query per aumentare le prestazioni e l'efficienza. BigQuery sfrutta i risultati precalcolati delle viste materializzate e quando è possibile legge solo le modifiche dalle tabelle di base per calcolare risultati aggiornati. È possibile eseguire query sulle viste materializzate direttamente o possono essere utilizzate dall'ottimizzatore BigQuery per elaborare le query sulle tabelle di base.

Le query che utilizzano le viste materializzate sono generalmente più veloci e consumano meno risorse rispetto alle query che recuperano gli stessi dati solo dalle tabelle di base. Le viste materializzate possono migliorare notevolmente le prestazioni dei carichi di lavoro che hanno le caratteristiche di query comuni e ripetute.

Di seguito sono riportate le caratteristiche principali delle viste materializzate:

  • Nessuna manutenzione. Le viste materializzate sono precalcolate in background quando cambiano le tabelle di base. Eventuali modifiche incrementali ai dati dalle tabelle di base vengono aggiunte automaticamente alle viste materializzate, senza che sia richiesta 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 qualsiasi parte di una query sulla tabella di base può essere risolta eseguendo una query sulla vista materializzata, BigQuery reindirizza la query in modo che utilizzi la vista materializzata per migliorare le prestazioni e l'efficienza.

Casi d'uso

Le viste materializzate possono ottimizzare le query con costi di calcolo elevati e piccoli risultati di set di dati. I processi che beneficiano delle viste materializzate includono le operazioni di elaborazione analitica online (OLAP) che richiedono un'elaborazione significativa con query prevedibili e ripetute come quelle provenienti da processi di estrazione, trasformazione e caricamento (ETL) o pipeline di business intelligence (BI).

I seguenti casi d'uso evidenziano il valore delle viste materializzate. Le viste materializzate possono migliorare le prestazioni delle query se richiedi spesso quanto segue:

  • Dati preaggregati. Aggregazione dei dati in modalità flusso.
  • Esegui il prefiltro dei dati. Eseguire query che leggono solo un determinato sottoinsieme della tabella.
  • Pre-unione dei dati. Esegui join di query, in particolare tra tabelle grandi e piccole.
  • Ricluster i dati. Eseguire query che potrebbero trarre vantaggio da uno schema di clustering diverso dalle tabelle di base.

Confronto con altre tecniche di BigQuery

La tabella seguente riassume le somiglianze e le differenze tra la memorizzazione nella cache di BigQuery, le query pianificate, le viste logiche e le viste materializzate.

Componente Memorizzazione nella cache Query programmate Viste logiche Viste materializzate
Ottimizza il calcolo No No
Supporto delle query Tutti Tutti Tutti Limitata1
Partizionamento e clustering No N/A
Aggiornamento incrementale No No No
Spazio di archiviazione aggiuntivo No No
Riscrittura query No No No
Costi di manutenzione No N/A
In ritardo dei dati Mai Mai Facoltativo2

1 L'opzione --allow_non_incremental_definition supporta un intervallo esteso di query SQL per creare viste materializzate.

2 L'opzione --max_staleness offre prestazioni costantemente elevate con costi controllati durante l'elaborazione di set di dati di grandi dimensioni e che cambiano di frequente.

Interazione con altre funzionalità di BigQuery

Le seguenti funzionalità di BigQuery operano in modo trasparente con le viste materializzate:

  • Spiegazione del piano di query: il piano di query riflette le eventuali viste materializzate analizzate (se presenti) e mostra il numero di byte letti dalle viste materializzate e dalle tabelle di base combinate.

  • Memorizzazione nella cache delle query: i risultati di una query riscritti da BigQuery utilizzando una vista materializzata possono essere memorizzati nella cache soggetti alle consuete limitazioni (utilizzo di funzioni deterministiche, nessun flusso di dati nelle tabelle di base e così via).

  • Limitazione dei costi: se hai impostato un valore per il numero massimo di byte fatturati e una query legge un numero di byte oltre il limite, la query non va a buon fine senza comportare addebiti, indipendentemente dal fatto che utilizzi viste materializzate, tabelle di base o entrambe.

  • Stima dei costi utilizzando dry run: una prova 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 delle viste materializzate.

Tabelle abilitate per la cache dei metadati BigLake

Le viste materializzate sulle tabelle abilitate per la cache dei metadati BigLake possono fare riferimento a dati strutturati archiviati in Cloud Storage e Amazon Simple Storage Service (Amazon S3). Queste viste materializzate funzionano come le viste materializzate sulle tabelle di archiviazione gestite da BigQuery, compresi i vantaggi dell'aggiornamento automatico e dell'ottimizzazione intelligente. Altri vantaggi includono la pre-aggregazione, il pre-filtro e il pre-join dei dati archiviati al di fuori di BigQuery. Le viste materializzate sulle tabelle BigLake vengono archiviate e hanno tutte le caratteristiche dell'archiviazione gestita da BigQuery.

Quando crei una vista materializzata su una tabella Amazon S3 BigLake, i dati nella vista materializzata non sono disponibili per i join con i dati BigQuery. Per rendere disponibili per i join i dati Amazon S3 in una vista materializzata, crea una replica della vista materializzata. Puoi creare repliche delle vista materializzata solo sulle viste dei materiali autorizzate.

Repliche di viste materializzate

BigQuery consente di creare viste materializzate su tabelle abilitate per la cache di metadati BigLake sui dati Amazon Simple Storage Service (Amazon S3).

Una replica della vista materializzata ti consente di utilizzare i dati della vista materializzata di Amazon S3 nelle query, evitando i costi del traffico in uscita dei dati e migliorando le prestazioni delle query. Per farlo, una replica della vista materializzata replica i dati di Amazon S3 in un set di dati in un'area geografica BigQuery supportata, in modo che i dati siano disponibili localmente in BigQuery.

Scopri come creare vista materializzata materializzate.

Aggiornamento dei dati

Dopo che hai creato la replica della vista materializzata, il processo di replica esegue il polling della vista materializzata di origine per individuare eventuali modifiche e replica i dati nella replica della vista materializzata. I dati vengono replicati all'intervallo specificato nell'opzione replication_interval_seconds dell'istruzione CREATE MATERIALIZED VIEW AS REPLICA OF.

Oltre all'intervallo di replica, l'aggiornamento dei dati delle repliche della vista materializzata dipende anche dalla frequenza di aggiornamento della vista materializzata di origine e dalla frequenza di aggiornamento della cache dei metadati della tabella Amazon S3 utilizzata dalla vista materializzata.

Puoi verificare l'aggiornamento dei dati per la replica della vista materializzata e le risorse su cui si basa utilizzando la console Google Cloud:

  • Per l'aggiornamento della replica della vista materializzata, controlla il campo Ultima modifica nel riquadro Dettagli della replica della vista materializzata.
  • Per l'aggiornamento della vista materializzata di origine, controlla il campo Ultima modifica nel riquadro Dettagli della vista materializzata.
  • Per l'aggiornamento della cache dei metadati della tabella Amazon S3 di origine, controlla il campo Massima inattività nel riquadro Dettagli della vista materializzata.

Aree geografiche supportate

Utilizza le mappature delle località nella tabella seguente quando crei repliche delle viste materializzate:

Posizione della vista materializzata dell'origine Posizione della replica della vista materializzata
aws-us-east-1 US multiregionale o una delle seguenti regioni:
  • northamerica-northeast1
  • northamerica-northeast2
  • us-central1
  • us-east1
  • us-east4
  • us-east5
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4
aws-us-west-2 US multiregionale o una delle seguenti regioni:
  • northamerica-northeast1
  • northamerica-northeast2
  • us-central1
  • us-east1
  • us-east4
  • us-east5
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4
aws-eu-west-1 EU multiregionale o una delle seguenti regioni:
  • europe-central2
  • europe-north1
  • europe-southwest1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • europe-west8
  • europe-west9
  • europe-west10
aws-ap-northeast-2 Una qualsiasi delle seguenti regioni:
  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-south2
  • asia-southeast1

Limitazioni

  • Potrebbero essere applicati limiti ai riferimenti alla tabella di base e altre restrizioni. Per ulteriori informazioni sui limiti delle vista materializzata, consulta Quote e limiti.
  • I dati di una vista materializzata non possono essere aggiornati o manipolati direttamente utilizzando operazioni come COPY, EXPORT, LOAD, WRITE o istruzioni DML (Data Manipulation Language).
  • Non puoi sostituire una vista materializzata esistente con una vista materializzata con lo stesso nome.
  • L'SQL della vista non può essere aggiornato dopo la creazione della vista materializzata.
  • Una vista materializzata deve risiedere nella stessa organizzazione delle relative tabelle di base o nello stesso progetto se il progetto non appartiene a un'organizzazione.
  • Solo le viste materializzate dello stesso set di dati vengono prese in considerazione per l'ottimizzazione intelligente.
  • Le viste materializzate utilizzano una sintassi SQL limitata e un insieme limitato di funzioni di aggregazione. Per maggiori informazioni, consulta Visualizzazioni materializzate supportate.
  • Le viste materializzate non possono essere nidificate in altre viste materializzate.
  • Le viste materializzate non possono eseguire query su tabelle esterne o con caratteri jolly, viste logiche1, snapshot o tabelle abilitate all'acquisizione di dati per modifiche.
  • Per le viste materializzate è supportato solo il dialetto GoogleSQL.
  • Puoi impostare le descrizioni per le viste materializzate, ma non puoi impostare le descrizioni per le singole colonne nella vista materializzata.
  • Se elimini una tabella di base senza prima eliminare la vista materializzata, le query e gli aggiornamenti della vista materializzata non riusciranno. Se ricrei la tabella di base, devi ricreare anche la vista materializzata.

1 Il supporto dei riferimenti della vista logica è in anteprima. Per maggiori informazioni, consulta Visualizzazioni logiche di riferimento.

Limitazioni delle viste materializzate rispetto alle tabelle BigLake

  • Il partizionamento della vista materializzata non è supportato. Le tabelle di base possono utilizzare il partizionamento hive, ma l'archiviazione della vista materializzata non può essere partizionata nelle tabelle BigLake. Ciò significa che qualsiasi eliminazione in una tabella di base causa un aggiornamento completo della vista materializzata. Per maggiori dettagli, consulta Aggiornamenti incrementali.
  • Il valore dell'opzione -max_staleness della vista materializzata deve essere maggiore di quello della tabella di base BigLake.
  • I join tra tabelle gestite BigQuery e tabelle BigLake non sono supportati in una singola definizione di vista materializzata.

Limitazioni delle repliche delle vista materializzata

Prezzi delle viste materializzate

I costi sono associati ai seguenti aspetti delle viste materializzate:

  • Esecuzione di query sulle viste materializzate.
  • Mantenere le viste materializzate, ad esempio quando le viste materializzate vengono aggiornate. Il costo dell'aggiornamento automatico viene fatturato al progetto in cui si trova la vista. Il costo dell'aggiornamento manuale viene fatturato al progetto in cui viene eseguito il job di aggiornamento manuale. Per maggiori informazioni sul controllo dei costi di manutenzione, consulta Aggiornare la manutenzione del job.
  • Archiviazione delle tabelle delle vista materializzata.
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 consumati durante la query.
Manutenzione Byte elaborati durante il tempo di aggiornamento. Gli slot vengono consumati durante il tempo di aggiornamento.
Archiviazione Byte archiviati nelle viste materializzate. Byte archiviati nelle viste materializzate.

1 Dove possibile, BigQuery legge solo le modifiche dall'ultimo aggiornamento della vista. Per maggiori informazioni, consulta la pagina Aggiornamenti incrementali.

Dettagli dei costi di archiviazione

Per i valori aggregati di AVG, ARRAY_AGG e APPROX_COUNT_DISTINCT in una vista materializzata, il valore finale non viene archiviato direttamente. Al contrario, BigQuery archivia internamente una vista materializzata come schizzo 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

Mentre la colonna avg_paid viene visualizzata come NUMERIC o FLOAT64 per l'utente, viene archiviata internamente 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.

Costi della replica della vista materializzata

L'utilizzo di repliche di vista materializzata comporta costi di elaborazione, trasferimento di dati in uscita e archiviazione.

Passaggi successivi