M365Con 2027 – бесплатная онлайн-конференция · 11–22 Jan 2027 · 120 sessions→ m365con.net

Блог · Mirko Peters

Переход от SQL к KQL в Microsoft Fabric: руководство для разработчиков

By ·

Узнайте, как перейти от SQL к KQL в Microsoft Fabric: руководство для разработчиков с соответствием конструкций, различиями в синтаксисе и запросами к временным рядам.

Automatically translated with AI from the original post. Read the English original

Cover: KQL Databases in Fabric - Simply Explained

Перенос аналитических нагрузок с традиционного 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 и движков аналитики в реальном времени, обязательно послушайте полный выпуск с экспертными советами и практическими стратегиями.

Entities in this article

Microsoft Fabric Kusto Query Language (KQL) Telemetry

Related articles

RSS