Monitora le viste materializzate
Puoi monitorare l'utilizzo della vista materializzata e i job di aggiornamento visualizzando la vista INFORMATION_SCHEMA
di BigQuery. Per creare un elenco delle viste materializzate, consulta
Elenco delle viste materializzate.
Vista materializzata INFORMATION_SCHEMA
Per rilevare le viste materializzate, esegui una query sulla vista INFORMATION_SCHEMA.TABLES
. Per recuperare le proprietà di una
vista materializzata, esegui una query sulla
vista INFORMATION_SCHEMA.TABLE_OPTIONS
.
Le viste materializzate non sono elencate nella tabella
delle viste INFORMATION_SCHEMA.VIEWS
.
Monitora l'aggiornamento automatico
Questa sezione mostra come visualizzare i dettagli di aggiornamento per le viste materializzate.
Visualizza stato dell'ultimo aggiornamento
Per recuperare lo stato attuale delle viste materializzate, chiama il
metodo tables.get
o esegui una query sulla
vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
.
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'ultimo job di aggiornamento automatico non è riuscito. Le richieste di aggiornamento manuali non si riflettono qui. Le modifiche alle tabelle di base possono invalidare una definizione di vista materializzata, causando un errore durante l'aggiornamento automatico. Per ulteriori informazioni, consulta la sezione Aggiornamenti incrementali. 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 Messaggi di errore.
Elenca job di aggiornamento automatico
Per elencare i job di aggiornamento automatico con vista materializzata, chiama il metodo jobs.list
. Per recuperare i dettagli dei job, chiama il metodo jobs.get
. Puoi anche eseguire query sulle
viste INFORMATION_SCHEMA.JOBS_BY_*
per
recuperare i job. I job di aggiornamento automatici contengono il prefisso materialized_view_refresh
all'interno dell'ID job e vengono avviati da un account amministratore 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 necessario, visualizza i campi total_bytes_processed
e total_slot_ms
.
Ad esempio, se la frequenza di importazione nelle tabelle di base è relativamente ridotta, ha senso aggiornare la visualizzazione meno spesso. Se i dati sottostanti cambiano rapidamente, ha senso aggiornare più spesso.
Se le tabelle di base importano i dati in momenti predefiniti, ad esempio utilizzando una pipeline ETL (estrazione notturna, trasformazione e caricamento), valuta la possibilità di assumere il controllo della pianificazione di manutenzione vista materializzata come segue:
Esegui un aggiornamento manuale, nell'ambito della pipeline ETL o configurando una query pianificata in orari specifici del giorno.
Per ulteriori informazioni sui prezzi delle viste materializzate, consulta i prezzi delle viste materializzate.
Monitoraggio dell'utilizzo della vista materializzata
Per visualizzare l'utilizzo della vista materializzata per un job di query, puoi chiamare il metodo jobs.get
o eseguire una query sulla vista INFORMATION_SCHEMA.JOBS_BY_*
e visualizzare il campo materialized_view_statistics
. Fornisce dettagli sull'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 utilizzata e 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 sulle viste INFORMATION_SCHEMA.JOBS_BY_*
.
Ad esempio, la seguente query restituisce un riepilogo dei job di query recenti che utilizzano 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;