Справочник KQL
Примечание
Функциональность находится на стадии Preview. Чтобы получить доступ, обратитесь в техническую поддержку
В этом разделе представлен справочник по подмножеству KQL (Kusto Query Language)
Системные таблицы
В YCDR доступны следующие системные таблицы:
- Events — нормализованные события в базе или потоке.
- EVENT_CLASS — названия классов событий, указанные в классификаторе, с соответствующей фильтрацией полей.
Операторы выражений в запросе
Set
Оператор set позволяет задать параметры запроса.
set rule_name = "SomeRuleName";
set window_step = 35m;
set runtime = "database";
Поддерживаемые параметры:
|
Параметр |
Тип |
Описание |
|
|
строка |
Название правила, используется при запуске через расследование |
|
|
интервал |
Временной сдвиг для периодических запусков через расследование |
|
|
строка |
Тип запуска по базе: |
Let
Оператор let позволяет создавать табличные переменные.
let someTable = ATiamDetectLeakedCredential | limit 10;
Табличные операторы
Where
Оператор where фильтрует данные по условию.
where at_iam_subject_name !contains "test"
where region != "" and 1 != 4 + 2 or x == y
Lookup
Оператор lookup выполняет объединение таблиц. Поддерживается только left outer join.
lookup (
abc.quotas | project lookup_c_group, lookup_srv, limits_list
) on $left.service.service_id == $right.lookup_srv,
$left.c_group == $right.lookup_c_group
Ограничение: при обогащении необходимо указывать нужные поля внешней таблицы через project.
Summarize
Оператор summarize выполняет агрегацию данных.
summarize cnt = count(),
uniq_subjects = dcount(at_iam_subject_id),
last_event = max(time),
first_event = min(time),
sum_logon_type = sum(user_logon_type),
avg_logon_type = avg(user_logon_type),
p95_logon_type = percentile(user_logon_type, 95)
by region, bin(time, 1d)
Ограничения:
- Не поддерживаются названия полей по умолчанию (
count_и т.д.) — их нужно указывать явно. - Ограничен список агрегирующих функций.
Extend
Оператор extend добавляет вычисляемые столбцы.
extend use = extract("user=(^ ]+)\s+ip=(?<ip>[0-9.]+)", 1, Message),
a = 5, b = c
Mv-expand
Оператор mv-expand раскрывает массивы в отдельные строки.
mv-expand grant = grants
Ограничение: поддерживается только kind = bag и раскрытие только одной колонки.
Project
Оператор project выбирает и переименовывает столбцы.
| project event_class = "Alert", time, foundHostid = hostid
Top и Sort
Операторы top и sort сортируют и ограничивают результат.
sort by field desc
top 5 by anotherField
Limit
Оператор limit ограничивает количество строк.
limit 10000
Условия оператора where
Логические операторы
|
Оператор |
Описание |
|
|
Логическое И |
|
|
Логическое ИЛИ |
|
|
Логическое НЕ |
|
|
Группировка условий |
not (ivan >= 1337 or lesha <= 1337)
Операторы сравнения
|
Оператор |
Описание |
|
|
Равенство |
|
|
Неравенство |
|
|
Сравнение чисел и временных значений |
|
|
Сравнение с включением границ |
Операторы вхождения
|
Оператор |
Описание |
|
|
Проверка вхождения в интервал |
|
|
Проверка вхождения в список |
|
|
Проверка наличия любого из слов |
|
|
Проверка наличия подстроки (регистронезависимо) |
|
|
Проверка соответствия регулярному выражению |
time between (ago(60m) .. now())
age in (18, 19, 20)
array.obj has_any ('tesla', 'bmw')
field contains "substring"
file_category@object matches regex "app\.compute\..*"
Функции
Функции преобразования типов
|
Функция |
Описание |
|
|
Конвертирует в строку |
|
|
Конвертирует в целочисленное значение |
|
|
Конвертирует в нецелочисленное значение |
|
|
Конвертирует строку в дату и время |
|
|
Парсит строку в JSON |
Функции извлечения
|
Функция |
Описание |
|
|
Извлекает группу регулярного выражения из строки |
|
|
Позволяет обращаться к внешней таблице |
Функции времени
|
Функция |
Описание |
|
|
Возвращает текущее время |
|
|
Возвращает время в прошлом |
Прочие функции
|
Функция |
Описание |
|
|
Проверка на null |
|
|
Создает dynamic (JSON) с полями из указанных колонок |
|
|
Выбор значения в зависимости от условия |
case([predicate, valueIfTrue]+, defaultValue)
Агрегатные функции для summarize
|
Функция |
Описание |
|
|
Подсчитывает общее количество строк |
|
|
Подсчитывает количество уникальных значений |
|
|
Вычисляет среднее значение |
|
|
Возвращает максимальное значение |
|
|
Возвращает минимальное значение |
|
|
Возвращает значение на заданном процентиле |
|
|
Суммирует значения |
|
|
Подсчитывает количество уникальных значений |
|
|
Группирует по временным окнам |