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 | Sì | No | No | Sì |
Assistenza per le query | Tutti | Tutti | Tutti | Con restrizioni1 |
Partizionamento e clustering | No | Sì | N/D | Sì |
Aggiornamento incrementale | No | No | No | Sì |
Spazio di archiviazione aggiuntivo | No | Sì | No | Sì |
Riscrivi query | No | No | No | Sì |
Costi di manutenzione | No | Sì | N/D | Sì |
Inattività dei dati | Mai | Sì | 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:
|
aws-us-west-2 |
La US
regione multipla o una delle seguenti
regioni:
|
aws-eu-west-1 |
La EU
regione multipla o una delle seguenti
regioni:
|
aws-ap-northeast-2 |
Una delle seguenti
regioni:
|
aws-ap-southeast-2 |
Una delle seguenti
regioni:
|
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
- Non puoi creare repliche di 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 chiavi di crittografia gestite dal cliente (CMEK) con la vista materializzata di origine o con la replica della vista materializzata.
- Puoi creare repliche di vista materializzata solo per le viste materializzate basate su tabelle che utilizzano la memorizzazione nella cache dei metadati.
- Puoi creare una sola replica della vista materializzata per una determinata vista materializzata di origine.
- Puoi creare repliche di vista materializzata solo per le viste materializzate autorizzate.
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.