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 visualizzazioni logiche di BigQuery.

Panoramica

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

Le query che utilizzano le viste materializzate sono in genere 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 delle query comuni e ripetute.

Di seguito sono riportate le caratteristiche principali delle viste materializzate:

  • Nessuna manutenzione. Le viste materializzate vengono precalcolate in background quando le tabelle di base cambiano. 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 rendere 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 è possibile risolvere una qualsiasi parte di una query sulla tabella di base eseguendo una query sulla vista materializzata, BigQuery reinstrada 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 costi di calcolo elevati e risultati di set di dati di dimensioni ridotte. I processi che traggono vantaggio dalle viste materializzate includono le operazioni di elaborazione analitica online (OLAP) che richiedono un'elaborazione significativa con query prevedibili e ripetute come quelle dei processi di estrazione, trasformazione, 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 hai spesso bisogno di quanto segue:

  • Dati preaggregati. Aggregazione di dati in modalità flusso.
  • Pre-filtra i dati. Eseguire query che leggono solo un determinato sottoinsieme della tabella.
  • Pre-join i dati. Join di query, soprattutto tra tabelle di grandi e piccole dimensioni.
  • Esegui di nuovo il clustering dei dati. Esegui query che trarrebbero vantaggio da uno schema di 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, viste logiche e viste materializzate.

Componente Memorizzazione nella cache Query programmate Visualizzazioni logiche Viste materializzate
Ottimizza il computing No No
Assistenza per le query Tutto Tutto Tutto 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
Inattività dei dati Mai Mai Facoltativo 2

1 L'opzione --allow_non_incremental_definition (anteprima) supporta un intervallo ampliato di query SQL per creare viste materializzate.

2 L'opzione --max_staleness (anteprima) fornisce prestazioni costantemente elevate con costi controllati durante l'elaborazione di set di dati di grandi dimensioni e che cambiano spesso.

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 indica quali viste materializzate vengono analizzate (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 soggetti alle consuete limitazioni (uso di funzioni deterministiche, nessun flusso di dati nelle tabelle di base e così via).

  • Limitazione dei costi: se imposti 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 essere addebitata, indipendentemente dal fatto che la query utilizzi viste materializzate, le tabelle di base o entrambe.

  • Stima dei costi con 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à come un modo per verificare se una query specifica utilizza viste materializzate.

Tabelle dei metadati BigLake abilitate per la cache

Le viste materializzate su tabelle dei metadati BigLake abilitate per la cache 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 sulle tabelle di archiviazione gestite da BigQuery, inclusi i vantaggi dell'aggiornamento automatico e dell'ottimizzazione intelligente. Altri vantaggi includono la pre-aggregazione, il pre-filtro e il pre-unione dei dati archiviati al di fuori di BigQuery. Le viste materializzate sulle tabelle BigLake sono archiviate e hanno tutte le caratteristiche dell'archiviazione gestita di BigQuery.

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

Repliche della vista materializzata

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

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

Scopri come creare repliche con vista materializzata.

Aggiornamento dei dati

Dopo aver creato la replica della vista materializzata, il processo di replica esegue il polling della vista materializzata di origine per verificare le modifiche e replica i dati nella replica della vista materializzata. I dati vengono replicati nell'intervallo specificato nell'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 di aggiornamento della vista materializzata dell'origine e dalla frequenza di aggiornamento della cache dei metadati della tabella Amazon S3 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 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 delle tabelle Amazon S3 di origine, controlla il campo Inattività massima nel riquadro Dettagli della vista materializzata.

Aree geografiche supportate

Quando crei repliche della vista materializzata, utilizza le mappature delle località nella tabella seguente:

Posizione della vista materializzata dell'origine Posizione della replica della vista materializzata
aws-us-east-1 US più regioni 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 più regioni 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 più regioni 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

Limitazioni

  • 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 sue tabelle di base o nello stesso progetto se il progetto non appartiene a un'organizzazione.
  • A ogni tabella di base è possibile fare riferimento a un numero limitato di viste materializzate. Per ulteriori informazioni, consulta i limiti delle viste materializzate.
  • 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 la sezione Viste materializzate supportate.
  • Le viste materializzate non possono essere nidificate su altre viste materializzate.
  • Le viste materializzate non possono eseguire query su tabelle esterne o con caratteri jolly, viste logiche1, snapshot o modificare tabelle abilitate per l'acquisizione di dati.
  • 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 andranno a buon fine. Se ricrei la tabella di base, devi ricreare anche la vista materializzata.

1 Il supporto dei riferimenti per le visualizzazioni logiche è in anteprima. Per maggiori informazioni, consulta la sezione Fare riferimento alle viste logiche.

Limitazioni delle viste materializzate sulle tabelle BigLake

  • Il partizionamento della vista materializzata non è supportato. Le tabelle di base possono utilizzare il partizionamento hive, ma l'archiviazione 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 ulteriori dettagli, consulta la sezione Aggiornamenti incrementali.
  • Il valore dell'opzione -max_staleness della vista materializzata deve essere maggiore di quello della tabella di base BigLake.
  • I join tra le tabelle gestite di BigQuery e le tabelle BigLake non sono supportati in un'unica definizione di vista materializzata.

Limitazioni delle repliche della vista materializzata

Prezzi delle viste materializzate

I costi sono associati ai seguenti aspetti delle viste materializzate:

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

1 Se possibile, BigQuery legge solo le modifiche dall'ultima volta che la vista è stata aggiornata. Per saperne di più, consulta la sezione Aggiornamenti incrementali.

Dettagli dei costi di archiviazione

Per i valori aggregati AVG, ARRAY_AGG e APPROX_COUNT_DISTINCT in una vista materializzata, il valore finale non viene archiviato direttamente. BigQuery invece 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 e i suoi contenuti rappresentano uno schizzo intermedio in formato proprietario. Per il calcolo delle dimensioni dei dati, la colonna viene trattata come BYTES.

Costi di replica della vista materializzata

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

Passaggi successivi