Mengelola rekomendasi tampilan terwujud
Dokumen ini menjelaskan cara kerja pemberi rekomendasi tampilan terwujud, dan juga menunjukkan cara melihat dan menerapkan rekomendasi tampilan terwujud.
Pengantar
Pemberi rekomendasi tampilan terwujud BigQuery dapat membantu Anda meningkatkan performa workload dan menghemat biaya eksekusi workload. Rekomendasi ini didasarkan pada karakteristik eksekusi kueri historis dari 30 hari terakhir.
Tampilan terwujud adalah tampilan yang telah dihitung sebelumnya yang secara berkala menyimpan hasil kueri ke dalam cache untuk meningkatkan performa dan efisiensi. Tampilan terwujud menggunakan smart tuning untuk menulis ulang kueri terhadap tabel sumber secara transparan agar menggunakan tampilan terwujud yang ada untuk performa dan efisiensi yang lebih baik.
Cara kerja pemberi rekomendasi
Pemberi rekomendasi membuat rekomendasi setiap hari untuk setiap project yang menjalankan tugas kueri di BigQuery. Rekomendasi didasarkan pada analisis eksekusi workload selama 30 hari terakhir. Pemberi rekomendasi tampilan terwujud mencari pola kueri berulang dan menghitung penghematan yang dapat dilakukan jika subkueri berulang dapat dipindahkan ke tampilan terwujud inkremental. Pemberi rekomendasi mempertimbangkan penghematan apa pun pada waktu kueri dan biaya pemeliharaan akun untuk tampilan terwujud. Jika gabungan faktor ini menunjukkan hasil positif yang signifikan, pemberi rekomendasi akan membuat rekomendasi.
Perhatikan contoh kueri berikut:
WITH revenue AS
(SELECT l_suppkey as supplier_no,
sum(l_extendedprice * (1 - l_discount)) as total_revenue
FROM lineitem
WHERE
l_shipdate >= date '1996-01-01'
AND l_shipdate < date_add(date '1996-01-01', interval 3 MONTH)
GROUP BY l_suppkey)
SELECT s_suppkey,
s_name,
s_address,
s_phone,
total_revenue
FROM
supplier,
revenue
WHERE s_suppkey = supplier_no
AND total_revenue =
(SELECT max(total_revenue)
FROM revenue)
ORDER BY s_suppkey
Contoh kueri ini menampilkan informasi tentang pemasok teratas. Kueri berisi
ekspresi tabel umum (CTE) bernama revenue
yang merepresentasikan total
pendapatan per pemasok (l_suppkey
). revenue
digabungkan dengan tabel
pemasok dengan kondisi bahwa total_revenue
pemasok cocok dengan
max(total_revenue)
di semua pemasok. Akibatnya, kueri menghitung informasi (l_suppkey
, s_name
, s_address
, s_phone
, total_revenue
) tentang pemasok dengan total pendapatan maksimum.
Seluruh kueri itu sendiri terlalu rumit untuk dimasukkan ke dalam tampilan terwujud
inkremental. Namun, CTE supplier
adalah agregasi atas satu
tabel — pola kueri yang didukung oleh tampilan terwujud
inkremental. CTE supplier
juga merupakan bagian kueri yang paling mahal secara komputasi. Oleh karena itu, jika kueri contoh dijalankan berulang kali pada tabel sumber yang terus berubah, pemberi rekomendasi tampilan terwujud mungkin menyarankan untuk menempatkan CTE supplier
ke dalam tampilan terwujud. Rekomendasi tampilan terwujud
untuk contoh kueri sebelumnya mungkin terlihat mirip dengan
berikut ini:
CREATE MATERIALIZED VIEW mv AS
SELECT l_suppkey as supplier_no,
sum(l_extendedprice * (1 - l_discount)) as total_revenue
FROM lineitem
WHERE
l_shipdate >= date '1996-01-01'
AND l_shipdate < date_add(date '1996-01-01', interval 3 MONTH)
GROUP BY l_suppkey
Recommender API juga menampilkan informasi eksekusi kueri dalam bentuk insight. Insight adalah temuan yang membantu Anda memahami workload project, yang memberikan lebih banyak konteks tentang bagaimana rekomendasi tampilan terwujud dapat meningkatkan biaya workload.
Batasan
- Pemberi rekomendasi tampilan terwujud tidak mendukung proses standar untuk menonaktifkan pemrosesan data. Untuk berhenti menerima rekomendasi tampilan terwujud, ikuti petunjuk di Formulir pendaftaran rekomendasi tampilan terwujud.
- Rekomendasi tampilan terwujud tidak dapat diekspor ke BigQuery.
Sebelum memulai
Sebelum dapat melihat atau menerapkan rekomendasi tampilan terwujud, Anda harus mengaktifkan Recommender API.
Izin yang diperlukan
Untuk mendapatkan izin yang
diperlukan untuk mengakses rekomendasi tampilan terwujud,
minta administrator untuk memberi Anda
peran IAM BigQuery Materialized View Recommender Viewer (roles/recommender.bigqueryMaterializedViewViewer
).
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk mengakses rekomendasi tampilan terwujud. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengakses rekomendasi tampilan terwujud:
-
recommender.bigqueryMaterializedViewRecommendations.get
-
recommender.bigqueryMaterializedViewRecommendations.list
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery, baca Pengantar IAM.
Melihat rekomendasi tampilan terwujud
Bagian ini menjelaskan cara melihat rekomendasi dan insight tampilan terwujud menggunakan Google Cloud konsol, Google Cloud CLI, atau Recommender API.
Pilih salah satu opsi berikut:
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di menu navigasi, klik Rekomendasi.
Panel BigQuery Recommendations akan terbuka. Di bagian Optimalkan biaya workload BigQuery, klik Lihat detail.
Daftar rekomendasi akan muncul, yang menampilkan semua rekomendasi yang dihasilkan untuk project saat ini. Untuk melihat informasi selengkapnya tentang rekomendasi tampilan terwujud atau insight tabel tertentu, klik Detail.
Atau, Anda dapat melihat semua rekomendasi yang tersedia untuk project atau organisasi Anda dengan mengklik Rekomendasi di menu navigasi.
gcloud
Untuk melihat rekomendasi tampilan terwujud untuk project tertentu, gunakan
perintah gcloud recommender recommendations list
:
gcloud recommender recommendations list \ --project=PROJECT_NAME \ --location=REGION_NAME \ --recommender=google.bigquery.materializedview.Recommender \ --format=FORMAT_TYPE \
Ganti kode berikut:
PROJECT_NAME
: nama project yang mengeksekusi tugas kueriREGION_NAME
: region tempat tugas kueri dijalankanFORMAT_TYPE
: format output gcloud CLI yang didukung—misalnya, JSON
Properti | Relevan untuk subjenis | Deskripsi |
---|---|---|
recommenderSubtype |
CREATE_MATERIALIZED_VIEW |
Jenis rekomendasi. |
content.overview.sql |
CREATE_MATERIALIZED_VIEW |
Pernyataan DDL yang disarankan untuk membuat tampilan terwujud. |
content.overview.slotMsSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Estimasi milidetik slot yang akan dihemat setiap bulan berdasarkan tampilan yang disarankan. |
content.overview.bytesSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Estimasi byte yang dipindai untuk disimpan setiap bulan menurut tampilan yang disarankan. |
content.overview.baseTables |
CREATE_MATERIALIZED_VIEW |
Dipesan untuk penggunaan di masa mendatang. |
- Untuk mengetahui informasi selengkapnya tentang kolom lain dalam respons
recommendations
, lihat REST Resource:projects.locations.recommenders.recommendation
. - Untuk informasi selengkapnya tentang penggunaan Recommender API, lihat Menggunakan API - Rekomendasi.
Untuk melihat insight yang memicu rekomendasi tampilan terwujud
menggunakan gcloud CLI, gunakan
perintah gcloud recommender insights list
:
gcloud recommender insights list \ --project=PROJECT_NAME \ --location=REGION_NAME \ --insight-type=google.bigquery.materializedview.Insight \ --format=FORMAT_TYPE \
Ganti kode berikut:
PROJECT_NAME
: nama project yang mengeksekusi tugas kueriREGION_NAME
: region tempat tugas kueri dijalankanFORMAT_TYPE
: format output gcloud CLI yang didukung—misalnya, JSON
Properti | Relevan untuk subjenis | Deskripsi |
---|---|---|
content.queryCount |
CREATE_MATERIALIZED_VIEW |
Jumlah kueri dalam periode pengamatan dengan pola berulang yang dapat dioptimalkan menggunakan tampilan terwujud. |
- Untuk mengetahui informasi selengkapnya tentang kolom lain dalam respons insight, lihat Resource REST:
projects.locations.insightTypes.insights
. - Untuk informasi selengkapnya tentang penggunaan insight, lihat Menggunakan API - Insight.
REST API
Untuk melihat rekomendasi tampilan terwujud untuk project tertentu, gunakan REST API. Dengan setiap perintah, Anda harus menyediakan token autentikasi, yang bisa Anda dapatkan menggunakan gcloud CLI. Untuk mengetahui informasi lebih lanjut mengenai cara mendapatkan token autentikasi, baca Metode untuk mendapatkan token ID.
Anda dapat menggunakan permintaan curl list
untuk melihat semua rekomendasi untuk
project tertentu:
$ curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/PROJECT_NAME/locations/LOCATION/recommenders/google.bigquery.materializedview.Recommender/recommendations
Ganti kode berikut:
PROJECT_NAME
: nama project yang berisi tabel BigQuery AndaLOCATION
: lokasi tempat project berada.
Properti | Relevan untuk subjenis | Deskripsi |
---|---|---|
recommenderSubtype |
CREATE_MATERIALIZED_VIEW |
Jenis rekomendasi. |
content.overview.sql |
CREATE_MATERIALIZED_VIEW |
Pernyataan DDL yang disarankan untuk membuat tampilan terwujud. |
content.overview.slotMsSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Estimasi milidetik slot yang akan dihemat setiap bulan berdasarkan tampilan yang disarankan. |
content.overview.bytesSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Estimasi byte yang dipindai untuk disimpan setiap bulan menurut tampilan yang disarankan. |
content.overview.baseTables |
CREATE_MATERIALIZED_VIEW |
Dipesan untuk penggunaan di masa mendatang. |
- Untuk mengetahui informasi selengkapnya tentang kolom lain dalam respons
recommendations
, lihat REST Resource:projects.locations.recommenders.recommendation
. - Untuk informasi selengkapnya tentang penggunaan Recommender API, lihat Menggunakan API - Rekomendasi.
Untuk melihat insight yang memunculkan rekomendasi tampilan terwujud menggunakan REST API, jalankan perintah berikut:
$ curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/PROJECT_NAME/locations/LOCATION/insightTypes/google.bigquery.materializedview.Insight/insights
Ganti kode berikut:
PROJECT_NAME
: nama project yang berisi tabel BigQuery AndaLOCATION
: lokasi tempat project berada.
Properti | Relevan untuk subjenis | Deskripsi |
---|---|---|
content.queryCount |
CREATE_MATERIALIZED_VIEW |
Jumlah kueri dalam periode pengamatan dengan pola berulang yang dapat dioptimalkan menggunakan tampilan terwujud. |
- Untuk mengetahui informasi selengkapnya tentang kolom lain dalam respons insight, lihat Resource REST:
projects.locations.insightTypes.insights
. - Untuk informasi selengkapnya tentang penggunaan insight, lihat Menggunakan API - Insight.
Melihat rekomendasi dengan INFORMATION_SCHEMA
Anda juga dapat melihat rekomendasi dan insight menggunakan tampilan INFORMATION_SCHEMA
. Misalnya, Anda dapat menggunakan tampilan INFORMATION_SCHEMA.RECOMMENDATIONS
untuk melihat tiga rekomendasi teratas berdasarkan penghematan slot, seperti yang terlihat dalam contoh berikut:
+---------------------------------------------------+--------------------------------------------------------------------------------------------------+ | recommender | target_resources | est_gb_saved_monthly | slot_hours_saved_monthly | last_updated_time +---------------------------------------------------+--------------------------------------------------------------------------------------------------+ | google.bigquery.materializedview.Recommender | ["project_resource"] | 140805.38289248943 | 9613.139166666666 | 2024-07-01 13:00:00 | google.bigquery.table.PartitionClusterRecommender | ["table_resource_1"] | 4393.7416711859405 | 56.61476777777777 | 2024-07-01 13:00:00 | google.bigquery.table.PartitionClusterRecommender | ["table_resource_2"] | 3934.07264107652 | 10.499466666666667 | 2024-07-01 13:00:00 +---------------------------------------------------+--------------------------------------------------------------------------------------------------+
Untuk informasi selengkapnya, lihat referensi berikut:
INFORMATION_SCHEMA.RECOMMENDATIONS
lihatINFORMATION_SCHEMA.RECOMMENDATIONS_BY_ORGANIZATION
lihatINFORMATION_SCHEMA.INSIGHTS
lihat
Menerapkan rekomendasi tampilan terwujud
Anda dapat menerapkan rekomendasi untuk membuat tampilan terwujud dengan menjalankan pernyataan DDL jenis CREATE MATERIALIZED VIEW
yang disarankan di konsol Google Cloud .
Di Google Cloud konsol, buka halaman BigQuery.
Di menu navigasi, klik Rekomendasi.
Panel BigQuery Recommendations akan terbuka. Di bagian Optimalkan biaya workload BigQuery, klik Lihat detail.
Daftar rekomendasi akan muncul, yang menampilkan semua rekomendasi yang dihasilkan untuk project atau organisasi saat ini, bergantung pada cakupan yang dipilih. Temukan rekomendasi tampilan yang diwujudkan dan klik Detail.
Klik Lihat di BigQuery Studio. Editor SQL akan terbuka dan berisi pernyataan DDL
CREATE MATERIALIZED VIEW
.Dalam pernyataan
CREATE MATERIALIZED VIEW
yang diberikan, ubah placeholderMATERIALIZED_VIEW
dengan nama tampilan terwujud yang unik.Jalankan pernyataan DDL
CREATE MATERIALIZED VIEW
untuk membuat tampilan terwujud yang direkomendasikan.
Memecahkan masalah rekomendasi
Masalah: Tidak ada rekomendasi yang muncul untuk tabel tertentu.
Rekomendasi tampilan terwujud mungkin tidak muncul dalam situasi berikut:
- Tidak ada pola kueri berulang yang ditemukan di antara tugas kueri yang dijalankan oleh project.
- Pola kueri berulang tidak memenuhi batasan untuk tampilan terwujud inkremental dan tidak dapat dimasukkan ke dalam tampilan terwujud yang cocok untuk smart tuning.
- Tampilan terwujud potensial akan memiliki biaya pemeliharaan yang tinggi. Misalnya, tabel sumber sering diubah oleh operasi bahasa pengolahan data (DML), sehingga tampilan terwujud akan mengalami refresh penuh, yang menimbulkan biaya lebih lanjut.
- Jumlah kueri yang memiliki pola berulang yang sama tidak mencukupi.
- Estimasi penghematan bulanan terlalu tidak signifikan (kurang dari 1 slot).
- Tugas kueri yang dijalankan oleh project sudah menggunakan tampilan terwujud.
Harga
Tidak ada biaya atau dampak buruk terhadap performa workload jika Anda melihat rekomendasi.
Saat menerapkan rekomendasi dengan membuat tampilan terwujud, Anda dapat dikenai biaya penyimpanan, pemeliharaan, dan kueri. Untuk mengetahui informasi selengkapnya, lihat Harga Tampilan Terwujud.