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 utilizzano le viste materializzate sono generalmente più veloci e consumano meno 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 viste materializzate:
- Nessuna manutenzione. Le viste materializzate sono 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 evidenziano il valore delle viste materializzate. Materializzati di query 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 una determinata sottoinsieme della tabella.
- Pre-unione dei dati. Esegui join 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 | Viste logiche | Viste materializzate |
---|---|---|---|---|
Ottimizza il calcolo | Sì | No | No | Sì |
Supporto delle query | Tutti | Tutti | Tutti | Limitata1 |
Partizionamento e clustering | No | Sì | N/D | 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/D | Sì |
In ritardo dei dati | Mai | Sì | Mai | Facoltativo2 |
1 La --allow_non_incremental_definition
opzione
supporta un'ampia gamma 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 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 un viste materializzate.
Tabelle abilitate per la cache dei metadati BigLake
Viste materializzate su metadati BigLake abilitati per la cache tabelle possono fare riferimento a 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. Viste materializzate su Le tabelle BigLake sono archiviate in e hanno tutte le caratteristiche di archiviazione gestita di BigQuery.
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 delle vista materializzata solo visualizzazioni di materiali autorizzate.
Repliche delle viste materializzate
BigQuery ti consente creare viste materializzate su tabelle abilitate alla cache di metadati BigLake rispetto ai dati di Amazon Simple Storage Service (Amazon S3).
Una replica della vista materializzata ti consente di utilizzare la vista materializzata di Amazon S3 i dati nelle query, evitando i costi del traffico in uscita dei dati e migliorando la query le prestazioni dei dispositivi. Per farlo, una replica della vista materializzata replica dati di Amazon S3 in un set di dati in un ambiente BigQuery supportato regione, in modo che i dati 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
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 di replica dei dati dipende anche dalla frequenza con cui la vista materializzata dell'origine aggiorna la cache dei metadati della tabella Amazon S3 usati dagli aggiornamenti delle 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 della tabella Amazon S3 di origine, guarda il Campo Massima obsolescenza nel riquadro Dettagli della vista materializzata.
Aree geografiche supportate
Usa le mappature delle località nella tabella seguente durante la creazione visualizza repliche:
Posizione della vista materializzata dell'origine | Posizione della replica della vista materializzata |
---|---|
aws-us-east-1 |
US
più regioni,
o uno dei seguenti
regioni:
|
aws-us-west-2 |
US
più regioni,
o uno dei seguenti
regioni:
|
aws-eu-west-1 |
EU
più regioni,
o uno dei seguenti
regioni:
|
aws-ap-northeast-2 |
Uno dei seguenti
regioni:
|
aws-ap-southeast-2 |
Uno dei seguenti
regioni:
|
Limitazioni
- Potrebbero essere applicati limiti ai riferimenti alla tabella 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
oppure dati con le istruzioni DML (Manipolion 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 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 le sezioni Supportate viste materializzate.
- 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 per cui è stata abilitata la modifica dei dati di acquisizione.
- Per le viste materializzate è supportato solo il dialetto GoogleSQL.
- Puoi impostare le descrizioni per le viste materializzate, ma non puoi le descrizioni delle 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 base devi anche ricreare la vista materializzata.
1 Il supporto della visualizzazione logica dei riferimenti è attivo anteprima. Per ulteriori informazioni, vedi Visualizzazioni logiche di riferimento.
Limitazioni delle viste materializzate rispetto alle tabelle BigLake
- Il partizionamento della vista materializzata non è supportato. La base possono utilizzare il partizionamento hive, ma l'archiviazione della vista materializzata non può partizionate in tabelle BigLake. Ciò significa che qualsiasi l'eliminazione di una tabella di base causa un aggiornamento completo della vista materializzata. Per Per ulteriori dettagli, consulta Aggiornamenti incrementali.
- La
-max_staleness
opzione del valore vista materializzata deve essere maggiore di quella della 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
- Non puoi creare repliche delle vista materializzata per le viste materializzate che sono in base alle tabelle che utilizzano sicurezza a livello di riga 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 delle vista materializzata solo per le viste materializzate che sono in base alle tabelle che utilizzano memorizzazione nella cache dei metadati.
- Puoi creare una sola replica della vista materializzata per una determinata origine vista materializzata.
- Puoi creare repliche delle vista materializzata solo per 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 vengono aggiornato. Il costo dell'aggiornamento automatico viene fatturato al progetto in cui la vista risiedono. Il costo dell'aggiornamento manuale viene fatturato al progetto in cui durante l'esecuzione del job di aggiornamento. 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à |
---|---|---|
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 poiché l'ultima volta che la vista è stata aggiornata. Per ulteriori informazioni, vedi Aggiornamenti incrementali.
Dettagli dei costi di archiviazione
Per AVG
, ARRAY_AGG
e APPROX_COUNT_DISTINCT
valori aggregati in un
vista materializzata, il valore finale non viene archiviato direttamente. Invece,
BigQuery archivia internamente una vista materializzata come intermedio
sketch, utilizzato per produrre il valore finale.
Ad esempio, considera una vista materializzata creata con quanto segue :
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,
internamente viene archiviato come BYTES
, con contenuti intermedi
disegnato in formato proprietario. Per calcolare le dimensioni dei dati:
la colonna viene trattata come BYTES
.
Costi della replica della vista materializzata
L'utilizzo delle repliche vista materializzata comporta calcolo, trasferimento di dati in uscita i costi di archiviazione.