Mengelola rekomendasi tampilan terwujud

Dokumen ini menjelaskan cara kerja pemberi rekomendasi tampilan terwujud, dan juga menunjukkan cara melihat dan menerapkan rekomendasi tampilan terwujud.

Pengantar

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 secara transparan terhadap tabel sumber untuk menggunakan tampilan terwujud yang ada guna meningkatkan performa dan efisiensi.

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. Rekomendasi tampilan terwujud mencari pola kueri berulang dan menghitung penghematan yang dapat dilakukan jika subkueri berulang dapat dipindahkan ke tampilan terwujud inkremental. Rekomendasi mempertimbangkan penghematan pada waktu kueri dan biaya pemeliharaan akun untuk tampilan terwujud. Jika faktor gabungan 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 ini berisi ekspresi tabel umum (CTE) bernama revenue yang mewakili total pendapatan per setiap pemasok (l_suppkey). revenue digabungkan dengan tabel pemasok dengan syarat total_revenue pemasok cocok dengan max(total_revenue) di semua pemasok. Akibatnya, kueri akan 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 contoh kueri dijalankan berulang kali pada tabel sumber yang terus-menerus berubah, perekomendasikan tampilan terwujud mungkin menyarankan untuk memasukkan CTE supplier ke dalam tampilan terwujud. Rekomendasi tampilan terwujud untuk contoh kueri sebelumnya mungkin terlihat mirip dengan berikut:

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 yang diwujudkan dapat meningkatkan biaya workload.

Batasan

Sebelum memulai

Sebelum dapat melihat atau menerapkan rekomendasi tampilan yang diwujudkan, 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 yang telah ditentukan 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 yang diwujudkan menggunakan Konsol Google Cloud, Google Cloud CLI, atau Recommender API.

Pilih salah satu opsi berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Klik Rekomendasi.

    Klik Rekomendasi untuk melihat semua rekomendasi.

  3. Panel Rekomendasi BigQuery akan terbuka. Di bagian Optimalkan biaya workload BigQuery, klik Lihat detail.

    Melihat detail untuk melihat semua rekomendasi BigQuery

  4. Daftar rekomendasi akan muncul, yang menampilkan semua rekomendasi yang dihasilkan untuk project saat ini. Untuk melihat informasi selengkapnya tentang rekomendasi tampilan yang diwujudkan atau insight tabel tertentu, klik Detail.

Atau, Anda dapat melihat semua rekomendasi yang tersedia untuk project atau organisasi Anda dengan mengklik Rekomendasi di navigasi samping.

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 menjalankan tugas kueri
  • REGION_NAME: region tempat tugas kueri dijalankan
  • FORMAT_TYPE: format output gcloud CLI yang didukung—misalnya, JSON
Tabel berikut menjelaskan kolom penting dari respons `recommendations`:

Properti Relevan untuk subjenis Deskripsi
recommenderSubtype CREATE_MATERIALIZED_VIEW Jenis rekomendasi.
content.overview.sql CREATE_MATERIALIZED_VIEW Pernyataan DDL yang disarankan yang membuat tampilan terwujud.
content.overview.slotMsSavedMonthly CREATE_MATERIALIZED_VIEW Estimasi milidetik slot yang akan disimpan setiap bulan berdasarkan tampilan yang disarankan.
content.overview.bytesSavedMonthly CREATE_MATERIALIZED_VIEW Estimasi byte yang dipindai untuk disimpan setiap bulan berdasarkan tampilan yang disarankan.
content.overview.baseTables CREATE_MATERIALIZED_VIEW Dipesan untuk penggunaan di masa mendatang.

Untuk melihat insight yang meminta rekomendasi tampilan yang diwujudkan 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 menjalankan tugas kueri
  • REGION_NAME: region tempat tugas kueri dijalankan
  • FORMAT_TYPE: format output gcloud CLI yang didukung—misalnya, JSON
Tabel berikut menjelaskan kolom penting dari respons API insight:

Properti Relevan untuk subjenis Deskripsi
content.queryCount CREATE_MATERIALIZED_VIEW Jumlah kueri dalam periode pengamatan dengan pola berulang yang dapat dioptimalkan menggunakan tampilan terwujud.

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 Anda
  • LOCATION: lokasi tempat project berada.
Tabel berikut menjelaskan kolom penting dari respons `recommendations`:

Properti Relevan untuk subjenis Deskripsi
recommenderSubtype CREATE_MATERIALIZED_VIEW Jenis rekomendasi.
content.overview.sql CREATE_MATERIALIZED_VIEW Pernyataan DDL yang disarankan yang membuat tampilan terwujud.
content.overview.slotMsSavedMonthly CREATE_MATERIALIZED_VIEW Estimasi milidetik slot yang akan disimpan setiap bulan berdasarkan tampilan yang disarankan.
content.overview.bytesSavedMonthly CREATE_MATERIALIZED_VIEW Estimasi byte yang dipindai untuk disimpan setiap bulan berdasarkan tampilan yang disarankan.
content.overview.baseTables CREATE_MATERIALIZED_VIEW Dipesan untuk penggunaan di masa mendatang.

Untuk melihat insight yang memicu rekomendasi tampilan yang diwujudkan 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 Anda
  • LOCATION: lokasi tempat project berada.
Tabel berikut menjelaskan kolom penting dari respons API insight:

Properti Relevan untuk subjenis Deskripsi
content.queryCount CREATE_MATERIALIZED_VIEW Jumlah kueri dalam periode pengamatan dengan pola berulang yang dapat dioptimalkan menggunakan tampilan terwujud.

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:

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.

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Klik Rekomendasi.

    Klik Rekomendasi untuk melihat semua rekomendasi.

  3. Panel Rekomendasi BigQuery akan terbuka. Di bagian Optimalkan biaya workload BigQuery, klik Lihat detail.

    Melihat detail untuk melihat semua rekomendasi BigQuery

  4. 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 Details.

  5. Klik Lihat di BigQuery Studio. Editor SQL akan terbuka yang berisi pernyataan DDL CREATE MATERIALIZED VIEW.

  6. Dalam pernyataan CREATE MATERIALIZED VIEW yang diberikan, ubah placeholder MATERIALIZED_VIEW dengan nama tampilan terwujud yang unik.

  7. 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 sesuai untuk smart-tuning.
  • Tampilan terwujud potensial akan memiliki biaya pemeliharaan yang tinggi. Misalnya, tabel sumber sering diubah oleh operasi bahasa manipulasi data (DML), sehingga tampilan yang diwujudkan akan mengalami refresh penuh, sehingga menimbulkan biaya lebih lanjut.
  • Jumlah kueri yang memiliki pola berulang umum tidak memadai.
  • 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.