你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

请求分类策略

适用于:✅Microsoft FabricAzure 数据资源管理器

分类过程根据请求的特征将传入请求分配给工作负荷组。 通过编写用户定义的函数作为群集级请求分类策略的一部分来定制分类逻辑。

分类过程根据请求的特征将传入请求分配给工作负荷组。 通过编写用户定义的函数作为 Eventhouse 级请求分类策略的一部分来定制分类逻辑。

如果没有启用的请求分类策略,所有请求都会分类为 default 工作负荷组。

Policy 对象

该策略具有以下属性:

  • IsEnabledbool - 指示策略是否已启用。
  • ClassificationFunctionstring - 用于对请求进行分类的函数正文。

分类函数

传入请求的分类基于用户定义的函数。 函数的结果用于将请求分类为现有工作负荷组。

用户定义的函数具有以下特征和行为:

  • 如果 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 对于查询:查询的一致性 - 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 显示群集的请求分类策略

使用以下管理命令管理 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 的请求分类策略