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:

  1. Nonaktifkan muat ulang otomatis.

  2. 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, dan alasannya ditolak.

Contoh:

SELECT
  job_id, materialized_view_statistics
FROM
  region-US.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
  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;