Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Переключайте службы с помощью раскрывающегося списка Версия. Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Вы используете язык запросов Kusto (KQL) для записи запросов в Azure Data Explorer, Azure Monitor Log Analytics, Microsoft Sentinel и многое другое. В этом руководстве представлены основные операторы KQL, используемые для доступа к данным и анализа данных.
Дополнительные сведения о том, как запрашивать журналы в Azure Monitor, см. в статье "Начало работы с запросами журналов".
Примечание.
Не можете найти нужную информацию? Эта статья была недавно разделена следующим образом:
- Узнайте об общих операторах (эта статья)
- Использование функций агрегирования
- Присоединение данных из нескольких таблиц
- Создание геопространственных визуализаций
В этом руководстве вы узнаете, как:
Примеры в данном руководстве используют таблицуStormEvents, которая общедоступна в кластере help. Чтобы изучить собственные данные, создайте собственный бесплатный кластер.
Примеры, приведенные в этом руководстве, используют таблицуStormEvents, которая общедоступна в примерах данных аналитики погоды.
Предварительные условия
Для выполнения следующих запросов требуется среда запроса с доступом к примеру данных. Можно использовать один из следующих вариантов:
- Учетная запись Microsoft или удостоверение пользователя Microsoft Entra для входа в кластер справки
- Учетная запись Майкрософт или удостоверение пользователя Microsoft Entra
- Рабочая область Fabric с емкостью, поддерживаемой Microsoft Fabric
Посчитать ряды
Начните с использования оператора count, чтобы найти количество записей storm в StormEvents таблице.
StormEvents
| count
Выходные данные
| Количество |
|---|
| 59 066 |
См. пример данных
Чтобы получить представление о данных, используйте оператор take, чтобы просмотреть образец записей. Этот оператор возвращает указанное количество произвольных строк из таблицы, которое может быть полезно для предварительного просмотра общей структуры и содержимого данных.
StormEvents
| take 5
В следующей таблице показаны только пять из 22 возвращенных столбцов. Чтобы просмотреть полные выходные данные, выполните запрос.
| Время начала | Время окончания | EpisodeId | EventId | Штат | Тип события | ... |
|---|---|---|---|---|---|---|
| 2007-09-20T21:57:00Z | 2007-09-20T22:05:00Z | 11078 | 60913 | FLORIDA | Торнадо | ... |
| 2007-12-20T07:50:00Z | 2007-12-20T07:53:00Z | 12554 | 68796 | МИССИСИПИ | Ураганный ветер | ... |
| 2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | ДЖОРДЖИЯ | Ураганный ветер | ... |
| 2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ЮЖНАЯ АТЛАНТИКА | Waterspout | ... |
| 2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Ливень | ... |
Выбор подмножества столбцов
Используйте оператор проекта для упрощения представления и выбора определенного подмножества столбцов. Использование project часто эффективнее и проще читать, чем просматривать все столбцы.
StormEvents
| take 5
| project State, EventType, DamageProperty
Выходные данные
| Штат | Тип события | СвойствоПовреждения |
|---|---|---|
| ЮЖНАЯ АТЛАНТИКА | Waterspout | 0 |
| FLORIDA | Ливень | 0 |
| FLORIDA | Торнадо | 6200000 |
| ДЖОРДЖИЯ | Ураганный ветер | 2000 |
| МИССИСИПИ | Ураганный ветер | 20000 |
Перечисление уникальных значений
Результаты предыдущего запроса показывают несколько типов штормов. Используйте отдельный оператор для перечисления всех уникальных типов штормов.
StormEvents
| distinct EventType
Таблица содержит 46 типов штормов. Вот пример из 10 из них.
| Тип события |
|---|
| Ураганный ветер |
| Град |
| Паводок |
| Засуха |
| Холод |
| Метель |
| Метель |
| Очень сильный ветер |
| Мороз/заморозки |
| Наводнение |
| ... |
Сортировка результатов
Чтобы просмотреть наиболее значительные наводнения в Техасе, причинившие наибольший ущерб, используйте оператор сортировки, чтобы упорядочить строки в порядке убывания на основе столбца DamageProperty. Порядок сортировки по умолчанию убывания. Чтобы отсортировать по возрастанию, укажите asc.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| sort by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty
Выходные данные
| Время начала | Время окончания | Штат | Тип события | СвойствоПовреждения |
|---|---|---|---|---|
| 2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | TEXAS | Наводнение | 5000000 |
| 2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | TEXAS | Наводнение | 1200000 |
| 2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | TEXAS | Наводнение | 1000 000 |
| 2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | TEXAS | Наводнение | 750000 |
| 2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | TEXAS | Наводнение | 750000 |
| ... | ... | ... | ... | ... |
Фильтрация по условию
Где оператор фильтрует строки данных на основе определенных критериев.
Следующий запрос ищет события бури в определенной State конкретной EventType.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty
Существует 146 событий, которые соответствуют этим условиям. Вот пример из пяти из них.
| Время начала | Время окончания | Штат | Тип события | СвойствоПовреждения |
|---|---|---|---|---|
| 2007-01-13T08:45:00Z | 2007-01-13T10:30:00Z | TEXAS | Наводнение | 0 |
| 2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | TEXAS | Наводнение | 0 |
| 2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | TEXAS | Наводнение | 0 |
| 2007-01-15T22:00:00Z | 2007-01-16T22:00:00Z | TEXAS | Наводнение | 20000 |
| 2007-03-12T02:30:00Z | 2007-03-12T06:45:00Z | TEXAS | Наводнение | 0 |
| ... | ... | ... | ... | ... |
Фильтрация по диапазону даты и времени
Используйте оператор "между" для фильтрации данных на основе определенного диапазона времени.
Следующий запрос находит все события шторма в период с 1 августа 2007 г. по 30 августа 2007 г. вместе с их состояниями, типами событий, временем начала и окончания. Запрос сортирует результаты по возрастанию по времени начала.
StormEvents
| where StartTime between (datetime(2007-08-01 00:00:00) .. datetime(2007-08-30 23:59:59))
| project State, EventType, StartTime, EndTime
| sort by StartTime asc
Выходные данные
| Штат | Ивентаип | Время начала | Время окончания |
|---|---|---|---|
| ДЖОРДЖИЯ | Чрезмерное тепло | 2007-08-01 00:00:00 | 2007-08-27 23:59:00 |
| ТЕННЕССИ | Засуха | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
| ТЕННЕССИ | Засуха | 2007-08-01 00:00:00 | 2007-08-3123:59:00 |
| ЮЖНАЯ КАРОЛИНА | Засуха | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
| ТЕННЕССИ | Засуха | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
| ДЖОРДЖИЯ | Чрезмерное тепло | 2007-08-01 00:00:00 | 2007-08-27 23:59:00 |
| ТЕННЕССИ | Засуха | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
| МИННЕСОТА | Засуха | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
| ВИСКОНСИН | Засуха | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
| ДЖОРДЖИЯ | Чрезмерное тепло | 2007-08-01 00:00:00 | 2007-08-27 23:59:00 |
| ... | ... | ... | ... |
Получение верхних n строк
Верхний оператор возвращает первые n строки, отсортированные по указанному столбцу.
Следующий запрос возвращает пять наводнений в Техасе, которые нанесли наибольший ущерб имуществу.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty
Выходные данные
| Время начала | Время окончания | Штат | Тип события | СвойствоПовреждения |
|---|---|---|---|---|
| 2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | TEXAS | Наводнение | 5000000 |
| 2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | TEXAS | Наводнение | 1200000 |
| 2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | TEXAS | Наводнение | 1000 000 |
| 2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | TEXAS | Наводнение | 750000 |
| 2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | TEXAS | Наводнение | 750000 |
Примечание.
Порядок операторов важен. Если в этом примере вы поместите top перед where, вы получите разные результаты. Каждый оператор последовательно преобразует данные. Дополнительные сведения см. в инструкциях табличных выражений.
Создание вычисляемых столбцов
Вы можете использовать операторы проекция и расширение для создания вычисляемых столбцов.
Используется project для указания только столбцов, которые требуется просмотреть. Используется extend для добавления вычисляемого столбца в конец таблицы.
Следующий запрос создает вычисляемый Duration столбец с разницей между StartTime и EndTime. Так как вы хотите просмотреть только несколько выбранных столбцов, использование project является лучшим вариантом в этом случае.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| project StartTime, EndTime, Duration = EndTime - StartTime, DamageProperty
Выходные данные
| Время начала | Время окончания | Продолжительность | СвойствоПовреждения |
|---|---|---|---|
| 2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | 1.01:30:00 | 5000000 |
| 2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | 12:00:00 | 1200000 |
| 2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | 05:00:00 | 1000 000 |
| 2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | 08:00:00 | 750000 |
| 2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | 03:00:00 | 750000 |
Если вы посмотрите на вычисляемый Duration столбец, вы можете заметить, что наводнение, которое вызвало наибольшее повреждение, было также самым длинным наводнением.
Используйте extend для просмотра вычисляемого столбца Duration со всеми остальными столбцами. Столбец Duration добавляется в качестве последнего столбца.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| extend Duration = EndTime - StartTime
Выходные данные
| Время начала | Время окончания | ... | Продолжительность |
|---|---|---|---|
| 2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | ... | 1.01:30:00 |
| 2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | ... | 12:00:00 |
| 2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | ... | 05:00:00 |
| 2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | ... | 08:00:00 |
| 2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | ... | 03:00:00 |
Сопоставьте значения из одного набора с другим
Статическое сопоставление — это полезный способ изменения представления результатов. В KQL можно выполнять статическое сопоставление с помощью динамического словаря и методов доступа для сопоставления значений из одного набора в другой.
let sourceMapping = dynamic(
{
"Emergency Manager" : "Public",
"Utility Company" : "Private"
});
StormEvents
| where Source == "Emergency Manager" or Source == "Utility Company"
| project EventId, Source, FriendlyName = sourceMapping[Source]
Выходные данные
| EventId | Источник | Удобное имя |
|---|---|---|
| 68796 | Специалист по управлению в чрезвычайных ситуациях | Общедоступный |
| ... | ... | ... |
| 72609 | Коммунальная компания | Частный |
| ... | ... | ... |
Следующий шаг
Теперь, когда вы знакомы с основными принципами написания запросов Kusto, перейдите к следующему руководству и узнайте, как использовать функции агрегирования для получения более глубокого понимания данных.