共用方式為


要求分類原則

分類程序會根據要定的特性,將要求指派給工作負載群組。 藉由撰寫使用者定義函式,做為叢集層級要求分類原則的一部分,以量身訂做分類邏輯。

如果沒有啟用的要求分類原則,所有要求都會分類至 default 工作負載群組。

原則物件

原則具有下列屬性:

  • IsEnabledbool - 指出是否已啟用原則。
  • ClassificationFunctionstring - 要用於分類要求的函式本文。

分類函式

傳入要求的分類是以使用者定義函式為基礎。 函式的結果會用來將要求分類至現有的工作負載群組。

使用者定義的函數具有下列特性和行為:

  • 如果在原則中將 IsEnabled 設定為 true,就會對每個新要求評估使用者定義函式。
  • 使用者定義函式會在要求的完整存留期內,為要求提供工作負載群組內容。
  • 在下列情況下,會為要求提供 default 工作負載群組內容:
    • 使用者定義函數會傳回空字串, default或不存在的工作負載群組名稱。
    • 該函式因任何原因而失敗。
  • 任何時候都只能指定一個使用者定義函式。

重要

將針對在叢集上執行的每個要求評估要求分類函式。 建議盡可能將其保持為輕量,而不要在其中包含大量計算。 例如,避免在執行過程中評估許多正則表達式。

需求及限制

分類函式:

  • 必須傳回類型 string 的單一純量值,也就是要指派要求的工作負載群組的名稱。

  • 不得參考任何其他實體 (資料庫、資料表或函式)。

    • 具體而言,其不得使用下列函式和運算子:
      • cluster()
      • database()
      • table()
      • external_table()
      • externaldata
  • 具有特殊的 dynamic 符號 (名為 request_properties 的屬性包) 的存取權,並具有下列屬性:

    名稱 類型 描述 範例
    current_database string 要求資料庫的名稱。 "MyDatabase"
    current_application string 傳送要求的應用程式名稱。 "Kusto.Explorer", "KusWeb"
    current_principal string 傳送要求的主體身分識別的完整名稱。 "aaduser=1793eb1f-4a18-418c-be4c-728e310c86d3;83af1c0e-8c6d-4f09-b249-c67a2e8fda65"
    query_consistency string 若為查詢:查詢的一致性 - strongconsistencyweakconsistency。 呼叫端可以設定此屬性做為要求 要求要求屬性的一部分:要設定的用戶端要求屬性為: queryconsistency "strongconsistency", "weakconsistency"
    request_description string 要求的作者可包含的自訂文字。 文件可以由呼叫端隨著要求的用戶端要求屬性的一部分設定:要設定的用戶端要求屬性為:request_description "Some custom description";針對儀表板自動填入: "dashboard:{dashboard_id};version:{version};sourceId:{source_id};sourceType:{tile/parameter}"
    request_text string 要求的混淆文字。 包含在查詢文字中混淆的字串常值會以多個星號 (*) 字元取代。 注意:只會評估要求文字的前置 65,536 個字元。 ".show version"
    request_type string 要求的類型 - CommandQuery "Command", "Query"

注意

使用 set 語句設定上述要求選項不允許分類。 必須在用戶端要求屬性物件中設定選項。

範例

單一工作負載群組

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

多個工作負載群組

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

管理命令

使用下列管理命令來管理叢集的要求分類原則。

命令 描述
.alter cluster request classification policy 改變叢集的要求分類原則
.alter-merge cluster request classification policy 啟用或停用叢集的要求分類原則
.delete cluster request classification policy 刪除叢集的要求分類原則
.show cluster request classification policy 顯示叢集的要求分類原則