全部产品
Search
文档中心

MaxCompute:Kontrol Konsumsi

更新时间:Nov 10, 2025

Topik ini menjelaskan cara mengelola konsumsi untuk pekerjaan komputasi pay-as-you-go di MaxCompute.

Fungsionalitas

Sumber daya bayar sesuai penggunaan MaxCompute bersifat skalabel, memungkinkan pekerjaan komputasi memanfaatkan sumber daya tanpa batasan. Untuk mencegah konsumsi tak terduga, penting untuk memantau penggunaan sumber daya. MaxCompute menyediakan metode peringatan berikut untuk pemantauan konsumsi:

Metode peringatan pemantauan konsumsi

Ukuran pengendalian konsumsi

Deskripsi

Sumber daya maksimum yang dikonsumsi oleh suatu Pernyataan SQL

Batas konsumsi sumber daya

MaxCompute memungkinkan Anda memperkirakan sumber daya yang akan dikonsumsi oleh suatu Pernyataan SQL sebelum dieksekusi. Jika perkiraan konsumsi melebihi batas yang ditetapkan, pernyataan tersebut tidak akan dieksekusi, dan pesan kegagalan dikembalikan. Fitur ini membantu mencegah biaya tak terduga dari suatu Pernyataan SQL.

Batas konsumsi SQL kumulatif harian

Peringatan biaya

Pantau konsumsi kumulatif harian SQL standar dalam suatu proyek. Jika konsumsi kumulatif hari ini ditambah perkiraan konsumsi SQL standar baru melebihi ambang batas, eksekusi SQL baru dibatasi, dan pesan kegagalan dikembalikan. Fitur ini membantu mencegah konsumsi kumulatif harian SQL standar melebihi ekspektasi.

Catatan

Konsumsi SQL kumulatif harian mengacu pada penggunaan terukur yang belum ditagih dan tidak termasuk diskon atau promosi apa pun.

Max sumber daya yang dikonsumsi oleh pernyataan SQL

Metode Penyetelan

Anda dapat menetapkan batas sumber daya yang dapat dikonsumsi oleh suatu Pernyataan SQL untuk suatu proyek atau sesi:

  • Pengaturan Tingkat Proyek

    Pemilik proyek atau pengguna dengan peran Super_Administrator harus mengeksekusi perintah berikut untuk menetapkan atau menghapus batas pada sumber daya yang dikonsumsi oleh pernyataan SQL:

    --Menetapkan batas atas konsumsi sumber daya oleh suatu Pernyataan SQL.
    SETPROJECT odps.sql.metering.value.max=<m_value>;
    
    --Menghapus batas atas konsumsi sumber daya oleh suatu Pernyataan SQL.
    SETPROJECT odps.sql.metering.value.max;

    m_value merepresentasikan ambang batas maksimum konsumsi sumber daya oleh suatu Pernyataan SQL. Nilai ini dihitung sebagai volume baca SQL (GB) × kompleksitas SQL, bukan jumlah konsumsi aktual.

    Catatan

    Sumber daya yang dikonsumsi oleh pernyataan SQL dibatasi oleh m_value. Jika konsumsi yang diperkirakan melebihi m_value, pernyataan tersebut tidak akan dieksekusi.

  • Penyetelan tingkat sesi

    Kirimkan perintah berikut dengan pernyataan SQL yang ingin Anda eksekusi untuk menetapkan batas untuk sumber daya yang dikonsumsi oleh pernyataan tersebut. Jika perintah tidak ditambahkan sebelum pernyataan SQL, batas dihapus. Konfigurasi ini hanya berlaku untuk pernyataan saat ini.

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

Rekomendasi

Dalam praktiknya, kami merekomendasikan agar Anda:

  • Tentukan m_value untuk sebuah proyek berdasarkan konsumsi SQL historis dan penggunaan yang Anda harapkan.

    • Unduh informasi metering harian terperinci dan gunakan proyek sebagai granularitas untuk menghitung konsumsi sumber daya tugas SQL yang diklasifikasikan sebagai ComputationSql, yaitu volume baca SQL (GB) × kompleksitas SQL. Pilih nilai yang sesuai berdasarkan konsumsi harian normal tertinggi dan fluktuasi bisnis.

    • Sebagai alternatif, konversikan konsumsi komputasi menjadi biaya . Tentukan biaya yang sesuai berdasarkan situasi bisnis, lalu konversikan menjadi jumlah konsumsi .

  • Pertama, tetapkan batas konsumsi untuk sebuah proyek. Kemudian, tetapkan batas m_value untuk pernyataan SQL tertentu pada tingkat sesi.

    Catatan
    • Sebelum menetapkan batas konsumsi tingkat sesi, pastikan bahwa SQL yang sesuai memang memerlukan batas tingkat sesi untuk mencegah penyalahgunaan fungsi ini.

    • Jika Anda menetapkan batas baik untuk proyek maupun sesi, konfigurasi sesi akan mengambil prioritas dibanding konfigurasi proyek.

      Contohnya, jika m_value proyek adalah 100 dan m_value sesi untuk suatu Pernyataan SQL adalah 200, eksekusi pernyataan tersebut hanya dibatasi jika perkiraan konsumsi melebihi 200. Pernyataan SQL tanpa batas tingkat sesi tunduk pada batas tingkat proyek dan tidak akan dieksekusi jika perkiraan konsumsi sumber daya melebihi 100.

  • Mengonfigurasi batas atas untuk proyek atau sesi dapat memengaruhi eksekusi tugas. Kami merekomendasikan agar Anda memanfaatkan fitur peringatan kegagalan tugas, seperti pemantauan cerdas DataWorks, untuk mendeteksi kegagalan tugas secara cepat dan melakukan intervensi manual, memastikan bahwa tugas kritis tidak terhambat dan operasi bisnis tetap tidak terpengaruh.

Batas konsumsi kumulatif harian SQL

Metode Penyetelan

Untuk menetapkan batas konsumsi SQL kumulatif harian untuk suatu proyek, gunakan perintah berikut. Hanya pemilik proyek atau pengguna dengan peran Super_Administrator yang dapat mengeksekusi perintah ini.

SETPROJECT odps.costcontrol.rule={"byDate":{"sql":<Limit>}};
  • byDate: Kumulatif harian. Konsumsi kumulatif dari 00:00:00 hingga 23:59:59 pada hari saat ini dihitung berdasarkan UTC+8. Konsumsi kumulatif direset pada hari berikutnya.

  • Limit: Ambang batas konsumsi kumulatif harian untuk SQL standar dalam sebuah proyek, diukur dalam USD. Ambang batas ini tidak memperhitungkan diskon atau promosi apa pun.

    Catatan

    Konsumsi pernyataan SQL tunggal = Volume data yang dipindai (GB) × Kompleksitas × 0.0438. Di SAU (Riyadh - Wilayah Mitra), harga penagihan standar untuk SQL adalah 0.05256 USD/GB.

Pertimbangan

Setelah mengeksekusi perintah di atas, perhatikan aturan berikut:

Jenis aturan

Perilaku sistem

Contoh dan rekomendasi peringatan

Penyetelan pertama kali

Sistem menghitung konsumsi kumulatif semua Pernyataan SQL standar dalam suatu proyek untuk hari berjalan dan memperkirakan konsumsi Pernyataan SQL standar baru.

Contoh: Saat Anda pertama kali menetapkan SETPROJECT odps.costcontrol.rule={"byDate":{"sql":100}}; pada tingkat proyek, sistem mulai menghitung konsumsi kumulatif harian dan memperkirakan konsumsi tugas baru.

Penyetelan bukan pertama kali (mengubah nilai yang ada)

Perkiraan konsumsi Pernyataan SQL baru diverifikasi terhadap konsumsi kumulatif dan nilai terbaru untuk menentukan apakah eksekusi dibatasi. Konsumsi kumulatif tidak diatur ulang.

Jika batas konsumsi SQL kumulatif harian awal adalah 100, konsumsi terakumulasi hari ini adalah 99, dan Anda mengubah batas menjadi 150 sebelum memulai Pernyataan SQL standar baru.

Sistem akan terlebih dahulu memperkirakan biaya SQL ini (misalnya 20). Jika jumlah perkiraan konsumsi dan konsumsi terakumulasi (20 + 99) kurang dari atau sama dengan 150, SQL dapat dieksekusi secara normal. Jika tidak, eksekusi akan diblokir.

Ketika konsumsi kumulatif dan perkiraan konsumsi melebihi Limit

Tugas SQL standar baru diblokir dan tidak dapat dieksekusi. Pesan kesalahan dikembalikan.

  • Contoh kesalahan:

    Jika Anda mengeksekusi perintah setproject odps.costcontrol.rule={"byDate":{"sql":100}}; untuk menetapkan batas konsumsi, kesalahan dikembalikan ketika konsumsi kumulatif harian Pernyataan SQL standar dalam suatu proyek melebihi batas. Pesan kesalahan sebagai berikut:

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

    Kami merekomendasikan menggunakan fitur peringatan kegagalan tugas, seperti pemantauan cerdas DataWorks, untuk segera mendeteksi kegagalan tugas dan memungkinkan intervensi manual. Hal ini membantu mencegah tugas kritis terhambat dan berdampak pada operasi bisnis Anda.