Поделиться через


Политика классификации запросов

Применимо: ✅Microsoft FabricAzure Data Explorer

Процесс классификации назначает входящие запросы группе рабочей нагрузки на основе характеристик запросов. Настройка логики классификации путем написания определяемой пользователем функции в рамках политики классификации запросов на уровне кластера.

Процесс классификации назначает входящие запросы группе рабочей нагрузки на основе характеристик запросов. Настройка логики классификации путем написания определяемой пользователем функции в рамках политики классификации запросов на уровне Eventhouse.

Если политика классификации запросов включена, все запросы классифицируются в группу рабочих нагрузок default.

Объект Policy

Политика имеет следующие свойства:

  • IsEnabled: bool . Указывает, включена ли политика или нет.
  • ClassificationFunction: string — текст функции, используемой для классификации запросов.

Функция классификации

Классификация входящих запросов основана на определяемой пользователем функции. Результаты функции используются для классификации запросов в существующие группы рабочих нагрузок.

Определяемая пользователем функция имеет следующие характеристики и поведение:

  • Если 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 Для запросов: согласованность запроса — 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