Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Переключайте службы с помощью раскрывающегося списка Версия. Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Объединение данных из нескольких таблиц позволяет анализировать данные между источниками и создавать связи между точками данных. В языке запросов Kusto (KQL) используйте операторы join и lookup для объединения данных между таблицами.
В этом руководстве вы узнаете, как:
Примеры в этом руководстве используют таблицуStormEvents, которая общедоступна в кластере справки. Чтобы изучить собственные данные, создайте собственный бесплатный кластер.
Примеры, приведенные в этом руководстве, используют таблицуStormEvents, которая общедоступна в примерах данных аналитики погоды.
Необходимые компоненты
Запустите запросы в среде запросов с доступом к примеру данных. Используйте один из следующих вариантов:
- Учетная запись Майкрософт или удостоверение пользователя Microsoft Entra для входа в кластер справки
- Учетная запись Майкрософт или удостоверение пользователя Microsoft Entra
- Рабочая область Fabric с емкостью с поддержкой Microsoft Fabric
Использование оператора Join
База данных Samples содержит две связанные таблицы событий штормов: StormEvents и PopulationData. В этом разделе вы присоединяетесь к ним для анализа данных, которые невозможно использовать только в одной таблице.
Используемые данные
Используйте оператор принятия, чтобы узнать, какие данные содержатся в каждой таблице.
StormEvents
| take 5
В следующей таблице показаны только шесть из 22 возвращенных столбцов.
| Время начала | EndTime | EpisodeId | EventId | Штат | EventType | ... |
|---|---|---|---|---|---|---|
| 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 | Ливень | ... |
PopulationData
| take 5
Выходные данные
| Штат | Население |
|---|---|
| АЛАБАМА | 4918690 |
| АЛЯСКА | 727951 |
| АРИЗОНА | 7399410 |
| АРКАНЗАС | 3025880 |
| CALIFORNIA | 39562900 |
Обе таблицы имеют State столбец.
StormEvents имеет много столбцов и PopulationData имеет один другой столбец с населением штата.
Присоединение таблиц
Присоедините PopulationData с StormEvents на State для расчета общего ущерба собственности на душу населения по штатам.
StormEvents
| summarize PropertyDamage = sum(DamageProperty) by State
| join kind=innerunique PopulationData on State
| project State, PropertyDamagePerCapita = PropertyDamage / Population
| sort by PropertyDamagePerCapita
Добавьте | render columnchart в запрос, чтобы визуализировать результат.
Если у столбцов есть разные имена (например, StormEvents имеется State и PopulationData имеется StateName), укажите соединение как:
StormEvents
| join kind=innerunique PopulationData on $left.State == $right.StateName
$left ссылается на левую (внешнюю) таблицу в соединении: StormEvents.
$rightотносится к правой (внутренней) таблице: PopulationData
Совет
Используйте оператор для многих типов соединений join . См. список вариантов соединения.
Использование оператора подстановки
Оператор поиска оптимизирует запросы, которые насыщают таблицу фактов данными из таблицы измерений. Она расширяет таблицу фактов со значениями из таблицы измерений. По умолчанию система предполагает, что левая таблица является большей таблицей фактов, а справа — меньшей таблицей измерений. Это значение по умолчанию противоположно предположению оператора join.
Кластер справки включает базу данных с названием ContosoSales, содержащую данные о продажах. Следующий запрос используется lookup для объединения SalesFact таблиц и Products для возврата общего объема продаж по категориям продуктов.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
Выходные данные
| ProductCategoryName | TotalSales |
|---|---|
| Игры и игрушки | 966782 |
| Телевизоры и видеотехника | 715024 |
| Фото- и видеокамеры | 323003 |
| Компьютеры | 313487 |
| Бытовая техника | 237508 |
| Аудио | 192671 |
| Мобильные телефоны | 50342 |
| Музыка, фильмы и аудиокниги | 33376 |
Примечание.
Оператор lookup поддерживает только два варианта соединения: leftouter и inner.
Присоединение таблиц, созданных запросом
Объединение результатов из той же таблицы.
Предположим, вы хотите получить список штатов, где происходят как молнии, так и лавины. Используйте оператор соединения для объединения строк из двух запросов, возвращающих отдельные состояния для каждого типа события в столбце State .
StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
StormEvents
| where EventType == "Avalanche"
| distinct State
)
on State
| project State
Выходные данные
| Штат |
|---|
| ОРЕГОН |
| ЮТА |
| ВАЙОМИНГ |
| ВАШИНГТОН |
| КОЛОРАДО |
| АЙДАХО |
| НЕВАДА |
Связанный контент
- Узнайте о различных типах оператора соединения.
- Выполнение запросов между базами данных и между кластерами.
- Следуйте инструкциям по созданию геопространственных визуализаций .