Monitora le viste materializzate
Puoi monitorare la vista materializzata
di utilizzo e aggiornamento dei job visualizzando BigQuery
INFORMATION_SCHEMA
visualizzazione. Per creare un elenco di viste materializzate, consulta
Elenco delle viste materializzate.
Vista materializzata INFORMATION_SCHEMA
Per scoprire le viste materializzate, esegui una query su INFORMATION_SCHEMA.TABLES
vista. Per recuperare le proprietà di un
vista materializzata, esegui una query
INFORMATION_SCHEMA.TABLE_OPTIONS
visualizzazione.
Le viste materializzate non sono elencate in INFORMATION_SCHEMA.VIEWS
viste
tabella.
Monitora l'aggiornamento automatico
Questa sezione mostra come visualizzare l'aggiornamento dei dettagli per le viste materializzate.
Visualizza stato ultimo aggiornamento
Per recuperare lo stato corrente delle viste materializzate, chiama il metodo
tables.get
o esegui una query sul
INFORMATION_SCHEMA.MATERIALIZED_VIEWS
visualizzazione.
Ad esempio:
SELECT table_name, last_refresh_time, refresh_watermark, last_refresh_status FROM `DATASET`.INFORMATION_SCHEMA.MATERIALIZED_VIEWS;
Se il valore di last_refresh_status
non è NULL
, l'ultima modifica automatica
job di aggiornamento non riuscito. Le richieste di aggiornamento manuale non sono indicate qui. Modifiche a
le tabelle di base possono invalidare una definizione di vista materializzata, causando un errore
durante l'aggiornamento automatico. Per ulteriori informazioni, consulta la sezione incrementali
aggiornamenti. Per
Ad esempio, se una colonna a cui fa riferimento la vista materializzata viene eliminata
dalla tabella di base, il campo last_refresh_status
restituisce un
Errore invalidQuery
. Per ulteriori informazioni, consulta la sezione Errore
messaggi.
Elenca job di aggiornamento automatico
Per elencare i job di aggiornamento automatico della vista materializzata, chiama la funzione jobs.list
gcloud. Per recuperare i dettagli su
i job, chiama jobs.get
gcloud. Puoi anche eseguire query
INFORMATION_SCHEMA.JOBS_BY_*
visualizzazioni a
trovare i lavori. I job di aggiornamento automatico contengono materialized_view_refresh
all'interno dell'ID job
vengono avviate da un account amministratore di BigQuery.
Ad esempio:
SELECT job_id, total_slot_ms, total_bytes_processed, materialized_view_statistics.materialized_view[SAFE_OFFSET(0)].rejected_reason AS full_refresh_reason FROM `region-us.INFORMATION_SCHEMA.JOBS_BY_PROJECT` WHERE job_id LIKE '%materialized_view_refresh_%' LIMIT 10;
Per monitorare il costo dei job di aggiornamento e regolare l'intervallo di aggiornamento automatico se
necessari, visualizza i campi total_bytes_processed
e total_slot_ms
.
Ad esempio, se la frequenza di importazione nelle tabelle di base è relativamente bassa, ha senso aggiornare la visualizzazione meno spesso. Se i dati sottostanti le modifiche sono rapide, è consigliabile aggiornarle più spesso.
Se le tabelle di base importano i dati in momenti predefiniti, ad esempio utilizzando una pipeline di estrazione, trasformazione e caricamento (ETL) di notte, valuta la possibilità di assumere il controllo la pianificazione della manutenzione della vista materializzata come segue:
Esegui un aggiornamento manuale. come parte della pipeline ETL o configurando una query pianificata in in determinate ore della giornata.
Per ulteriori informazioni sui prezzi delle viste materializzate, consulta le viste materializzate. prezzi.
Monitora l'utilizzo della vista materializzata
Per visualizzare l'utilizzo della vista materializzata per un job di query, puoi chiamare il metodo
jobs.get
o esegui una query sul
INFORMATION_SCHEMA.JOBS_BY_*
visualizzazione,
e visualizzerai il campo materialized_view_statistics
. Fornisce dettagli su
utilizzo delle viste materializzate da parte della query, inclusi i seguenti dettagli:
- Indica se è stata utilizzata la vista materializzata.
- Se la vista materializzata non è stata usata, il motivo del rifiuto.
Ad esempio:
SELECT job_id, materialized_view_statistics FROM region-US.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE job_id = '';
Per visualizzare l'utilizzo di una vista materializzata nel tempo, esegui una query sulla
INFORMATION_SCHEMA.JOBS_BY_*
visualizzazioni.
Ad esempio, la seguente query restituisce un riepilogo dei job di query recenti che utilizza la vista materializzata di destinazione:
SELECT mv.table_reference.dataset_id, mv.table_reference.table_id, MAX(job.creation_time) latest_job_time, COUNT(job_id) job_count FROM region-US.INFORMATION_SCHEMA.JOBS_BY_PROJECT job, UNNEST(materialized_view_statistics.materialized_view) mv WHERE job.creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 7 DAY) AND mv.table_reference.dataset_id = 'my_dataset' AND mv.table_reference.table_id = 'my_materialized_view' AND mv.chosen = TRUE GROUP BY 1, 2;
Risolvi i problemi relativi alle query lente con le viste materializzate
Se la query utilizza viste materializzate e viene eseguita più lentamente del previsto, procedi nel seguente modo:
- Verifica che le viste materializzate previste vengano effettivamente utilizzate dalla query. Per istruzioni dettagliate, vedi Monitorare l'utilizzo della vista materializzata.
- Controlla l'aggiornamento della vista materializzata.
- Esamina la definizione della vista materializzata, i dati a cui fa riferimento e prendi in considerazione tecniche per ottimizzare l'utilizzo della vista materializzata.