Introduzione alle viste materializzate

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

Panoramica

In BigQuery, le viste materializzate sono viste precalcolate che memorzzano nella cache i risultati di una query periodicamente per migliorare le prestazioni e l'efficienza. BigQuery sfrutta i risultati precalcolati dalle viste materializzate e se possibile legge solo le modifiche apportate alle tabelle di base per calcolare i risultati aggiornati. È possibile eseguire query direttamente sulle viste materializzate oppure l'ottimizzatore BigQuery può usare le viste materializzate per elaborare le query sulle tabelle di base.

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

Di seguito sono riportate le caratteristiche principali delle visualizzazioni materializzate:

  • Nessuna manutenzione. Le viste materializzate vengono precalcolate in background quando le tabelle di base cambiano. Eventuali modifiche incrementali dei dati delle tabelle di base vengono aggiunte automaticamente alle visualizzazioni con dati materiali, senza 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 rendono non valida 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 qualsiasi parte di una query sulla tabella di base può essere risolta eseguendo una query sulla vista materializzata, BigQuery reindirizza la query in modo da utilizzare la vista materializzata per migliorare le prestazioni e l'efficienza.

Casi d'uso

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

I seguenti casi d'uso mettono in evidenza il valore delle visualizzazioni con dati memorizzati. Le viste materializzate possono migliorare le prestazioni delle query se hai spesso bisogno di quanto segue:

  • Dati preaggregati. Aggregazione dei dati in streaming.
  • Prefiltra i dati. Esegui query che leggono solo un determinato sottoinsieme della tabella.
  • Dati precedenti all'unione. Esegui query sui join, in particolare tra tabelle grandi e piccole.
  • Esegui il ricoinvolgimento dei dati. Esegui query che potrebbero trarre vantaggio da uno schema di clustering diverso da quello delle tabelle di base.

Confronto con altre tecniche BigQuery

La seguente tabella 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 Visualizzazioni logiche Viste materializzate
Ottimizza l'elaborazione No No
Assistenza per le query Tutti Tutti Tutti Con restrizioni1
Partizionamento e clustering No N/D
Aggiornamento incrementale No No No
Spazio di archiviazione aggiuntivo No No
Riscrivi query No No No
Costi di manutenzione No N/D
Inattività dei dati Mai Mai (Facoltativo) 2

1 L'opzione --allow_non_incremental_definition supporta una gamma più ampia 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 in continua evoluzione.

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 sottoposte a scansione (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 riscrivi utilizzando una vista materializzata possono essere memorizzati nella cache in base alle consuete limitazioni (utilizzo di funzioni deterministiche, nessun streaming nelle tabelle di base e così via).

  • Limitazione dei costi: se hai impostato un valore per i byte massimi fatturati e una query legge un numero di byte superiore al limite, la query non riesce senza comportare addebiti, indipendentemente dal fatto che la query utilizzi viste materializzate, le tabelle di base o entrambe.

  • Stima dei costi utilizzando la prova: 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 BigLake con memorizzazione nella cache dei metadati abilitata

Le viste materializzate sulle tabelle con cache dei metadati di BigLake possono fare riferimento ai dati strutturati archiviati in Cloud Storage e Amazon Simple Storage Service (Amazon S3). Queste viste materializzate funzionano come le viste materializzate nelle tabelle di archiviazione gestite da BigQuery, inclusi i vantaggi dell'aggiornamento automatico e della regolazione intelligente. Altri vantaggi includono la preaggregazione, il prefiltro e la prejoin dei dati archiviati al di fuori di BigQuery. Le viste materializzate sulle tabelle BigLake sono archiviate nell'archiviazione gestita di BigQuery e ne hanno tutte le caratteristiche.

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

Repliche delle viste materializzate

BigQuery ti consente di creare viste materializzate nelle tabelle con cache dei metadati di BigLake sui dati di Amazon Simple Storage Service (Amazon S3), Apache Iceberg o Salesforce Data Cloud.

Una replica di vista materializzata ti consente di utilizzare i dati delle viste materializzate di Amazon S3, Iceberg o Data Cloud nelle query, evitando al contempo i costi di esportazione dei dati e migliorando le prestazioni delle query. Una replica della vista materializzata esegue questa operazione replicando i dati di Amazon S3, Iceberg o Data Cloud in un set di dati in una regione BigQuery supportata, in modo che siano disponibili localmente in BigQuery.

Scopri come creare vista materializzata materializzate.

Aggiornamento dei dati

Dopo aver creato la replica della vista materializzata, il processo di replica esamina la vista materializzata di origine per rilevare le modifiche e replica i dati nella replica della vista materializzata. I dati vengono replicati nell'intervallo specificato nella opzione replication_interval_seconds dell' istruzione CREATE MATERIALIZED VIEW AS REPLICA OF.

Oltre all'intervallo di replica, l'aggiornamento dei dati della replica della vista materializzata dipende anche dalla frequenza con cui viene aggiornata la vista materializzata di origine e dalla frequenza con cui viene aggiornata la cache dei metadati della tabella Amazon S3, Iceberg o Data Cloud utilizzata dalla vista materializzata.

Puoi controllare 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 delle repliche delle viste materializzate, 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 di origine Amazon S3, Iceberg o Data Cloud, controlla il campo Max staleness (Mancata aggiornamento massima) nel riquadro Dettagli della vista materializzata.

Aree geografiche supportate

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

Posizione della vista materializzata di origine Posizione della replica della vista materializzata
aws-us-east-1 La US regione multipla 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 La US regione multipla 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 La EU regione multipla 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 delle seguenti regioni:
  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-south2
  • asia-southeast1
aws-ap-southeast-2 Una delle seguenti regioni:
  • australia-southeast1
  • australia-southeast2

Limitazioni

  • Potrebbero essere applicati limiti ai riferimenti alle tabelle 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 linguaggio di manipolazione dei dati (DML).
  • Non puoi sostituire una vista materializzata esistente con una vista materializzata dello stesso nome.
  • Il codice SQL della vista non può essere aggiornato dopo la creazione della vista materializzata.
  • Una vista materializzata deve trovarsi nella stessa organizzazione delle relative tabelle di base o nello stesso progetto se il progetto non appartiene a un'organizzazione.
  • Per l'ottimizzazione intelligente vengono prese in considerazione solo le viste materializzate dello stesso set di dati.
  • Le viste materializzate utilizzano una sintassi SQL limitata e un insieme limitato di funzioni di aggregazione. Per ulteriori informazioni, consulta Visualizzazioni materializzate supportate.
  • Le viste materializzate non possono essere nidificate in altre viste materializzate.
  • Le viste tabelle non possono eseguire query su tabelle esterne o con caratteri jolly, su viste logiche1, su snapshot o su tabelle abilitate per l'acquisizione dei dati sulle modifiche.
  • Per le viste materializzate è supportato solo il dialetto GoogleSQL.
  • Puoi impostare descrizioni per le viste materializzate, ma non per le singole colonne al vista materializzata.
  • Se elimini una tabella di base senza prima eliminare la vista materializzata, le query e gli aggiornamenti della vista materializzata non vanno a buon fine. Se ricrei la tabella di base, devi ricreare anche la vista materializzata.

1Il supporto dei riferimenti alle visualizzazioni logiche è in anteprima. Per ulteriori informazioni, consulta Visualizzazioni logiche di riferimento.

Limitazioni delle viste materializzate nelle tabelle BigLake

  • La partizione della vista materializzata non è supportata. Le tabelle di base possono utilizzare la partizione Hive, ma lo spazio di archiviazione vista materializzata non può essere suddiviso nelle tabelle BigLake. Ciò significa che qualsiasi cancellazione 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.
  • Le unioni tra tabelle gestite BigQuery e tabelle BigLake non sono supportate 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:

  • Eseguire query sulle viste materializzate.
  • Gestione delle viste materializzate, ad esempio quando vengono aggiornate. Il costo dell'aggiornamento automatico viene addebitato al progetto in cui risiede la visualizzazione. Il costo dell'aggiornamento manuale viene addebitato al progetto in cui viene eseguito il job di aggiornamento manuale. Per ulteriori informazioni su come controllare i costi di manutenzione, consulta Manutenzione dei job di aggiornamento.
  • Memorizzazione delle tabelle delle vista materializzata.
Componente Prezzi on demand Prezzi basati sulla capacità
Eseguire query Byte elaborati dalle viste materializzate e da eventuali parti necessarie delle tabelle di base.1 Gli slot vengono utilizzati durante il tempo di 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 Ove possibile, BigQuery legge solo le modifiche apportate dall'ultimo aggiornamento della vista. Per ulteriori informazioni, consulta la sezione Aggiornamenti incrementali.

Dettagli sui costi di archiviazione

Per i valori aggregati AVG, ARRAY_AGG e APPROX_COUNT_DISTINCT in una vista materializzata, il valore finale non viene memorizzato direttamente. Al contrario, BigQuery memorizza internamente una vista materializzata come sketch intermedio, che viene utilizzato per produrre il valore finale.

Ad esempio, prendiamo in considerazione 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 per l'utente, internamente viene memorizzata come BYTES, con i relativi contenuti che rappresentano un abbozzo intermedio in formato proprietario. Per il calcolo delle dimensioni dei dati, la colonna viene trattata come BYTES.

Costi delle repliche delle viste materializzate

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

Passaggi successivi