Переход от SQL к KQL в Microsoft Fabric: руководство для разработчиков
By Mirko Peters ·
Узнайте, как перейти от SQL к KQL в Microsoft Fabric: руководство для разработчиков с соответствием конструкций, различиями в синтаксисе и запросами к временным рядам.
Automatically translated with AI from the original post. Read the English original

Перенос аналитических нагрузок с традиционного SQL на Kusto Query Language (KQL) в Microsoft Fabric может показаться сложной задачей для администраторов баз данных. В этом руководстве разбираются прямые структурные соответствия между конструкциями SQL и операторами KQL и показано, как перенести имеющийся опыт работы с базами данных на быстрый анализ данных временных рядов без долгого периода освоения.
Главное
- KQL заменяет конструкцию SQL «FROM», помещая имя таблицы в самое начало запроса.
- Символ конвейера (|) в KQL связывает последовательные операции, повторяя логику обработки данных движком запросов.
- SQL «SELECT» соответствует оператору KQL project, а «GROUP BY» напрямую преобразуется в summarize.
- Microsoft Fabric включает встроенные средства помощи в переводе, позволяя разработчикам экспериментировать и учиться на практических командах-эквивалентах.
- Понимание чувствительности к регистру и группировки по временным интервалам (binning) необходимо для написания KQL-запросов, готовых к промышленной эксплуатации.
Смена мышления: от SQL к KQL
Когда вы впервые открываете базу данных KQL в Microsoft Fabric, синтаксис кажется незнакомым примерно пять минут. Традиционный SQL заставляет оборачивать запросы в определённые конструкции, часто начиная с «SELECT» и отодвигая исходную таблицу в предложение «FROM», спрятанное в середине инструкции. KQL переворачивает этот подход полностью.
В KQL всегда начинаете с имени таблицы. Если ваша таблица называется service_events, это абсолютно первая строка. Никаких дополнительных слов, обрамляющих запрос, нет. Объявив таблицу, вы связываете каждый следующий шаг символом конвейера (|). Такой подход позволяет читать запросы естественно, сверху вниз: взять все события, оставить только сбои, сосчитать их по часам и ранжировать самых проблемных источников.
Сопоставление конструкций SQL с операторами KQL
Если вы уже знаете SQL, используйте этот опыт как мост, а не как барьер. Движок Kusto, используемый в event houses Fabric, имеет прямые аналоги почти для каждой стандартной операции SQL, хотя они расположены в последовательности, оптимизированной для анализа телеметрии и журналов.
Выборка и проекция данных
При изучении незнакомой таблицы в SQL вы можете написать быстрый запрос с ограничением количества строк. В KQL для этого используется оператор take. Команда service_events | take 10 вернёт небольшую выборку записей, чтобы проверить имена столбцов, форматы дат и значения статусов.
Для выбора конкретных столбцов, аналогично инструкции SQL «SELECT», в KQL используется оператор project. Важно, что project выполняется позже в потоке запроса. Во время проекции можно также переименовывать столбцы на лету, что очень помогает при подготовке отчётов для заинтересованных сторон за пределами инженерной команды.
Фильтрация и расширение атрибутов
Фильтрация строк в KQL опирается на оператор where. Несколько условий where можно связывать, записывая их на отдельных строках, что заметно повышает читаемость при работе со сложной логикой:
service_events | where timestamp > ago(24h) | where status_code == 500
Если в ваших данных нет нужного для анализа атрибута, оператор extend создаёт временный вычисляемый столбец, не изменяя исходную таблицу. Это удобно для извлечения значений из сырых строк с ошибками или для категоризации временных меток перед последующей агрегацией.
Агрегации и работа с временными рядами
Группировка данных в SQL требует предложения 'GROUP BY'. В KQL за все групповые вычисления, такие как количество, средние значения, минимумы и максимумы, отвечает оператор summarize. Например, подсчёт сбоев по имени службы выглядит так:
service_events | summarize failure_count = count() by service_name
При работе с логами и телеметрией в Fabric время почти всегда является основным измерением для группировки. KQL использует функцию bin(), чтобы объединять временные метки в регулярные интервалы, например почасовые или пятиминутные, и превращать огромный шумный список отдельных журналов транзакций в понятную и пригодную для действий временную шкалу.
Заключение и следующие шаги
Освоение KQL в Microsoft Fabric открывает широкие возможности для аналитики в реальном времени, мониторинга телеметрии и анализа журналов. Сопоставив свои знания SQL с операторами KQL, удобными для конвейерной обработки, вы сократите время на устранение неполадок и сможете сразу извлекать ценность из потоковых данных. Чтобы глубже разобраться в общей архитектуре таких event houses и движков аналитики в реальном времени, обязательно послушайте полный выпуск с экспертными советами и практическими стратегиями.