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


обзор язык запросов Kusto

Область применения: ✅Microsoft Fabric

Язык запросов Kusto (KQL) — это мощный инструмент для изучения данных и выявления закономерностей, аномалий и выбросов, а также создания статистического моделирования и многого другого.

KQL — это простой и мощный язык для запроса структурированных, полуструктурированных и неструктурированных данных. Язык является экспрессивным, простым для чтения и понимания намерения запроса и оптимизирован для разработки. KQL является оптимальным для запроса телеметрии, метрик и журналов с глубокой поддержкой поиска текста и синтаксического анализа, операторов временных рядов и функций, аналитики и агрегирования, геопространственных, векторных поисков сходства и многих других языковых конструкций, которые обеспечивают наиболее оптимальный язык для анализа данных. Запрос использует сущности схемы, упорядоченные в иерархии, аналогичные SQLs: базам данных, таблицам и столбцам.

Если у вас есть фон в скриптах или работе с базами данных, большая часть содержимого этой статьи должна чувствовать себя знакомой. Если нет, не беспокойтесь: интуитивно понятная природа языка позволит быстро начать писать собственные запросы и получать ценность для вашей организации.

В этой статье приведено описание языка запросов и практические упражнения, которые показано, как приступить к написанию запросов. Чтобы получить доступ к среде запроса, используйте веб-пользовательского интерфейса Azure Data Explorer. Чтобы узнать, как использовать KQL, ознакомьтесь с руководством по . Сведения о распространенных операторах.

В этой статье приведено описание языка запросов и практические упражнения, которые показано, как приступить к написанию запросов. Чтобы получить доступ к среде запроса, используйтенабора запросов KQL . Чтобы узнать, как использовать KQL, ознакомьтесь с руководством по . Сведения о распространенных операторах.

KQL также является языком, используемым для работы с данными и управления ими в Microsoft Sentinel. Журналы, которые передаются в рабочую область, не имеют особой пользы, если их нельзя анализировать и получать важные сведения, скрытые в данных. KQL имеет не только мощность и гибкость, чтобы получить эту информацию, но и простоту, чтобы помочь вам быстро приступить к работе.

В этой статье представлены основы KQL, охватывающие некоторые из наиболее используемых функций и операторов, которые должны решать 75–80 процентов запросов, которые пользователи записывают день в день. Если требуется более подробная глубина или выполнение более сложных запросов, вы можете воспользоваться преимуществами книги Advanced KQL для Microsoft Sentinel.

Почему KQL для Microsoft Sentinel?

Решение Microsoft Sentinel построено на основе службы Azure Monitor и использует ее рабочие области Log Analytics для хранения всех данных. К этим данным относятся следующие:

  • данные, принятые из внешних источников в предварительно определенные таблицы с помощью соединителей данных Microsoft Sentinel;
  • данные, полученные из внешних источников в пользовательские таблицы, с помощью настраиваемых соединителей данных и некоторых типов внешних соединителей.
  • данные, созданные самим решением Microsoft Sentinel в результате анализа, например оповещения, инциденты и сведения, связанные с UEBA;
  • данные, переданные в Microsoft Sentinel с целью помочь в обнаружении и анализе, например веб-каналы аналитики угроз и списки видео к просмотру.

KQL был разработан в рамках службы Azure Data Explorer , поэтому он оптимизирован для поиска через хранилища больших данных в облачной среде. Он предназначен для изучения ваших данных и изучения их скрытых сокровищ.

KQL также используется в Azure Monitor и поддерживает дополнительные функции Azure Monitor, которые позволяют извлекать, визуализировать, анализировать и анализировать данные в хранилищах данных Log Analytics. В Microsoft Sentinel вы используете средства на основе KQL всякий раз, когда вы визуализируете и анализируете данные и ищете угрозы, будь то в существующих правилах и книгах или в создании собственных.

Так как KQL является частью почти всего, что вы делаете в Microsoft Sentinel, четкое понимание того, как это работает, помогает получить это больше из вашей SIEM.

Что такое запрос Kusto?

Запрос Kusto — это запрос только для чтения для обработки данных и возврата результатов. Запрос указывается в виде обычного текста, используя модель потока данных, которую легко читать, создавать и автоматизировать. Запросы Kusto состоят из одной или нескольких инструкций запроса.

Запрос Kusto не записывает данные. Запросы работают с данными, организованными в иерархию баз данных, таблиц и столбцов, как в SQL.

Что такое оператор запроса?

Существует три типа инструкций запросов пользователей:

Все операторы запросов разделены ; (точкой с запятой) и влияют только на запрос.

Заметка

Сведения об инструкциях запроса приложения см. в инструкции запросов приложения.

Наиболее распространенным типом инструкции запроса является табличное выражение инструкции, что означает, что входные и выходные данные состоят из таблиц или табличных наборов данных. Табличные операторы содержат ноль или более операторов, каждая из которых начинается с табличных входных данных и возвращает табличные выходные данные. Операторы последовательностью по | (каналу). Потоки данных или передаются от одного оператора к следующему. Данные фильтруются или управляются на каждом шаге, а затем передаются на следующий шаг.

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

Рассмотрим пример запроса.

StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count
Считать
28

Заметка

KQL учитывает регистр для всех — имена таблиц, имена столбцов таблиц, операторы, функции и т. д. Ключевые слова можно использовать в качестве идентификаторов, заключив их в скобки и кавычки ([' и '] или [" и "]). Например, ['where']. Дополнительные сведения см. в правила именования идентификаторов

Этот запрос содержит одну инструкцию табличного выражения. Инструкция начинается со ссылки на таблицу с именем StormEvents и содержит несколько операторов, where и count, каждый из которых разделен каналом. Строки данных для исходной таблицы фильтруются по значению столбца StartTime, а затем фильтруются по значению столбца State. В последней строке запрос возвращает таблицу с одним столбцом и одной строкой, содержащей количество оставшихся строк.

Дополнительные сведения о запросах Kusto см. в руководстве по . Запись запросов Kusto.

Команды управления

В отличие от запросов Kusto, команды управления являются запросами к Kusto для обработки или изменения данных или метаданных. Например, следующая команда управления создает новую таблицу Kusto с двумя столбцами, Level и Text:

.create table Logs (Level:string, Text:string)

Команды управления имеют собственный синтаксис, который не является частью синтаксиса KQL, хотя два используют множество концепций. В частности, команды управления отличаются от запросов путем первого символа в тексте команды — символом точки (.) (который не может запустить запрос). Это различие предотвращает множество атак безопасности, просто потому что он предотвращает внедрение команд управления в запросы.

Не все команды управления изменяют данные или метаданные. Большой класс команд, начинающихся с .show, используется для отображения метаданных или данных. Например, команда .show tables возвращает список всех таблиц в текущей базе данных.

Дополнительные сведения о командах управления см. в обзорекоманд управления.

KQL в других службах

KQL используется многими другими службами Майкрософт. Дополнительные сведения об использовании KQL в этих средах см. по следующим ссылкам: