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
- Pemberi rekomendasi tampilan terwujud tidak mendukung proses standar untuk memilih tidak ikut pemrosesan data. Untuk berhenti menerima rekomendasi tampilan terwujud, ikuti petunjuk di formulir Pendaftaran Gemini di BigQuery Pra-GA.
- Rekomendasi tampilan terwujud tidak dapat diekspor ke BigQuery.
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
Di konsol Google Cloud, buka halaman BigQuery.
Klik
Rekomendasi.Panel Rekomendasi BigQuery 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 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 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 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 mengetahui informasi selengkapnya tentang kolom lain dalam respons
recommendations
, lihat Resource REST:projects.locations.recommenders.recommendation
. - Untuk informasi selengkapnya tentang penggunaan Recommender API, lihat Menggunakan API - Rekomendasi.
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 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 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 mengetahui informasi selengkapnya tentang kolom lain dalam respons
recommendations
, lihat Resource REST:projects.locations.recommenders.recommendation
. - Untuk informasi selengkapnya tentang penggunaan Recommender API, lihat Menggunakan API - Rekomendasi.
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 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:
- Tampilan
INFORMATION_SCHEMA.RECOMMENDATIONS
- Tampilan
INFORMATION_SCHEMA.RECOMMENDATIONS_BY_ORGANIZATION
- Tampilan
INFORMATION_SCHEMA.INSIGHTS
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 Konsol Google Cloud, buka halaman BigQuery.
Klik
Rekomendasi.Panel Rekomendasi BigQuery 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 Details.
Klik Lihat di BigQuery Studio. Editor SQL akan terbuka yang 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 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.