Mengelola tampilan terwujud
Dokumen ini menjelaskan cara mengelola tampilan terwujud di BigQuery.
Pengelolaan tampilan terwujud BigQuery mencakup operasi berikut:
- Mengubah tampilan terwujud
- Mencantumkan tampilan terwujud
- Mendapatkan informasi tentang tampilan terwujud
- Menghapus tampilan terwujud
- Memuat ulang tampilan terwujud
Untuk mengetahui informasi selengkapnya tentang tampilan terwujud, lihat artikel berikut:
- Pengantar tampilan terwujud
- Membuat tampilan terwujud
- Menggunakan tampilan terwujud
- Memantau tampilan terwujud
Sebelum memulai
Berikan peran Identity and access Management (IAM) yang memberi pengguna izin yang diperlukan untuk melakukan setiap tugas dalam dokumen ini. Izin yang diperlukan untuk melakukan tugas (jika ada) tercantum di bagian "Izin yang diperlukan" pada tugas.
Mengubah tampilan terwujud
Anda dapat mengubah tampilan terwujud melalui Konsol Google Cloud atau
alat command line bq, menggunakan bahasa definisi data (DDL) dengan ALTER MATERIALIZED
VIEW
dan SET OPTIONS
. Untuk
daftar opsi tampilan terwujud, lihat materialized_view_set_options_list
.
Berikut adalah contoh yang menetapkan enable_refresh
ke true
. Sesuaikan dengan kebutuhan
untuk kasus penggunaan Anda.
Izin yang diperlukan
Untuk mengubah tampilan terwujud, Anda memerlukan izin IAM bigquery.tables.get
dan
bigquery.tables.update
.
Setiap peran IAM yang telah ditetapkan berikut mencakup izin yang Anda perlukan untuk mengubah tampilan terwujud:
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Untuk mengetahui informasi selengkapnya tentang Identity and Access Management (IAM) BigQuery, lihat Peran dan izin yang telah ditetapkan.
SQL
Untuk mengubah tampilan terwujud, gunakan
pernyataan DDL ALTER MATERIALIZED VIEW SET OPTIONS
:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
ALTER MATERIALIZED VIEW PROJECT.DATASET.MATERIALIZED_VIEW SET OPTIONS (enable_refresh = true);
Ganti kode berikut:
PROJECT
: nama project yang berisi tampilan terwujudDATASET
: nama set data yang berisi tampilan terwujudMATERIALIZED_VIEW
: nama tampilan terwujud yang ingin Anda ubah
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
bq
Jalankan perintah bq update
:
bq update \ --enable_refresh=true \ --refresh_interval_ms= \ PROJECT.DATASET.MATERIALIZED_VIEW
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Mencantumkan tampilan terwujud
Anda dapat mencantumkan tampilan terwujud melalui Konsol Google Cloud, alat command line bq, atau BigQuery API.
Izin yang diperlukan
Untuk mencantumkan tampilan terwujud dalam set data, Anda memerlukan izin IAM
bigquery.tables.list
.
Setiap peran IAM yang telah ditetapkan berikut mencakup izin yang Anda perlukan untuk mencantumkan tampilan terwujud dalam set data:
roles/bigquery.user
roles/bigquery.metadataViewer
roles/bigquery.dataViewer
roles/bigquery.dataOwner
roles/bigquery.dataEditor
roles/bigquery.admin
Untuk mengetahui informasi lebih selengkapnya tentang peran dan izin IAM di IAM, lihat Peran dan izin yang telah ditetapkan.
Proses untuk mencantumkan tampilan terwujud identik dengan proses untuk mencantumkan tabel. Untuk mencantumkan tampilan terwujud dalam set data:
Konsol
Di panel Explorer, luaskan project Anda dan pilih set data.
Scroll melalui daftar untuk melihat tabel di set data. Tabel, tampilan, dan tampilan terwujud diidentifikasi dengan ikon yang berbeda.
bq
Berikan perintah bq ls
. Flag --format
dapat digunakan untuk mengontrol
output. Jika Anda mencantumkan tampilan terwujud dalam project selain
project default, tambahkan project ID ke set data dalam format berikut:
project_id:dataset
.
bq ls --format=pretty project_id:dataset
Dengan keterangan:
- project_id adalah project ID Anda.
- dataset adalah nama set data.
Saat Anda menjalankan perintah, kolom Type
akan menampilkan jenis tabel.
Contoh:
+-------------------------+--------------------+----------------------+-------------------+ | tableId | Type | Labels | Time Partitioning | +-------------------------+--------------------+----------------------+-------------------+ | mytable | TABLE | department:shipping | | | mymatview | MATERIALIZED_VIEW | | | +-------------------------+--------------------+----------------------+-------------------+
Contoh:
Masukkan perintah berikut untuk mencantumkan tampilan terwujud dalam set data
mydataset
di project default Anda.
bq ls --format=pretty mydataset
Masukkan perintah berikut untuk mencantumkan tampilan terwujud dalam set data
mydataset
di myotherproject
.
bq ls --format=pretty myotherproject:mydataset
API
Untuk mencantumkan tampilan terwujud menggunakan API, panggil metode
tables.list
.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Mendapatkan informasi tentang tampilan terwujud
Anda bisa mendapatkan informasi tentang tampilan terwujud menggunakan SQL, alat command line bq, atau BigQuery API.
Izin yang diperlukan
Untuk membuat kueri informasi tentang tampilan terwujud, Anda memerlukan izin Identity and Access Management (IAM) berikut:
bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
Setiap peran IAM yang telah ditetapkan berikut mencakup izin sebelumnya:
roles/bigquery.metadataViewer
roles/bigquery.dataViewer
roles/bigquery.admin
Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.
Untuk mendapatkan informasi tentang tampilan terwujud, termasuk replika tampilan terwujud dependen:
SQL
Untuk mendapatkan informasi tentang tampilan terwujud, buat kueri
tampilan INFORMATION_SCHEMA.TABLES
:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
SELECT * FROM PROJECT_ID.DATASET_ID.INFORMATION_SCHEMA.TABLES WHERE table_type = 'MATERIALIZED VIEW';
Ganti kode berikut:
PROJECT_ID
: nama project yang berisi tampilan terwujudDATASET_ID
: nama set data yang berisi tampilan terwujud
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
bq
Gunakan perintah bq show
:
bq show --project=project_id --format=prettyjson dataset.materialized_view
Ganti kode berikut:
- project_id: project ID. Anda hanya perlu menyertakan flag ini untuk mendapatkan informasi tentang tampilan terwujud dalam project yang berbeda dengan project default.
- dataset: nama set data yang berisi tampilan terwujud.
- materialized_view: nama tampilan terwujud yang informasinya Anda inginkan.
Contoh:
Masukkan perintah berikut untuk menampilkan informasi tentang tampilan terwujud
my_mv
dalam set data report_views
di project myproject
.
bq show --project=myproject --format=prettyjson report_views.my_mv
API
Untuk mendapatkan informasi tampilan terwujud menggunakan API, panggil metode
tables.get
.
Menghapus tampilan terwujud
Anda dapat menghapus tampilan terwujud melalui Konsol Google Cloud, alat command line bq, atau API.
Menghapus tampilan terwujud juga akan menghapus izin apa pun yang terkait dengan tampilan terwujud ini. Saat membuat ulang tampilan terwujud yang dihapus, Anda juga harus mengonfigurasi ulang izin akses apa pun yang sebelumnya terkait dengannya secara manual.
Izin yang diperlukan
Untuk menghapus tampilan terwujud, Anda memerlukan
izin IAM bigquery.tables.delete
.
Setiap peran IAM yang telah ditetapkan berikut menyertakan izin yang Anda perlukan untuk menghapus tampilan terwujud:
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Untuk mengetahui informasi selengkapnya tentang Identity and Access Management (IAM) BigQuery, lihat Peran dan izin yang telah ditetapkan.
SQL
Untuk menghapus tampilan terwujud, gunakan
pernyataan DDL DROP MATERIALIZED VIEW
:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
DROP MATERIALIZED VIEW PROJECT.DATASET.MATERIALIZED_VIEW;
Ganti kode berikut:
PROJECT
: nama project yang berisi tampilan terwujudDATASET
: nama set data yang berisi tampilan terwujudMATERIALIZED_VIEW
: nama tampilan terwujud yang ingin Anda hapus
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
bq
Gunakan perintah bq rm
untuk menghapus tampilan terwujud.
API
Panggil metode tables.delete
dan tentukan nilai untuk parameter projectId
, datasetId
, dan tableId
:
- Tetapkan parameter
projectId
ke project ID Anda. - Tetapkan parameter
datasetId
ke ID set data Anda. - Tetapkan parameter
tableId
ke ID tabel tampilan terwujud yang Anda hapus.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Memuat ulang tampilan terwujud
Memuat ulang tampilan terwujud akan memperbarui data yang di-cache untuk mencerminkan status tabel dasarnya saat ini.
Saat Anda membuat kueri tampilan terwujud, BigQuery akan menampilkan hasil dari data tampilan terwujud yang di-cache dan data yang diambil dari tabel dasar. Jika memungkinkan, BigQuery hanya akan membaca perubahan sejak terakhir kali tampilan dimuat ulang. Meskipun data yang baru di-streaming mungkin tidak disertakan selama pemuatan ulang tampilan terwujud, kueri selalu membaca data yang di-streaming, terlepas dari apakah tampilan terwujud digunakan atau tidak.
Menampilkan hasil kueri langsung dari tabel dasar akan menimbulkan biaya komputasi yang lebih tinggi daripada menampilkan hasil dari data tampilan terwujud yang di-cache. Memuat ulang data yang di-cache tampilan terwujud secara berkala akan mengurangi jumlah data yang ditampilkan langsung dari tabel dasar, sehingga mengurangi biaya komputasi.
Bagian ini menjelaskan cara melakukan hal berikut:
Pemuatan ulang otomatis
Anda dapat mengaktifkan atau menonaktifkan pemuatan ulang otomatis kapan saja. Tugas pemuatan ulang
otomatis dilakukan oleh akun layanan
bigquery-adminbot@
dan muncul dalam histori tugas project tampilan terwujud.
Secara default, data dalam cache di tampilan terwujud akan otomatis dimuat ulang dari tabel dasar dalam waktu 5 hingga 30 menit setelah perubahan pada tabel dasar, misalnya, penyisipan baris atau penghapusan baris.
Anda dapat menetapkan batas frekuensi pemuatan ulang untuk mengelola frekuensi pemuatan ulang otomatis data yang di-cache, sehingga mengelola biaya dan performa kueri tampilan terwujud.
Mengaktifkan dan menonaktifkan pemuatan ulang otomatis
Untuk menonaktifkan pemuatan ulang otomatis saat Anda membuat tampilan terwujud,
tetapkan enable_refresh
ke false
.
CREATE MATERIALIZED VIEW PROJECT.DATASET.MATERIALIZED_VIEW PARTITION BY RANGE_BUCKET(column_name, buckets) OPTIONS (enable_refresh = false) AS SELECT ...
Untuk tampilan terwujud yang ada, Anda dapat mengubah nilai enable_refresh
menggunakan ALTER MATERIALIZED VIEW
.
ALTER MATERIALIZED VIEW PROJECT.DATASET.MATERIALIZED_VIEW SET OPTIONS (enable_refresh = true);
Menetapkan batas frekuensi
Anda dapat mengonfigurasi batas frekuensi terkait seberapa sering pemuatan ulang otomatis dijalankan. Secara default, tampilan terwujud dimuat ulang tidak lebih dari setiap 30 menit.
Batas frekuensi pemuatan ulang dapat diubah kapan saja.
Untuk menetapkan batas frekuensi pemuatan ulang saat membuat tampilan terwujud, tetapkan
refresh_interval_minutes
di DDL (atau refresh_interval_ms
dalam API dan
alat command line bq), ke nilai yang Anda inginkan.
CREATE MATERIALIZED VIEW PROJECT.DATASET.MATERIALIZED_VIEW OPTIONS (enable_refresh = true, refresh_interval_minutes = 60) AS SELECT ...
Demikian pula, Anda dapat menetapkan batas frekuensi saat mengubah tampilan terwujud. Contoh ini mengasumsikan bahwa Anda telah mengaktifkan pemuatan ulang otomatis, dan hanya ingin mengubah batas frekuensi:
ALTER MATERIALIZED VIEW PROJECT.DATASET.MATERIALIZED_VIEW SET OPTIONS (refresh_interval_minutes = 60);
Batas frekuensi pemuatan ulang minimum adalah 1 menit. Batas frekuensi pemuatan ulang maksimum adalah 7 hari.
Anda dapat melakukan pemuatan ulang manual dari tampilan terwujud kapan saja, dan waktunya tidak tunduk pada batas frekuensi.
Upaya terbaik
Pemuatan ulang otomatis dilakukan berdasarkan upaya terbaik. BigQuery akan mencoba memulai pemuatan ulang dalam waktu 5 menit setelah perubahan pada tabel dasar (jika pemuatan ulang sebelumnya dilakukan lebih awal dari 30 menit yang lalu), tetapi tidak menjamin bahwa pemuatan ulang akan dimulai pada saat itu, juga tidak menjamin kapan pemuatan ulang akan selesai.
Pemuatan ulang otomatis diperlakukan mirip dengan kueri dengan prioritas batch. Jika project tampilan terwujud tidak memiliki kapasitas saat saat ini, pemuatan ulang akan tertunda. Jika project berisi banyak tampilan yang pemuatan ulangnya ternyata mahal, setiap tampilan mungkin mengalami keterlambatan secara signifikan dibandingkan tabel dasarnya.
Pemuatan ulang manual
Anda dapat memuat ulang tampilan terwujud secara manual kapan saja.
Izin yang diperlukan
Untuk memuat ulang tampilan terwujud secara manual, Anda memerlukan izin IAM bigquery.tables.getData
,
bigquery.tables.update
, dan
bigquery.tables.updateData
.
Setiap peran IAM yang telah ditetapkan berikut menyertakan izin yang Anda perlukan untuk memuat ulang tampilan terwujud secara manual:
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Untuk mengetahui informasi selengkapnya tentang Identity and Access Management (IAM) BigQuery, lihat Peran dan izin yang telah ditetapkan.
Untuk memperbarui data dalam tampilan terwujud, panggil
prosedur sistem
BQ.REFRESH_MATERIALIZED_VIEW
. Ketika prosedur ini dipanggil,
BigQuery akan mengidentifikasi perubahan yang telah terjadi di tabel
dasar dan menerapkan perubahan tersebut pada tampilan terwujud. Kueri untuk menjalankan
BQ.REFRESH_MATERIALIZED_VIEW
selesai saat pemuatan ulang selesai.
CALL BQ.REFRESH_MATERIALIZED_VIEW('PROJECT.DATASET.MATERIALIZED_VIEW');
Memantau tampilan terwujud
Anda bisa mendapatkan informasi tentang tampilan terwujud dan tugas pembaruan tampilan terwujud menggunakan BigQuery API. Untuk mengetahui informasi selengkapnya, lihat Memantau tampilan terwujud.