Mengelola rekomendasi tampilan terwujud

Dokumen ini menjelaskan cara kerja pemberi rekomendasi tampilan terwujud, serta 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 dikomputasi sebelumnya yang menyimpan hasil kueri secara berkala untuk meningkatkan performa dan efisiensi. Tampilan terwujud menggunakan smart tuning untuk menulis ulang kueri secara transparan terhadap tabel sumber guna menggunakan tampilan terwujud yang sudah ada untuk performa dan efisiensi yang lebih baik.

Cara kerja pemberi rekomendasi

Pemberi rekomendasi menghasilkan 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 memperhitungkan penghematan waktu kueri dan biaya pemeliharaan akun untuk tampilan terwujud. Jika gabungan beberapa faktor ini menunjukkan hasil positif yang signifikan, pemberi rekomendasi akan memberikan 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 menunjukkan informasi tentang pemasok teratas. Kueri 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 max(total_revenue) di semua pemasok. Akibatnya, kueri tersebut 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 dari 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 dengan terus mengubah tabel sumber, maka pemberi rekomendasi tampilan terwujud mungkin menyarankan untuk menempatkan CTE supplier dalam tampilan terwujud. Rekomendasi tampilan terwujud untuk kueri contoh 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 beban kerja project, yang memberikan lebih banyak konteks tentang bagaimana rekomendasi tampilan terwujud dapat meningkatkan biaya workload.

Batasan

Sebelum memulai

Sebelum dapat melihat atau menerapkan rekomendasi tampilan terwujud, Anda perlu mengaktifkan Recommender API.

Izin yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk mengakses rekomendasi tampilan yang 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.

Peran bawaan ini berisi izin yang diperlukan untuk mengakses rekomendasi tampilan terwujud. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengakses rekomendasi tampilan terwujud:

  • recommender.bigqueryMaterializedViewRecommendations.get
  • recommender.bigqueryMaterializedViewRecommendations.list

Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.

Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery, baca Pengantar IAM.

Lihat rekomendasi tampilan terwujud

Bagian ini menjelaskan cara melihat rekomendasi dan insight tampilan yang terwujud 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 BigQuery Recommendations akan terbuka. Di bagian Optimalkan biaya beban kerja BigQuery, klik Lihat detail.

    Lihat detail untuk melihat semua rekomendasi BigQuery

  4. Daftar rekomendasi akan muncul, yang menampilkan semua rekomendasi yang dibuat untuk project saat ini. Setiap rekomendasi dalam daftar ini menampilkan perkiraan penghematan jika rekomendasi tersebut diterapkan. Untuk melihat informasi selengkapnya tentang rekomendasi tampilan terwujud atau insight tabel tertentu, klik Detail.

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 `rekomendasi`:

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 Perkiraan slot milidetik yang akan dihemat setiap bulan menurut tampilan yang disarankan.
content.overview.bytesSavedMonthly CREATE_MATERIALIZED_VIEW Perkiraan byte yang dipindai untuk disimpan setiap bulan menurut tampilan yang disarankan.
content.overview.baseTables CREATE_MATERIALIZED_VIEW Dipesan untuk penggunaan di masa mendatang.

Untuk melihat insight yang meminta 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 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 lokasi project.
Tabel berikut menjelaskan kolom penting dari respons `rekomendasi`:

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 Perkiraan slot milidetik yang akan dihemat setiap bulan menurut tampilan yang disarankan.
content.overview.bytesSavedMonthly CREATE_MATERIALIZED_VIEW Perkiraan byte yang dipindai untuk disimpan setiap bulan menurut tampilan yang disarankan.
content.overview.baseTables CREATE_MATERIALIZED_VIEW Dipesan untuk penggunaan di masa mendatang.

Untuk melihat insight yang meminta 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 Anda
  • LOCATION: lokasi lokasi project.
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.

Terapkan 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 BigQuery Recommendations akan terbuka. Di bagian Optimalkan biaya beban kerja BigQuery, klik Lihat detail.

    Lihat detail untuk melihat semua rekomendasi BigQuery

  4. Daftar rekomendasi akan muncul, yang menampilkan semua rekomendasi yang dibuat untuk project saat ini. Temukan rekomendasi tampilan terwujud, lalu 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 keadaan berikut:

  • Tidak ada pola kueri berulang yang ditemukan di antara tugas kueri yang dijalankan oleh sebuah 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 potensial akan memiliki biaya pemeliharaan yang tinggi. Misalnya, tabel sumber sering kali dimodifikasi oleh operasi bahasa manipulasi data (DML), sehingga tampilan terwujud akan menjalani refresh penuh, sehingga menimbulkan biaya lebih lanjut.
  • Jumlah kueri yang memiliki pola berulang yang umum tidak mencukupi.
  • Perkiraan 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 pembuatan kueri. Untuk informasi selengkapnya, lihat Harga Tampilan Terwujud.