Bagikan melalui


Kebijakan klasifikasi permintaan

Proses klasifikasi menetapkan permintaan yang masuk ke grup beban kerja, berdasarkan karakteristik permintaan. Sesuaikan logika klasifikasi dengan menulis fungsi yang ditentukan pengguna, sebagai bagian dari kebijakan klasifikasi permintaan tingkat kluster.

Dengan tidak adanya kebijakan klasifikasi permintaan yang diaktifkan, semua permintaan diklasifikasikan ke dalam default grup beban kerja.

Objek kebijakan

Kebijakan ini memiliki properti berikut:

  • IsEnabled: bool - Menunjukkan jika kebijakan diaktifkan atau tidak.
  • ClassificationFunction: string - Isi fungsi yang digunakan untuk mengklasifikasikan permintaan.

Fungsi klasifikasi

Klasifikasi permintaan masuk didasarkan pada fungsi yang ditentukan pengguna. Hasil fungsi digunakan untuk mengklasifikasikan permintaan ke dalam grup beban kerja yang ada.

Fungsi yang ditentukan pengguna memiliki karakteristik dan perilaku berikut:

  • Jika IsEnabled diatur true dalam kebijakan, fungsi yang ditentukan pengguna dievaluasi untuk setiap permintaan baru.
  • Fungsi yang ditentukan pengguna memberikan konteks grup beban kerja untuk permintaan seumur hidup penuh permintaan.
  • Permintaan diberikan konteks grup beban kerja default dalam situasi berikut:
    • Fungsi yang ditentukan pengguna mengembalikan string kosong, default, atau nama grup beban kerja yang tidak ada.
    • Fungsi gagal karena alasan apa pun.
  • Hanya satu fungsi yang ditentukan pengguna yang dapat ditunjuk pada waktu tertentu.

Penting

Fungsi klasifikasi permintaan akan dievaluasi untuk setiap permintaan yang berjalan pada kluster. Disarankan untuk tetap seringan mungkin, dan tidak termasuk perhitungan berat di dalamnya. Misalnya, hindari harus mengevaluasi banyak ekspresi reguler sebagai bagian dari eksekusinya.

Persyaratan dan batasan

Fungsi klasifikasi:

  • Harus mengembalikan satu nilai skalar tipe string, yaitu nama grup beban kerja untuk menetapkan permintaan.

  • Tidak boleh mereferensikan entitas lain (database, tabel, atau fungsi).

    • Secara khusus - mungkin tidak menggunakan fungsi dan operator berikut:
      • cluster()
      • database()
      • table()
      • external_table()
      • externaldata
  • Memiliki akses ke simbol khusus dynamic, tas properti bernama request_properties, dengan properti berikut:

    Nama Jenis Deskripsi Contoh
    current_database string Nama database permintaan. "MyDatabase"
    current_application string Nama aplikasi yang mengirim permintaan. "Kusto.Explorer", "KusWeb"
    current_principal string Nama yang sepenuhnya memenuhi syarat dari identitas prinsipal yang mengirim permintaan. "aaduser=1793eb1f-4a18-418c-be4c-728e310c86d3;83af1c0e-8c6d-4f09-b249-c67a2e8fda65"
    query_consistency string Untuk kueri: konsistensi kueri - strongconsistency atau weakconsistency. Properti ini dapat diatur oleh pemanggil sebagai bagian dari properti permintaan permintaan: Properti permintaan klien untuk diatur adalah: queryconsistency. "strongconsistency", "weakconsistency"
    request_description string Teks kustom yang dapat disertakan oleh pembuat permintaan. Teks dapat diatur oleh pemanggil sebagai bagian dari Properti permintaan klien permintaan: Properti permintaan klien yang akan ditetapkan adalah: request_description. "Some custom description"; diisi secara otomatis untuk dasbor: "dashboard:{dashboard_id};version:{version};sourceId:{source_id};sourceType:{tile/parameter}"
    request_text string Teks permintaan yang disamarkan. Harfiah karakter yang disamarkan yang termasuk dalam teks kueri digantikan oleh beberapa karakter bintang (*). Catatan: hanya 65.536 karakter jarak antar baris teks permintaan yang dievaluasi. ".show version"
    request_type string Jenis permintaan - Command atau Query. "Command", "Query"

Catatan

Mengatur opsi permintaan yang disebutkan di atas menggunakan set pernyataan tidak memungkinkan klasifikasi oleh mereka. Opsi perlu diatur dalam objek properti permintaan klien.

Contoh

Grup beban kerja tunggal

iff(request_properties.current_application == "Kusto.Explorer" and request_properties.request_type == "Query",
    "Ad-hoc queries",
    "default")

Beberapa grup beban kerja

case(current_principal_is_member_of('aadgroup=somesecuritygroup@contoso.com'), "First workload group",
     request_properties.current_database == "MyDatabase" and request_properties.current_principal has 'aadapp=', "Second workload group",
     request_properties.current_application == "Kusto.Explorer" and request_properties.request_type == "Query", "Third workload group",
     request_properties.current_application == "Kusto.Explorer", "Third workload group",
     request_properties.current_application == "KustoQueryRunner", "Fourth workload group",
     request_properties.request_description == "this is a test", "Fifth workload group",
     hourofday(now()) between (17 .. 23), "Sixth workload group",
     "default")

Perintah manajemen

Gunakan perintah manajemen berikut untuk mengelola kebijakan klasifikasi permintaan kluster.

Perintah Deskripsi
.alter cluster request classification policy Mengubah kebijakan kluster
.alter-merge cluster request classification policy Mengaktifkan atau menonaktifkan kebijakan klasifikasi permintaan kluster
.delete cluster request classification policy Menghapus kebijakan klasifikasi permintaan kluster
.show cluster request classification policy Menunjukkan kebijakan klasifikasi permintaan kluster