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


Обзор языка запросов Kusto (KQL)

Применимо: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

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

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

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

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

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

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

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

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

Заметка

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

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

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

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

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)

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

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

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

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

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