All Products
Search
Document Center

MaxCompute:Optimisasi Pembengkakan Data

Last Updated:Jun 21, 2026

Artikel ini menjelaskan penyebab terjadinya data bloating serta langkah-langkah penanganannya.

Fenomena Masalah

Dalam Logview, volume data output Fuxi Task jauh lebih besar daripada volume data input. Volume data input dan output dapat diperoleh melalui atribut I/O Record dan I/O Bytes pada Fuxi Task.

Volume data input sebesar 1 GB, tetapi setelah diproses volumenya meningkat menjadi 1 TB. Memproses data sebesar 1 TB dalam satu instance akan menyebabkan efisiensi eksekusi menurun secara signifikan.

Penyebab & Langkah Penanganan

Berikut adalah kemungkinan penyebab masalah ini beserta langkah penanganan yang sesuai.

Penyebab Deskripsi Langkah Penanganan
Kode mengandung cacat Cacat pada kode, misalnya:
  • Kondisi join dalam kode salah, sehingga menghasilkan Cartesian product.
  • UDTF tidak tepat, sehingga volume data output jauh melebihi volume data input.
Perbaiki kode tersebut.
Data bloating akibat operasi agregasi
Sebagian besar operasi agregasi bersifat rekursif dan melakukan penggabungan (MERGE) terhadap hasil antara. Biasanya, volume data antara tidak besar, dan kompleksitas komputasi sebagian besar operasi agregasi relatif rendah—sehingga meskipun volumenya cukup besar, proses tetap dapat diselesaikan dengan cepat. Oleh karena itu, operasi agregasi umumnya tidak menimbulkan masalah. Namun, beberapa operasi agregasi tertentu seperti collect_list dan median memerlukan penyimpanan seluruh data antara. Ketika dikombinasikan dengan penggunaan agregasi lain, hal ini berpotensi menyebabkan data bloating, contohnya:
  • Menggunakan operasi agregasi dalam select dan menerapkan penghapusan duplikat (DISTINCT) berdasarkan dimensi yang berbeda—setiap operasi DISTINCT dapat menyebabkan pembengkakan data.
  • Menggunakan grouping sets, cube, atau rollup, yang dapat memperluas data antara hingga berkali-kali lipat.
Hindari penggunaan khusus operasi agregasi tersebut.
join operation menyebabkan data bloating Misalnya, saat melakukan operasi join antara dua tabel: tabel kiri berisi data populasi dengan volume sangat besar, sedangkan tabel kanan merupakan tabel dimensi yang mencatat informasi untuk setiap jenis kelamin. Meskipun hanya ada dua jenis kelamin, masing-masing jenis kelamin memiliki ratusan baris data. Jika langsung melakukan join berdasarkan jenis kelamin, data pada tabel kiri dapat membengkak hingga ratusan kali lipat. Lakukan operasi agregasi terlebih dahulu pada baris-baris di tabel kanan, lalu lakukan operasi join dengan tabel kiri untuk menghindari masalah data bloating.