请求分类策略
适用于:✅Azure 数据资源管理器
分类过程会根据请求的特征将传入请求分配到工作负荷组。 通过编写用户定义的函数来定制分类逻辑,作为群集级别请求分类策略的一部分。
如果没有已启用的请求分类策略,所有请求都将分类到 default
工作负荷组。
策略对象
策略具有以下属性:
IsEnabled
:bool
- 指示是否启用策略。ClassificationFunction
:string
- 用于对请求进行分类的函数主体。
分类函数
根据用户定义的函数对传入请求进行分类。 用于将请求分类到现有工作负荷组的函数的结果。
用户定义的函数具有以下特征和行为:
- 如果在策略中将
IsEnabled
设置为true
,则将为每个新请求评估用户定义函数。 - 用户定义函数为请求的整个生存期提供请求的工作负荷组上下文。
- 在以下情况中,将为请求提供
default
工作负荷组上下文:- 用户定义函数会返回空字符串、
default
或不存在的工作负荷组的名称 - 函数由于任何原因运行失败。
- 用户定义函数会返回空字符串、
- 在任何给定时间只能指定一个用户定义函数。
重要
将为在群集上运行的每个请求计算请求分类函数。 建议尽可能让其保持精简状态,不要在其中包含繁重的计算。 例如,请避免在执行过程中计算多个正则表达式。
要求和限制
分类函数:
必须返回
string
类型的单个标量值,这是要向其分配请求的工作负荷组的名称。不得引用其他任何实体(数据库、表或函数)。
- 具体而言,不得使用以下函数和运算符:
cluster()
database()
table()
external_table()
externaldata
- 具体而言,不得使用以下函数和运算符:
有权访问特殊
dynamic
符号,即具有以下属性的request_properties
属性包:名称 Type 说明 示例 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 |
显示群集的请求分类策略 |