Aracılığıyla paylaş


İstek sınıflandırma ilkesi

Sınıflandırma işlemi, isteklerin özelliklerine göre gelen istekleri bir iş yükü grubuna atar. Küme düzeyi istek sınıflandırma ilkesinin bir parçası olarak kullanıcı tanımlı bir işlev yazarak sınıflandırma mantığını uyarlar.

Etkin bir istek sınıflandırma ilkesi olmadığında, tüm istekler iş yükü grubunda sınıflandırılır default .

İlke nesnesi

İlke aşağıdaki özelliklere sahiptir:

  • IsEnabled: bool - İlkenin etkinleştirilip etkinleştirilmediğini gösterir.
  • ClassificationFunction: string - İstekleri sınıflandırmak için kullanılacak işlevin gövdesi.

Sınıflandırma işlevi

Gelen isteklerin sınıflandırması, kullanıcı tanımlı bir işlevi temel alır. İşlevin sonuçları, istekleri mevcut iş yükü gruplarına sınıflandırmak için kullanılır.

Kullanıcı tanımlı işlev aşağıdaki özelliklere ve davranışlara sahiptir:

  • İlkede olarak true ayarlanırsaIsEnabled, kullanıcı tanımlı işlev her yeni istek için değerlendirilir.
  • Kullanıcı tanımlı işlev, isteğin tam ömrü için istek için iş yükü grubu bağlamı sağlar.
  • İsteğe default aşağıdaki durumlarda iş yükü grubu bağlamı verilir:
    • Kullanıcı tanımlı işlev boş bir dize, defaultveya var olmayan iş yükü grubunun adını döndürür.
    • İşlev herhangi bir nedenle başarısız olur.
  • Herhangi bir zamanda yalnızca bir kullanıcı tanımlı işlev belirlenebilir.

Önemli

İstek sınıflandırma işlevi, kümede çalışan her istek için değerlendirilir. Mümkün olduğunca hafif tutulması ve içinde ağır hesaplamalar içermemesi önerilir. Örneğin, yürütmesinin bir parçası olarak birçok normal ifadeyi değerlendirmek zorunda kalmaktan kaçının.

Gereksinimler ve sınırlamalar

Sınıflandırma işlevi:

  • İsteğin atanması için iş yükü grubunun adı olan türünde stringtek bir skaler değer döndürmelidir.

  • Başka bir varlığa (veritabanı, tablo veya işlev) başvurmamalıdır.

    • Özellikle - aşağıdaki işlevleri ve işleçleri kullanmayabilir:
      • cluster()
      • database()
      • table()
      • external_table()
      • externaldata
  • Aşağıdaki özelliklere sahip, adlı request_propertiesbir özellik paketi olan özel dynamic bir simgeye erişimi vardır:

    Ad Tür Açıklama Örnekler
    current_database string İstek veritabanının adı. "MyDatabase"
    current_application string İsteği gönderen uygulamanın adı. "Kusto.Explorer", "KusWeb"
    current_principal string İsteği gönderen asıl kimliğin tam adı. "aaduser=1793eb1f-4a18-418c-be4c-728e310c86d3;83af1c0e-8c6d-4f09-b249-c67a2e8fda65"
    query_consistency string Sorgular için: sorgunun tutarlılığı - strongconsistency veya weakconsistency. Bu özellik çağıran tarafından isteğin istek özelliklerinin bir parçası olarak ayarlanabilir: Ayarlanacak istemci isteği özelliği: queryconsistency. "strongconsistency", "weakconsistency"
    request_description string İsteğin yazarının içerebileceği özel metin. Metin, çağıran tarafından isteğin İstemci isteği özelliklerinin bir parçası olarak ayarlanabilir: Ayarlanacak istemci isteği özelliği: request_description. "Some custom description"; panolar için otomatik olarak doldurulur: "dashboard:{dashboard_id};version:{version};sourceId:{source_id};sourceType:{tile/parameter}"
    request_text string İsteğin karartılmış metni. Sorgu metnine eklenen karartılmış dize değişmez değerleri, star (*) karakterlerin çoğuyla değiştirilir. Not: İstek metninin yalnızca başındaki 65.536 karakter değerlendirilir. ".show version"
    request_type string İsteğin türü - Command veya Query. "Command", "Query"

Not

Deyimleri kullanarak set yukarıda belirtilen istek seçeneklerinin ayarlanması, bunlar tarafından sınıflandırmaya izin vermez. İstemci isteği özellikleri nesnesinde seçeneklerin ayarlanması gerekir.

Örnekler

Tek bir iş yükü grubu

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

Birden çok iş yükü grubu

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")

Yönetim komutları

Kümenin istek sınıflandırma ilkesini yönetmek için aşağıdaki yönetim komutlarını kullanın.

Komut Açıklama
.alter cluster request classification policy Kümenin istek sınıflandırma ilkesini değiştirir
.alter-merge cluster request classification policy Kümenin istek sınıflandırma ilkesini etkinleştirir veya devre dışı bırakır
.delete cluster request classification policy Kümenin istek sınıflandırma ilkesini siler
.show cluster request classification policy Kümenin istek sınıflandırma ilkesini gösterir