要求分類原則
分類程式會根據要求的特性,將傳入要求指派給工作負載群組。 撰寫使用者定義的函式,作為叢集層級要求分類原則的一部分,以量身打造分類邏輯。
分類程式會根據要求的特性,將傳入要求指派給工作負載群組。 撰寫使用者定義的函式,作為 Eventhouse 層級要求分類原則的一部分,以量身打造分類邏輯。
如果沒有啟用的要求分類原則,所有要求都會分類為 default
工作負載群組。
原則物件
此原則具有下列屬性:
-
IsEnabled
:bool
- 指出是否啟用原則。 -
ClassificationFunction
:string
- 用來分類要求的函式主體。
分類函數
傳入要求的分類是以使用者定義函式為基礎。 函式的結果可用來將要求分類為現有的工作負載群組。
使用者定義函式具有下列特性和行為:
- 如果原則中的
IsEnabled
設定為true
,則會針對每個新要求評估使用者定義函數。 - 用戶定義函式會為要求提供要求的完整存留期工作負載群組內容。
- 在下列情況下,要求會提供
default
工作負載群組內容:- 使用者定義函式會傳回空字串、
default
或不存在的工作負載群組名稱。 - 函式因為任何原因而失敗。
- 使用者定義函式會傳回空字串、
- 在任何指定時間只能指定一個使用者定義函式。
重要
系統會針對在叢集上執行的每個要求評估要求分類函式。 建議盡可能將它保持為輕量型,且不包含大量計算。 例如,避免在執行時必須評估許多正則表達式。
重要
系統會針對在 Eventhouse 上執行的每個要求評估要求分類函式。 建議盡可能將它保持為輕量型,且不包含大量計算。 例如,避免在執行時必須評估許多正則表達式。
需求和限制
分類函式:
- 必須傳回類型為
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 |
針對查詢:查詢的一致性 - strongconsistency 或 weakconsistency 。 這個屬性是由呼叫端設定為要求 要求屬性的一部分:要設定的用戶端要求屬性為: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 |
要求的類型 - Command 或 Query 。 |
"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 |
顯示叢集的要求分類原則 |
使用下列管理命令來管理 Eventhouse 的要求分類原則。
命令 | 描述 |
---|---|
.alter cluster request classification policy |
改變 Eventhouse 的要求分類原則 |
.alter-merge cluster request classification policy |
啟用或停用 Eventhouse 的要求分類原則 |
.delete cluster request classification policy |
刪除 Eventhouse 的要求分類原則 |
.show cluster request classification policy |
顯示 Eventhouse 的要求分類原則 |