All Products
Search
Document Center

MaxCompute:Pengendalian konsumsi

Last Updated:Jun 21, 2026

Topik ini menjelaskan cara mengendalikan konsumsi tugas komputasi berbasis pay-as-you-go.

Fitur

Sumber daya MaxCompute berbasis pay-as-you-go bersifat elastis dan diskalakan sesuai permintaan tanpa batas penggunaan sumber daya yang telah ditetapkan sebelumnya. Untuk menghindari biaya tak terduga, pantau konsumsi tugas komputasi Anda. MaxCompute menyediakan fitur pengendalian konsumsi berikut:

Feature

Control method

Description

Per-statement resource limit

Limit resource consumption

MaxCompute memperkirakan konsumsi resource dari suatu pernyataan SQL sebelum dijalankan. Jika perkiraan konsumsi melebihi ambang batas yang telah ditentukan, pernyataan tersebut diblokir, dan sistem mengembalikan status kegagalan beserta pesan error. Fitur ini membantu mencegah satu pernyataan SQL menimbulkan biaya tinggi.

Daily cumulative spend limit

Cost alert

Memantau total konsumsi harian SQL standar dalam suatu proyek. Jika jumlah konsumsi terakumulasi hari ini ditambah perkiraan konsumsi dari pernyataan SQL baru melebihi ambang batas yang telah ditentukan, pernyataan baru tersebut diblokir. Sistem mengembalikan status kegagalan dan pesan error. Fitur ini membantu mencegah konsumsi SQL standar harian melebihi anggaran Anda.

Catatan

Konsumsi SQL kumulatif harian hanya mencakup penggunaan terukur yang belum ditagih. Tidak termasuk diskon atau promosi apa pun.

Per-statement resource limit

Configuration

Anda dapat mengatur batas sumber daya per pernyataan dengan cara berikut:

  • Project-level setting

    Pemilik proyek atau pengguna dengan peran Super_Administrator harus menjalankan perintah berikut untuk mengaktifkan atau menonaktifkan batas sumber daya per pernyataan.

    -- Enable the per-statement resource limit.
    SETPROJECT odps.sql.metering.value.max=<m_value>;
    -- Disable the per-statement resource limit.
    SETPROJECT odps.sql.metering.value.max;

    Parameter m_value adalah ambang batas konsumsi maksimum untuk satu pernyataan SQL. Nilai ini dihitung sebagai SQL read volume (GB) × SQL complexity dan bukan merupakan jumlah moneter.

    Catatan

    Konsumsi per pernyataan suatu proyek dibatasi oleh m_value. Jika perkiraan konsumsi suatu pernyataan melebihi m_value ini, sistem akan memblokir eksekusinya.

  • Session-level setting

    Untuk mengaktifkan batas sumber daya per pernyataan pada satu eksekusi, kirimkan perintah berikut bersama pernyataan SQL Anda. Jika Anda tidak menyertakan perintah ini, batas tersebut dinonaktifkan. Pengaturan ini hanya berlaku untuk eksekusi saat ini.

    SET odps.sql.metering.value.max=<m_value>;

Recommendations

Ikuti praktik terbaik berikut:

  • Tetapkan m_value tingkat proyek berdasarkan konsumsi SQL historis dan perkiraan pengeluaran Anda.

    • Anda dapat mengunduh data metering rinci harian dan menghitung konsumsi sumber daya untuk tugas SQL (tugas dengan klasifikasi data ComputationSql) pada tingkat proyek. Konsumsi sumber daya dihitung sebagai SQL read volume (GB) × SQL complexity. Tentukan nilai yang sesuai berdasarkan konsumsi harian normal tertinggi, dengan mempertimbangkan fluktuasi bisnis.

    • Sebagai alternatif, Anda dapat mengonversi konsumsi komputasi menjadi biaya . Berdasarkan kebutuhan bisnis Anda, tentukan biaya yang dapat diterima, lalu konversikan kembali biaya tersebut menjadi nilai konsumsi: .

  • Tetapkan batas tingkat proyek terlebih dahulu, lalu gunakan batas m_value tingkat session untuk pernyataan SQL tertentu yang bersifat luar biasa.

    Catatan
    • Sebelum menetapkan batas tingkat session, pastikan bahwa pernyataan SQL tersebut benar-benar memerlukannya untuk menghindari penyalahgunaan.

    • Jika batas tingkat proyek dan tingkat session keduanya ditetapkan, batas tingkat session yang berlaku.

      Misalnya, jika m_value proyek diatur ke 100, tetapi suatu pernyataan SQL tertentu dalam proyek tersebut memiliki m_value tingkat session sebesar 200, pernyataan tersebut hanya diblokir jika perkiraan konsumsinya melebihi 200, bukan 100. Pernyataan SQL lain tanpa batas tingkat session tetap mengikuti batas proyek sebesar 100 dan diblokir jika perkiraan konsumsinya melebihi 100.

  • Menetapkan batas tingkat proyek atau tingkat session memengaruhi eksekusi tugas. Gunakan batas ini bersama fitur peringatan kegagalan tugas, seperti intelligent monitoring DataWorks, untuk mendeteksi kegagalan tugas secara cepat dan melakukan intervensi manual. Hal ini mencegah tugas kritis diblokir dan berdampak pada operasi bisnis.

Daily cumulative spend limit

Configuration

Anda dapat mengatur batas pengeluaran kumulatif harian untuk suatu proyek menggunakan perintah berikut. Hanya pemilik proyek atau pengguna dengan peran Super_Administrator yang dapat menjalankan perintah ini.

SETPROJECT odps.costcontrol.rule={"byDate":{"sql":<Limit>}};
  • byDate: Menetapkan batas harian. Total konsumsi dihitung untuk periode 00:00:00 hingga 23:59:59 (UTC+8). Penghitung direset pada hari berikutnya.

  • Limit: Ambang batas pengeluaran kumulatif harian untuk SQL standar dalam proyek, dalam satuan USD. Pelacakan konsumsi ini tidak termasuk diskon atau promosi apa pun.

    Catatan

    Biaya per pernyataan SQL = Volume data yang discan (GB) × Kompleksitas × 0,0438. Di wilayah Arab Saudi (Riyadh), yang dioperasikan oleh mitra, tarif penagihan SQL standar adalah 0,05256 USD/GB.

Usage notes

Setelah menetapkan batas menggunakan perintah ini, perhatikan aturan berikut:

Rule type

System behavior

Example and recommendation

First-time setup

Sistem mengakumulasi total konsumsi harian SQL standar dalam proyek dan memperkirakan konsumsi pernyataan SQL standar yang baru diajukan.

Contoh: Saat pertama kali menetapkan batas tingkat proyek dengan menjalankan SETPROJECT odps.costcontrol.rule={"byDate":{"sql":100}};, sistem mulai mengakumulasi total harian dan memperkirakan biaya tugas baru.

Updating an existing value

Sistem membandingkan perkiraan konsumsi baru terhadap nilai terakumulasi dan batas baru untuk menentukan apakah tugas akan diblokir.

Misalnya, batas harian awal adalah 100 dan konsumsi terakumulasi saat ini adalah 99. Anda mengubah batas menjadi 150 lalu mengajukan pernyataan SQL standar baru.

Sistem pertama-tama memperkirakan biaya pernyataan SQL baru tersebut (misalnya, 20). Jika jumlah biaya perkiraan dan konsumsi terakumulasi (20 + 99) kurang dari atau sama dengan 150, pernyataan SQL tersebut dijalankan. Jika tidak, pernyataan tersebut diblokir.

Sum of daily accumulated and estimated consumption exceeds the Limit

Sistem memblokir tugas SQL standar yang baru diajukan agar tidak dieksekusi dan mengembalikan pesan error.

  • Contoh error:

    Setelah Anda menetapkan batas konsumsi menggunakan perintah setproject odps.costcontrol.rule={"byDate":{"sql":100}};, jika total konsumsi kumulatif harian SQL standar dalam proyek melebihi batas, tugas gagal dengan error berikut:

    Exceed Cost Limit : 
    {"AlreadyCost":"100.1","InstanceId":"xxx","Limit":"100","Project":"xxx","TaskType":"SQL","ThisTaskWillCost":"0","TimeWindow":"BYDATE"}
  • Rekomendasi:

    Gunakan fitur ini bersama fungsi peringatan kegagalan tugas, seperti intelligent monitoring DataWorks, agar segera diberi tahu saat terjadi kegagalan tugas. Hal ini memungkinkan Anda melakukan intervensi manual dan mencegah tugas kritis diblokir serta berdampak pada bisnis Anda.