All Products
Search
Document Center

MaxCompute:Rekomendasi optimasi pengelompokan

Last Updated:Jan 06, 2026

Dalam pemrosesan data skala besar, operasi seperti JOIN dan GROUP BY sering memicu pengacakan data dalam jumlah besar, yang menyebabkan konsumsi CU tinggi dan kinerja pekerjaan melambat. Untuk mengatasi hal ini, optimalkan tata letak fisik data dengan menggunakan pengelompokan (clustering), yang dapat menghilangkan kebutuhan akan pengacakan. Namun, mengidentifikasi tabel dan kunci pengelompokan yang tepat bisa jadi kompleks. Rekomendasi optimasi pengelompokan mengotomatiskan proses ini dengan menganalisis pola baca-tulis historis suatu tabel untuk memberikan saran yang tepat dan dapat ditindaklanjuti guna menerapkan Hash Clustering. Penerapan rekomendasi ini secara signifikan mengurangi volume pengacakan, sehingga mempercepat eksekusi pekerjaan dan menurunkan biaya CU.

Lingkup

  • 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 lapis.

  • Statistik mencakup riwayat eksekusi sebagian besar pekerjaan, tetapi mungkin tidak mencakup pekerjaan kompleks yang memiliki beberapa tugas eksekusi dasar. Akibatnya, rekomendasi mungkin tidak mencakup setiap pekerjaan.

  • Untuk detail tentang Hash Clustering, lihat Hash Clustering.

Lihat rekomendasi optimasi pengelompokan

Anda dapat melihat daftar tabel yang direkomendasikan, perkiraan manfaat dari pengelompokannya, serta saran terperinci untuk satu atau semua proyek di wilayah saat ini. Informasi ini membantu Anda memutuskan apakah akan menerapkan rekomendasi pengelompokan tersebut.

  1. Masuk ke MaxCompute console, lalu pilih wilayah di pojok kiri atas.

  2. Pada panel navigasi di sebelah kiri, pilih Intelligent Optimization > Data Layout Optimization.

  3. Pada tab Clustering Optimization, klik Estimated Benefits dan gunakan filter untuk memeriksa tabel yang memiliki rekomendasi pengelompokan.

    Parameter

    Deskripsi

    Project Name

    Pilih proyek MaxCompute. Jika tidak dipilih, 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. Nilai default-nya adalah hari sebelumnya.

    • Metrik manfaat perkiraan

      Metric

      Deskripsi

      Estimated Number of Beneficial Jobs/Day

      Perkiraan jumlah pekerjaan per hari yang akan mendapat manfaat dari pengelompokan tabel tersebut.

      Estimated Shuffle Reduction/Day

      Perkiraan pengurangan harian volume pengacakan jika tabel dikonversi menjadi tabel terkluster.
      Mengurangi volume pengacakan secara langsung menurunkan konsumsi Jam-CU pekerjaan. Sebagai pedoman umum, setiap pengurangan 1 TB pengacakan menghemat 2 hingga 4 Jam-CU per hari.

    • Daftar rekomendasi optimasi

      Tinjau nilai yang direkomendasikan untuk parameter dalam daftar dan periksa saran untuk detail optimasi lebih lanjut mengenai tabel tersebut.

      Kolom

      Deskripsi

      Project

      Proyek yang berisi tabel yang direkomendasikan.

      Table Name

      Nama tabel yang direkomendasikan untuk dikelompokkan.

      Type

      Jenis pengelompokan yang direkomendasikan untuk tabel tersebut. Saat ini, hanya rekomendasi Hash Clustering yang didukung.

      Suggested Cluster Key

      ClusterKey yang direkomendasikan untuk tabel tersebut. Ini terutama terkait dengan Penghapusan Pengacakan (Shuffle Removal) dan penyaringan data untuk pencarian titik (point lookups).

      Suggested Sort Key

      SortKey yang direkomendasikan untuk tabel tersebut. Ini terutama terkait dengan penyaringan data dan rasio kompresi penyimpanan.

      Bucket Count

      Jumlah bucket yang direkomendasikan untuk tabel tersebut. Ini terutama terkait dengan paralelisme operasi penulisan tabel dan pekerjaan baca tabel setelah Penghapusan Pengacakan.

      Recommendation Index

      Penilaian bintang 1 hingga 5 yang menunjukkan potensi dampak dari penerapan rekomendasi tersebut. Skor yang lebih tinggi berarti rekomendasi yang lebih kuat. Skor dihitung sebagai berikut:

      Dimensi evaluasi

      Aturan Deduksi

      Koefisien bobot

      Kesesuaian waktu pola yang dapat dioptimalkan

      Jendela pengamatan kurang dari 14 hari.

      Kurangi 1 bintang

      Penghematan data pengacakan saat baca

      Jumlah yang dihemat kurang dari 1 TB.

      Kurangi 1 bintang

      Frekuensi pekerjaan tulis

      Tidak ditemukan catatan pekerjaan tulis pada hari tersebut.

      Kurangi 1 bintang

      Jumlah partisi yang dapat dioptimalkan

      • Jika jumlah partisi yang dapat dioptimalkan lebih dari 3, kurangi 1 bintang.

      • Jika jumlah partisi yang dapat dioptimalkan lebih dari 31, kurangi 2 bintang.

      Penyesuaian dinamis

      Catatan
      • Skor dikurangi jika tidak ada catatan pekerjaan tulis pada hari tersebut, karena potensi peningkatan biaya tulis tidak dapat diperkirakan.

      • Pengurangan diterapkan jika terdapat banyak partisi yang dapat dioptimalkan, karena optimasi pengelompokan hanya berlaku setelah menulis ulang sejumlah besar partisi yang ada dengan data baru atau melalui penulisan ulang aktif.

      Estimated Shuffle Reduction/Day

      Perkiraan pengurangan harian volume pengacakan setelah mengonversi tabel menjadi tabel terkluster.

      Observation Interval

      Jumlah hari berturut-turut rekomendasi ini dihasilkan.

      Actions

      Klik saran untuk membuka halaman Details of Table with Optimization Recommendations, yang mencakup hal-hal berikut:

      • Optimization Recommendations

      • Current Status of Table

      • 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 langsung ke tabel asli

  • Menggunakan UI

    Untuk tabel partisi, Anda dapat menerapkan rekomendasi dengan sekali klik untuk mengonversi tabel asli menjadi tabel terkluster.

    1. Pada panel navigasi di sebelah kiri, pilih Intelligent Optimization > Data Layout Optimization.

    2. Pada tab Clustering Optimization, klik Estimated Benefits.

    3. Klik View Details pada kolom Actions untuk tabel target guna membuka halaman Details of Table with Optimization Recommendations.

    4. Di pojok kanan atas, klik Apply Recommendations untuk menyelesaikan konversi.

  • Menggunakan perintah SQL

    Jalankan perintah berikut:

    -- 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 dan jalankan pekerjaan baca terkait untuk memverifikasi bahwa semuanya berjalan sesuai harapan. Jika muncul masalah, segera lakukan rollback dengan menjalankan perintah berikut.

    -- Ubah tabel Hash Clustering kembali menjadi tabel non-clustered.
    ALTER TABLE <table_name> NOT CLUSTERED;
Penting
  • Setelah mengonversi tabel menjadi tabel terkluster, Anda tidak dapat lagi melakukan operasi tulis inkremental seperti INSERT INTO atau unggahan Tunnel.

  • Anda tidak dapat langsung menerapkan rekomendasi pengelompokan ke tabel non-partisi.

  • Pengelompokan meningkatkan latensi dan biaya CU operasi tulis, tetapi menguranginya untuk operasi baca, sehingga menghasilkan pengurangan bersih konsumsi CU secara keseluruhan.

  • Untuk skenario tertentu, tulis ulang partisi dan verifikasi manfaatnya bagi pekerjaan downstream yang dapat dioptimalkan. Untuk informasi selengkapnya, lihat (Recommended) Rewrite partition data.

(Recommended) Rewrite partition data

Perubahan pada properti pengelompokan hanya berlaku untuk data baru. Untuk menerapkan optimasi pada data yang sudah ada, Anda harus menulis ulang partisi terkait. Menulis ulang partisi diperlukan dalam skenario berikut untuk memverifikasi manfaat bagi pekerjaan downstream:

  • Tabel tersebut merupakan dependensi untuk pekerjaan prioritas tinggi yang sensitif terhadap latensi.

  • Tabel tersebut memiliki partisi besar, dengan operasi tulis tunggal melebihi 10 TB.

  • Pekerjaan downstream membaca dari beberapa partisi. Untuk mendapatkan manfaat optimasi penuh, semua partisi terkait yang dibaca oleh pekerjaan tersebut harus ditulis ulang.

  1. Jika tabel tersebut merupakan tabel besar dalam pekerjaan merge-write harian full-and-incremental, tulis ulang partisi hari terakhir. Hal ini mengurangi risiko peningkatan biaya dan waktu eksekusi yang lebih lambat ketika pekerjaan full-and-incremental pertama kali dijalankan pada hari berikutnya.

    -- Asumsikan kolom kunci partisi adalah ds, dan partisi baru seperti 20241015 dan 20241016 ditambahkan setiap hari. Data partisi baru diperoleh 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>');
  2. Jika pekerjaan yang dapat dioptimalkan membaca dari beberapa partisi yang sudah ada, tulis ulang partisi yang ada dalam rentang baca untuk menerapkan optimasi pengelompokan lebih cepat.

    -- Asumsikan kolom kunci partisi adalah ds, dan partisi baru seperti 20241015, 20241016, dan seterusnya ditambahkan setiap hari. Rentang baca dimulai dari 20241015.
    INSERT OVERWRITE TABLE <table_name> PARTITION(ds) 
    SELECT * FROM <table_name> WHERE ds >='20241015';
  3. Setelah menulis ulang, jalankan uji coba pekerjaan yang dapat dioptimalkan untuk memverifikasi efektivitas optimasi tersebut.

Terapkan rekomendasi ke tabel baru

Untuk tabel non-partisi, Anda tidak dapat langsung mengubah atribut pengelompokan tabel asli. Oleh karena itu, Anda harus menerapkan perubahan secara manual dengan membuat tabel terkluster baru.

  1. Buat tabel cluster.

    -- Periksa pernyataan CREATE TABLE dari tabel yang ada.
    SHOW CREATE TABLE <orignal_table>;
    -- Masukkan informasi CLUSTER ke posisi yang sesuai dalam sintaks CREATE TABLE untuk membuat tabel terkluster baru.
    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];
  2. Muat data ke tabel baru.

    INSERT OVERWRITE TABLE <new_table>
    SELECT * FROM <orignal_table>;
  3. Buat cadangan tabel asli.

    ALTER TABLE <orignal_table> RENAME TO <orignal_table_backup>;
  4. Ubah nama tabel baru menjadi nama tabel asli.

    ALTER TABLE <new_table> RENAME TO <orignal_table>;

Tabel baru kini memiliki nama yang sama dengan tabel asli dan akan mengelompokkan data sesuai atribut barunya.

Rollback untuk penerapan tabel baru

Periksa tabel terkluster baru untuk memastikan semua pekerjaan berjalan sesuai harapan. Jika muncul masalah, segera lakukan rollback dengan menjalankan perintah berikut.

  1. Hapus tabel baru (yang memiliki nama yang sama dengan tabel asli).

    DROP TABLE IF EXISTS <orignal_table>;
  2. Ubah nama tabel cadangan menjadi nama tabel asli.

    ALTER TABLE <orignal_table_backup> RENAME TO <orignal_table>;

Lihat manfaat optimasi pengelompokan

Pada tab Clustering Optimization, klik Actual Benefits untuk melihat keuntungan dari optimasi pengelompokan.

  1. Masuk ke MaxCompute console, lalu pilih wilayah di pojok kiri atas.

  2. Pada panel navigasi di sebelah kiri, pilih Intelligent Optimization > Data Layout Optimization.

  3. Pada tab Clustering Optimization, klik Actual Benefits.

  4. Filter berdasarkan Project Name dan Analysis Time untuk melihat ringkasan dan rincian manfaat dari tabel dengan atribut pengelompokan yang telah dimodifikasi.

    • Deskripsi indikator manfaat

      Metric

      Deskripsi

      Number of Benefited Jobs

      Jumlah pembacaan pada tabel terkluster yang baru saja dimodifikasi selama periode analisis manfaat.

      Saved CU-hours

      Pengurangan Jam-CU untuk pekerjaan yang membaca tabel terkluster yang dimodifikasi, dibandingkan dengan konsumsi sebelum perubahan.

      Reduced Shuffle Amount

      Pengurangan volume pengacakan untuk pekerjaan yang membaca tabel terkluster yang dimodifikasi, dibandingkan dengan konsumsi sebelum perubahan.

      Statistik manfaat dihitung dengan membandingkan konsumsi rata-rata pekerjaan dengan signature yang sama sebelum dan sesudah perubahan rekomendasi diterapkan. Statistik ini mencakup tabel terkluster yang dimodifikasi berdasarkan rekomendasi dalam 365 hari terakhir.

    • Daftar yang dioptimalkan

      Kolom

      Deskripsi

      Project

      Proyek yang berisi tabel terkluster dengan atribut 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 manfaat setelah atribut pengelompokannya dimodifikasi.

      Saved Computing Duration

      Pengurangan durasi komputasi untuk pekerjaan yang membaca tabel ini selama periode analisis, dibandingkan sebelum atribut dimodifikasi.

      Saved CU-hours

      Pengurangan konsumsi Jam-CU untuk pekerjaan yang membaca tabel ini selama periode analisis, dibandingkan sebelum atribut dimodifikasi.

      Reduced Shuffle Amount

      Pengurangan volume shuffle untuk pekerjaan yang membaca tabel ini selama periode analisis, dibandingkan sebelum atribut dimodifikasi.

      Actions

      Klik saran untuk menuju ke halaman Details of Optimized Table, yang mencakup informasi berikut:

      • Current Status of Table

        • Clustering Type

        • ClusterKey

        • SortKey

        • Number of Buckets

        • Partition Key

      • Benefit Overview

        • Number of Benefited Jobs

        • Saved CU-hours

        • Reduced Shuffle Amount

      • Daftar pekerjaan baca yang mendapatkan manfaat

        • Signature

        • Saved Computing Duration

        • Saved CU-hours

        • Reduced Shuffle Amount

    Penting
    • Statistik manfaat pekerjaan harian diperbarui dengan basis T+1. Anda dapat melihat efek optimasi secara real-time di Job Monitoring atau Logview.

    • Statistik manfaat didasarkan pada signature pekerjaan historis dan dapat dipengaruhi oleh fluktuasi kinerja harian. Jika manfaat tidak sesuai ekspektasi, bandingkan detail eksekusi pekerjaan dari tanggal berbeda untuk mengidentifikasi faktor yang memengaruhi.

    • Statistik ini hanya sebagai referensi. Penghematan CU akhir tercermin dalam tagihan bulanan.