MaxCompute menganalisis pola baca dan tulis terkini dari tabel Anda untuk menghasilkan rekomendasi optimasi pengelompokan. Rekomendasi ini dapat membantu meningkatkan performa pekerjaan dan mengurangi konsumsi CU. Gunakan perkiraan manfaat dan saran detail untuk memutuskan apakah akan menerapkan rekomendasi tersebut.
Batasan
-
Wilayah yang didukung: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Shenzhen), dan Tiongkok (Chengdu).
-
Rekomendasi optimasi pengelompokan tidak didukung untuk proyek model tiga tingkat.
-
Analisis optimasi pengelompokan mencakup riwayat eksekusi sebagian besar pekerjaan, tetapi mengecualikan pekerjaan yang memiliki beberapa Fuxi Job, sehingga sejumlah kecil pekerjaan mungkin tidak dianalisis.
-
Untuk informasi tentang mengoptimalkan pekerjaan yang menggunakan tabel terkluster, lihat Hash Clustering.
Lihat rekomendasi optimasi pengelompokan
Anda dapat melihat daftar tabel yang direkomendasikan, perkiraan manfaat setelah pengelompokan, serta saran detail untuk semua atau proyek tertentu di wilayah saat ini. Ikuti langkah-langkah berikut:
-
Masuk ke MaxCompute console dan pilih wilayah di pojok kiri atas.
-
Pada panel navigasi kiri, pilih .
-
Pada tab Clustering Optimization, pilih Estimated Benefits, lalu atur parameter filter untuk melihat apakah ada tabel yang direkomendasikan untuk dikluster.
Parameter
Deskripsi
Project Name
Pilih proyek MaxCompute dari daftar drop-down. Jika Anda tidak memilih proyek, nilai default-nya adalah All Projects.
Table Name
Masukkan nama tabel. Pencarian fuzzy didukung. Pisahkan beberapa nama tabel dengan koma (
,).Recommendation Generation Date
Tanggal saat rekomendasi dihasilkan. Hari sebelumnya dipilih secara default.
-
Metrik perkiraan manfaat
Metrik
Deskripsi
Estimated Number of Beneficial Jobs/Day
Perkiraan jumlah pekerjaan harian yang akan mendapat manfaat jika tabel dikonversi menjadi tabel terkluster.
Estimated Shuffle Reduction/Day
Perkiraan pengurangan volume shuffle harian setelah tabel yang direkomendasikan dikonversi menjadi tabel terkluster.
Mengurangi volume shuffle secara efektif menurunkan konsumsi Jam-CU oleh pekerjaan. Biasanya, pengurangan 1 TB volume shuffle menghemat 2 hingga 4 Jam-CU per hari.
-
Daftar rekomendasi optimasi
Tinjau nilai yang disarankan untuk parameter dalam daftar dan lihat rekomendasi untuk informasi lebih lanjut tentang optimasi tabel.
Kolom
Deskripsi
Project
Proyek yang berisi tabel yang direkomendasikan.
Table Name
Nama tabel yang direkomendasikan.
Type
Jenis pengelompokan yang direkomendasikan untuk tabel. Saat ini, hanya rekomendasi Hash Clustering yang didukung.
Recommended Clustering Key
Kunci kluster yang direkomendasikan untuk tabel. Kunci ini terutama memengaruhi Shuffle Removal dan penyaringan data untuk point lookups.
Recommended Sort Key
Kunci pengurutan yang direkomendasikan untuk tabel. Kunci ini terutama memengaruhi penyaringan data dan kompresi penyimpanan.
Bucket Count
Jumlah bucket yang direkomendasikan untuk tabel. Jumlah ini terutama memengaruhi paralelisme operasi penulisan tabel dan pekerjaan baca tabel yang menggunakan Shuffle Removal.
Recommendation Index
Peringkat bintang 1 hingga 5. Semakin banyak bintang, semakin kuat rekomendasi untuk memodifikasi atribut pengelompokan tabel. Peringkat bintang dihitung sebagai berikut:
Dimensi evaluasi
Aturan Deduksi
Denda
Ketepatan waktu pola yang dapat dioptimalkan
Jendela pengamatan kurang dari 14 hari
Kurangi 1 bintang
Pengurangan volume shuffle saat baca
Pengurangan kurang dari 1 TB
Kurangi 1 bintang
Aktivitas pekerjaan tulis
Tidak ada pekerjaan tulis yang tercatat pada hari tersebut
Kurangi 1 bintang
Jumlah partisi yang dapat dioptimalkan
-
Kurangi 1 bintang jika jumlah partisi yang dapat dioptimalkan lebih dari 3
-
Kurangi 2 bintang jika jumlah partisi yang dapat dioptimalkan lebih dari 31
Penyesuaian dinamis
Catatan-
Jika tidak ada pekerjaan tulis yang tercatat pada hari tersebut, satu bintang dikurangi karena peningkatan biaya penulisan harian tidak dapat diperkirakan.
-
Jika terdapat banyak partisi yang dapat dioptimalkan, optimasi pengelompokan baru berlaku setelah banyak partisi yang ada ditulis ulang dengan data baru atau ditulis ulang secara aktif. Penundaan ini menyebabkan pengurangan bintang.
Estimated Shuffle Reduction/Day
Perkiraan pengurangan volume shuffle harian setelah tabel dikonversi menjadi tabel terkluster.
Observation Interval
Jumlah hari rekomendasi optimasi yang sama muncul selama periode pengamatan.
Actions
Klik rekomendasi untuk membuka halaman Details of Table with Optimization Recommendations. Halaman ini mencakup bagian-bagian berikut:
-
Optimization Recommendations
-
Current Status
-
Overview of Estimated Benefits
-
Estimated Shuffle Reduction/Day
-
Beneficial Table Read Jobs
-
Full Table Write Jobs
-
Full Table Read Jobs
-
-
-
Terapkan rekomendasi optimasi pengelompokan
Terapkan rekomendasi ke tabel asli
-
Gunakan konsol
Untuk tabel partisi, Anda dapat langsung menerapkan rekomendasi untuk mengonversi tabel asli menjadi tabel terkluster hanya dengan satu klik. Ikuti langkah-langkah berikut:
-
Pada panel navigasi kiri, pilih .
-
Pada tab Clustering Optimization, pilih Estimated Benefits.
-
Pada kolom Actions untuk tabel target, klik View Details untuk membuka halaman Details of Table with Optimization Recommendations.
-
Di pojok kanan atas, klik Apply Recommendations untuk menyelesaikan konversi.
-
-
Gunakan perintah SQL:
-- Ubah tabel menjadi tabel Hash Clustering. ALTER TABLE <table_name> [CLUSTERED BY (<col_name> [, <col_name>, ...]) [SORTED BY (<col_name> [ASC | DESC] [, <col_name> [ASC | DESC] ...])] INTO <number_of_buckets> BUCKETS]; -
Setelah konversi, periksa tabel terkluster yang telah dioptimalkan dan jalankan pekerjaan baca terkait untuk memastikan semuanya berjalan sesuai harapan. Jika muncul masalah, segera lakukan rollback dengan menjalankan perintah berikut:
-- Ubah tabel Hash Clustering kembali menjadi tabel non-terkluster. ALTER TABLE <table_name> NOT CLUSTERED;
-
Setelah Anda mengonversi tabel menjadi tabel terkluster, Anda tidak dapat melakukan penulisan inkremental, seperti
INSERT INTOatau unggah data melalui Tunnel. -
Anda tidak dapat menerapkan rekomendasi pengelompokan langsung ke tabel non-partisi.
-
Setelah atribut pengelompokan dimodifikasi, latensi dan konsumsi CU pekerjaan tulis meningkat. Konsumsi CU pekerjaan baca menurun, sehingga menghasilkan penghematan CU bersih secara keseluruhan.
-
Dalam beberapa skenario, kami merekomendasikan agar Anda menulis ulang partisi dan memverifikasi manfaatnya untuk pekerjaan downstream yang dapat dioptimalkan. Untuk informasi lebih lanjut, lihat Rewrite partition data (Recommended).
Menulis ulang data partisi (Direkomendasikan)
Saat Anda memodifikasi atribut pengelompokan tabel, perubahan tersebut hanya berlaku untuk partisi baru. Untuk menerapkan optimasi ke partisi yang sudah ada, Anda harus menulis ulang datanya. Dalam skenario berikut, Anda perlu menulis ulang partisi dan memverifikasi manfaatnya untuk pekerjaan downstream yang dapat dioptimalkan:
-
Tabel tersebut merupakan dependensi untuk pekerjaan prioritas tinggi yang sensitif terhadap latensi.
-
Tabel memiliki partisi besar di mana operasi penulisan tunggal melebihi 10 TB.
-
Pekerjaan downstream membaca dari beberapa partisi, yang harus ditulis ulang secara bersamaan sebagai partisi terkluster agar optimasi dapat diterapkan.
-
Untuk tabel besar dalam pekerjaan merge harian full-and-incremental, tulis ulang partisi hari terakhir. Praktik ini mengurangi risiko peningkatan biaya dan waktu eksekusi yang lebih lambat pada eksekusi awal pekerjaan hari berikutnya.
-- Asumsikan kolom partisi adalah ds, dan partisi baru seperti 20241015 dan 20241016 ditambahkan setiap hari. -- Data dalam partisi baru dihasilkan dengan menggabungkan data inkremental dari partisi hari sebelumnya. INSERT OVERWRITE TABLE <table_name> PARTITION(ds) SELECT * FROM <table_name> WHERE ds = max_pt('<table_name>'); -
Jika pekerjaan yang dapat dioptimalkan membaca dari beberapa partisi yang sudah ada, kami merekomendasikan untuk menulis ulang partisi yang ada dalam rentang baca agar optimasi pengelompokan dapat diterapkan lebih cepat.
-- Asumsikan kolom partisi adalah ds, dan partisi baru seperti 20241015, 20241016, dll., ditambahkan setiap hari. -- Rentang baca dimulai dari 20241015. INSERT OVERWRITE TABLE <table_name> PARTITION(ds) SELECT * FROM <table_name> WHERE ds >='20241015'; -
Setelah menulis ulang, kami merekomendasikan untuk menjalankan uji coba pekerjaan yang dapat dioptimalkan guna memverifikasi efektivitas optimasi tersebut.
Terapkan rekomendasi ke tabel baru
Untuk tabel non-partisi, Anda tidak dapat langsung memodifikasi atribut pengelompokan tabel asli. Anda harus menerapkan rekomendasi secara manual dengan membuat tabel terkluster baru. Ikuti langkah-langkah berikut:
-
Buat tabel terkluster baru.
-- Periksa pernyataan CREATE TABLE dari tabel yang ada. SHOW CREATE TABLE <original_table>; -- Buat tabel terkluster baru dengan menyisipkan informasi CLUSTER pada posisi yang tepat dalam sintaks CREATE TABLE. CREATE TABLE <new_table> [CLUSTERED BY (<col_name> [, <col_name>, ...]) [SORTED BY (<col_name> [ASC | DESC] [, <col_name> [ASC | DESC] ...])] INTO <number_of_buckets> BUCKETS]; -
Muat data ke tabel baru.
INSERT OVERWRITE TABLE <new_table> SELECT * FROM <original_table>; -
Ubah nama tabel asli menjadi tabel cadangan.
ALTER TABLE <original_table> RENAME TO <original_table_backup>; -
Ubah nama tabel baru menjadi nama tabel asli.
ALTER TABLE <new_table> RENAME TO <original_table>;
Tabel baru, yang kini berganti nama menjadi nama tabel asli, mengkluster data sesuai dengan atribut pengelompokan baru.
Membatalkan penerapan rekomendasi pengelompokan
Periksa tabel terkluster baru untuk memastikan semua pekerjaan berjalan sesuai harapan. Jika muncul masalah, segera lakukan rollback dengan menjalankan perintah berikut:
-
Hapus tabel baru yang memiliki nama yang sama dengan tabel asli.
DROP TABLE IF EXISTS <original_table>; -
Ubah nama tabel cadangan menjadi nama tabel asli.
ALTER TABLE <original_table_backup> RENAME TO <original_table>;
Lihat manfaat optimasi pengelompokan
Pada tab Clustering Optimization, klik Actual Benefits untuk melihat manfaat optimasi pengelompokan. Ikuti langkah-langkah berikut:
-
Masuk ke MaxCompute console dan pilih wilayah di pojok kiri atas.
-
Pada panel navigasi kiri, pilih .
-
Pada tab Clustering Optimization, pilih Actual Benefits.
-
Filter berdasarkan Project Name dan Analysis Time untuk melihat ringkasan dan detail manfaat yang diperoleh dari tabel terkluster dengan atribut pengelompokan yang telah dimodifikasi.
-
Deskripsi metrik manfaat
Metrik
Deskripsi
Number of Benefited Jobs
Jumlah pembacaan pada tabel terkluster yang baru saja dimodifikasi selama periode analisis.
Saved CU-hours
Penghematan Jam-CU dari semua pekerjaan yang membaca tabel terkluster yang dimodifikasi selama periode analisis, dibandingkan dengan konsumsi sebelum modifikasi.
Reduced Shuffle Amount
Pengurangan volume shuffle dari semua pekerjaan yang membaca tabel terkluster yang baru dimodifikasi selama periode analisis, dibandingkan dengan volume shuffle sebelum modifikasi.
Manfaat optimasi pengelompokan dihitung dengan membandingkan konsumsi rata-rata pekerjaan yang memiliki Signature yang sama sebelum dan sesudah modifikasi. Statistik ini mencakup tabel terkluster yang dimodifikasi berdasarkan rekomendasi dalam 365 hari terakhir.
-
Daftar tabel yang dioptimalkan
Kolom
Deskripsi
Project
Proyek yang berisi tabel terkluster dengan atribut pengelompokan yang telah dimodifikasi.
Table Name
Nama tabel dengan atribut pengelompokan yang telah dimodifikasi.
Clustering Attribute Modification Time
Tanggal terakhir atribut pengelompokan tabel dimodifikasi.
Number of Benefited Jobs
Jumlah kali tabel dibaca selama periode analisis setelah atribut pengelompokannya dimodifikasi.
Saved Computing Duration
Pengurangan durasi komputasi untuk pekerjaan yang membaca tabel ini selama periode analisis, dibandingkan dengan durasi sebelum atribut dimodifikasi.
Saved CU-hours
Pengurangan konsumsi Jam-CU untuk pekerjaan yang membaca tabel ini selama periode analisis, dibandingkan dengan konsumsi sebelum atribut dimodifikasi.
Reduced Shuffle Amount
Pengurangan volume shuffle untuk pekerjaan yang membaca tabel ini selama periode analisis, dibandingkan dengan volume sebelum atribut dimodifikasi.
Actions
Klik rekomendasi untuk membuka halaman Details of Optimized Table. Halaman ini mencakup bagian-bagian berikut:
-
Current Status of Table
-
Clustering Type
-
Cluster key
-
Sort key
-
Number of Buckets
-
Partition Key
-
-
Benefit Overview
-
Number of Benefited Jobs
-
Saved CU-hours
-
Reduced Shuffle Amount
-
-
Daftar pekerjaan baca yang mendapat manfaat
-
Signature
-
Saved Computing Duration
-
Saved CU-hours
-
Reduced Shuffle Amount
-
-
Penting-
Setelah Anda mengonversi tabel menjadi tabel terkluster, statistik manfaat pekerjaan harian diperbarui dengan basis T+1. Untuk hasil optimasi real-time, gunakan alat O&M pekerjaan atau LogView.
-
Statistik manfaat optimasi pengelompokan didasarkan pada data historis eksekusi pekerjaan dengan Signature yang sama dan dipengaruhi oleh faktor-faktor seperti fluktuasi performa pekerjaan harian. Jika Anda menemukan bahwa manfaatnya tidak sesuai ekspektasi, bandingkan detail eksekusi pekerjaan dari tanggal berbeda untuk mengidentifikasi faktor yang memengaruhi.
-
Statistik manfaat optimasi pengelompokan hanya bersifat referensi. Untuk penghematan CU akhir, rujuk tagihan Anda.
-