Introduzione alle viste materializzate

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

Panoramica

In BigQuery, le viste materializzate sono viste precalcolate che memorizzare nella cache periodicamente i risultati di una query per aumentare le prestazioni e efficienza operativa. BigQuery sfrutta i risultati precalcolati viste materializzate e ogni volta di sola lettura possibile modifiche alle tabelle di base per calcolare i risultati aggiornati. Materializzati possono essere interrogate direttamente o possono essere utilizzate ottimizzatore BigQuery 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 notevolmente le prestazioni dei carichi di lavoro che presentano 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 modifiche alle 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 cambia in base potrebbero invalidare la vista materializzata, dopodiché i dati vengono letti direttamente dalle tabelle di base. Se le modifiche alle tabelle di base non invalidano il valore vista materializzata, il resto dei dati viene letto dalla vista materializzata vengono lette solo le modifiche dalle tabelle di base.
  • Ottimizzazione intelligente. Se una qualsiasi parte di una query sulla tabella di base può essere risolte eseguendo una query sulla vista materializzata, quindi BigQuery reindirizza la query in modo che utilizzi la vista materializzata per migliorare le prestazioni ed efficienza.

Casi d'uso

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

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

  • Dati preaggregati. Aggregazione dei dati in streaming.
  • Esegui il prefiltro dei dati. Esegui query che leggono solo un determinato sottoinsieme della tabella.
  • Dati precedenti all'unione. Le unioni di query, in particolare tra tabelle grandi e piccole.
  • Ricluster i dati. Eseguire query che trarrebbero vantaggio da un clustering diverso dalle tabelle di base.

Confronto con altre tecniche di BigQuery

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

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

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 quando elaborare set di dati di grandi dimensioni che cambiano di frequente.

Interazione con altre funzionalità di BigQuery

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

  • Spiegazione del piano di query: il piano di query. indica quali viste materializzate vengono scansionate (se presenti) e mostra quante i 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 usando una vista materializzata può essere memorizzata nella cache secondo le consuete limitazioni (utilizzando 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 leggeva un numero di byte oltre il limite, la query non ha esito positivo senza dover sostenere alcun addebito, indipendentemente dal fatto che la query utilizzi viste materializzate, 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 visualizzazioni materializzate.

Tabelle BigLake con cache dei metadati abilitata

Le viste materializzate sulle tabelle BigLake con cache dei metadati abilitata possono fare riferimento ai dati strutturati archiviati in Cloud Storage e Amazon Simple Storage Service (Amazon S3). Queste viste materializzate come le viste materializzate sulle tabelle di archiviazione gestite da BigQuery, inclusi i vantaggi dell'aggiornamento automatico e dell'ottimizzazione intelligente. Altri vantaggi includono pre-aggregazione, pre-filtro e pre-unione 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 su un'istanza Amazon S3 nella tabella BigLake, i dati nella vista materializzata non sono disponibili per i join con i dati BigQuery. Per rendere Amazon S3 dati in una vista materializzata disponibile per i join, crea replica della vista materializzata. Puoi creare repliche di viste materializzate solo su viste di materiali autorizzate.

Repliche delle viste materializzate

BigQuery ti consente di creare viste materializzate sulle tabelle con cache dei metadati 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 repliche di viste materializzate.

Aggiornamento dei dati

Dopo aver creato la replica della vista materializzata, il processo di replica esegue il polling della vista materializzata di origine per individuare le modifiche e replica i dati replica della vista materializzata. I dati vengono replicati all'intervallo specificato nell'opzione replication_interval_seconds del Dichiarazione CREATE MATERIALIZED VIEW AS REPLICA OF.

Oltre all'intervallo di replica, l'aggiornamento della vista materializzata i dati di replica dipendono anche dalla frequenza con cui la vista materializzata dell'origine la cache dei metadati di Amazon S3, Iceberg, o tabella del cloud di dati utilizzata aggiornamenti della 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 durante la creazione visualizza repliche:

Posizione della vista materializzata di origine Posizione della replica della vista materializzata
aws-us-east-1 US più regioni, o uno dei 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 più regioni, o uno dei 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 Uno dei 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 saperne di più 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 con lo stesso nome.
  • L'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.
  • Solo le viste materializzate dallo stesso set di dati sono considerate per dell'ottimizzazione.
  • Le viste materializzate utilizzano una sintassi SQL limitata e un insieme limitato di 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 istantanee 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 loro interno.
  • 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. La base possono utilizzare il partizionamento hive, ma l'archiviazione della vista materializzata non può essere partizionate in tabelle BigLake. Ciò significa che qualsiasi l'eliminazione di 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.
  • Unioni tra tabelle gestite da BigQuery Le tabelle BigLake non sono supportate in una singola vista materializzata definizione di Kubernetes.

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 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à
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 Dove possibile, BigQuery legge solo le modifiche poiché l'ultima volta che la vista è stata aggiornata. Per ulteriori informazioni, vedi Aggiornamenti incrementali.

Dettagli sui costi di archiviazione

Per AVG, ARRAY_AGG e APPROX_COUNT_DISTINCT valori aggregati in un vista materializzata, il valore finale non viene archiviato 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 calcolare le dimensioni dei dati: la colonna viene trattata come BYTES.

Costi delle repliche delle viste materializzate

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

Passaggi successivi