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 | Sì | No | No | Sì |
Supporto delle query | Tutti | Tutti | Tutti | Limitata1 |
Partizionamento e clustering | No | Sì | N/A | Sì |
Aggiornamento incrementale | No | No | No | Sì |
Spazio di archiviazione aggiuntivo | No | Sì | No | Sì |
Riscrittura query | No | No | No | Sì |
Costi di manutenzione | No | Sì | N/A | Sì |
In ritardo dei dati | Mai | Sì | 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:
|
aws-us-west-2 |
US
multiregionale o una delle seguenti
regioni:
|
aws-eu-west-1 |
EU
multiregionale o una delle seguenti
regioni:
|
aws-ap-northeast-2 |
Una qualsiasi delle seguenti
regioni:
|
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
- Non puoi creare repliche vista materializzata per le viste materializzate basate su tabelle che utilizzano la sicurezza a livello di riga o la sicurezza a livello di colonna.
- Non puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) con la vista materializzata di origine o la replica della vista materializzata.
- Puoi creare repliche delle vista materializzata solo per le viste materializzate che si basano su tabelle che utilizzano la memorizzazione nella cache dei metadati.
- Puoi creare una sola replica della vista materializzata per una determinata vista materializzata dell'origine.
- Puoi creare repliche delle vista materializzata solo per le viste materializzate autorizzate.
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.