Memantau tampilan terwujud
Anda dapat memantau tugas penggunaan dan pemuatan ulang tampilan terwujud dengan melihat tabel virtual INFORMATION_SCHEMA
BigQuery. Untuk membuat daftar tampilan terwujud, lihat Membuat daftar tampilan terwujud.
Tampilan terwujud tabel virtual INFORMATION_SCHEMA
Untuk menemukan tampilan terwujud, buat kueri tampilan INFORMATION_SCHEMA.TABLES
. Untuk mengambil properti tampilan terwujud, buat kueri tabel virtual INFORMATION_SCHEMA.TABLE_OPTIONS
.
Tampilan terwujud tidak tercantum dalam tabel tabel virtualINFORMATION_SCHEMA.VIEWS
.
Memantau pemuatan ulang otomatis
Bagian ini menunjukkan cara melihat detail pemuatan ulang untuk tampilan terwujud.
Melihat status pemuatan ulang terakhir
Untuk mengambil status tampilan terwujud saat ini, panggil metode tables.get
, atau buat kueri tabel virtual INFORMATION_SCHEMA.MATERIALIZED_VIEWS
.
Contoh:
SELECT table_name, last_refresh_time, refresh_watermark, last_refresh_status FROM `DATASET`.INFORMATION_SCHEMA.MATERIALIZED_VIEWS;
Jika nilai untuk last_refresh_status
bukan NULL
, tugas pemuatan ulang otomatis terakhir akan gagal. Permintaan pemuatan ulang manual tidak ditampilkan di sini. Perubahan pada tabel dasar dapat membatalkan definisi tampilan terwujud, sehingga mengakibatkan error selama pemuatan ulang otomatis. Untuk mengetahui informasi selengkapnya, lihat Update inkremental. Misalnya, jika kolom yang direferensikan oleh tampilan terwujud dihapus dari tabel dasar, kolom last_refresh_status
akan menampilkan error invalidQuery
. Untuk mengetahui informasi selengkapnya, lihat Pesan error.
Mencantumkan tugas pemuatan ulang otomatis
Untuk mencantumkan tugas pemuatan ulang otomatis tampilan terwujud, panggil metode jobs.list
. Untuk mengambil detail tentang tugas, panggil metode jobs.get
. Anda juga dapat membuat kueri tampilan INFORMATION_SCHEMA.JOBS_BY_*
untuk mendapatkan tugas. Tugas pemuatan ulang otomatis berisi awalan materialized_view_refresh
dalam ID tugas dan dimulai oleh akun administrator BigQuery.
Contoh:
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;
Untuk memantau biaya tugas pemuatan ulang dan menyesuaikan interval pemuatan ulang otomatis jika diperlukan, lihat kolom total_bytes_processed
dan total_slot_ms
.
Misalnya, jika kecepatan penyerapan dalam tabel dasar relatif kecil, sebaiknya muat ulang tabel virtual lebih jarang. Jika data dasar berubah dengan cepat, sebaiknya muat ulang lebih sering.
Jika tabel dasar menyerap data pada waktu tertentu, seperti menggunakan pipeline ekstrak, transformasi, dan pemuatan per malam (ETL), pertimbangkan untuk mengontrol jadwal pemeliharaan tampilan terwujud sebagai berikut:
Lakukan pemuatan ulang manual, sebagai bagian dari pipeline ETL, atau dengan mengonfigurasi kueri terjadwal pada waktu tertentu.
Untuk mengetahui informasi selengkapnya tentang harga tampilan terwujud, lihat harga tampilan terwujud.
Memantau penggunaan tampilan terwujud
Untuk melihat penggunaan tampilan terwujud untuk tugas kueri, Anda dapat memanggil metode jobs.get
atau meminta tabel virtual INFORMATION_SCHEMA.JOBS_BY_*
, dan melihat kolommaterialized_view_statistics
. Bagian ini memberikan detail tentang penggunaan tampilan terwujud oleh kueri, termasuk detail berikut:
- Apakah tampilan terwujud digunakan.
- Jika tampilan terwujud tidak digunakan, alasan tampilan terwujud ditolak.
Contoh:
SELECT job_id, materialized_view_statistics FROM region-US.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE job_id = '<my-query-job-id>';
Untuk melihat penggunaan tampilan terwujud dari waktu ke waktu, buat kueri tabel virtual INFORMATION_SCHEMA.JOBS_BY_*
.
Misalnya, kueri berikut menampilkan ringkasan tugas kueri terbaru yang menggunakan tampilan terwujud target:
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;
Memecahkan masalah kueri lambat dengan tampilan terwujud
Jika kueri Anda menggunakan tampilan terwujud dan berjalan lebih lambat dari yang diharapkan, lakukan tindakan berikut:
- Verifikasi bahwa tampilan terwujud yang dimaksud benar-benar digunakan oleh kueri. Untuk petunjuk mendetail, lihat Memantau penggunaan tampilan terwujud.
- Periksa keaktualan tampilan terwujud Anda.
- Tinjau definisi tampilan terwujud dan data yang dirujuknya, lalu pertimbangkan teknik untuk mengoptimalkan penggunaan tampilan terwujud.