Tutorial: Combinación de datos de varias tablas
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
La combinación de datos de varias tablas permite un análisis más completo mediante la combinación de información de diferentes orígenes y la creación de nuevas relaciones entre puntos de datos. En el Lenguaje de consulta Kusto (KQL), los operadores de combinación y búsqueda se usan para combinar datos entre tablas.
En este tutorial, aprenderá a:
En los ejemplos de este tutorial se usa la StormEvents
tabla , que está disponible públicamente en el clúster de ayuda. Para explorar con sus propios datos, cree su propio clúster gratuito.
En los ejemplos de este tutorial se usa la StormEvents
tabla , que está disponible públicamente en los datos de ejemplo de Análisis meteorológicos.
Requisitos previos
Para ejecutar las siguientes consultas, necesita un entorno de consulta con acceso a los datos de ejemplo. Puede usar cualquiera de los siguientes medios:
- Una cuenta microsoft o una identidad de usuario de Microsoft Entra para iniciar sesión en el clúster de ayuda
- Una cuenta microsoft o una identidad de usuario de Microsoft Entra
- Un área de trabajo de Fabric con una capacidad habilitada para Microsoft Fabric
Uso del operador join
Hay dos tablas en la base de datos samples relacionada con los eventos de Storm. Se llama StormEvents
a uno y el otro se denomina PopulationData
. En esta sección, combinará las tablas para realizar análisis de datos que no serían posibles solo con una tabla.
Comprensión de los datos
Use el operador take para ver qué datos contiene cada tabla.
StormEvents
| take 5
En la tabla siguiente se muestran solo 6 de las 22 columnas devueltas.
StartTime | EndTime | EpisodeId | EventId | State | EventType | ... |
---|---|---|---|---|---|---|
2007-09-20T21:57:00Z | 2007-09-20T22:05:00Z | 11078 | 60913 | FLORIDA | Tornado | ... |
2007-12-20T07:50:00Z | 2007-12-20T07:53:00Z | 12,554 | 68796 | MISISIPÍ | Viento de tormenta | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEORGIA | Viento de tormenta | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLÁNTICO SUR | Tromba de agua | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Lluvia intensa | ... |
PopulationData
| take 5
Salida
Valor | Población |
---|---|
ALABAMA | 4918690 |
ALASKA | 727951 |
ARIZONA | 7399410 |
ARKANSAS | 3025880 |
CALIFORNIA | 39562900 |
Ambas tablas contienen una State
columna. La StormEvents
tabla tiene muchas más columnas y la PopulationData
tiene una sola columna que contiene el rellenado del estado especificado.
Combinación de las tablas
Una la PopulationData
tabla con StormEvents
en la columna común State
para encontrar el daño total de la propiedad causado por tormentas per cápita por estado.
StormEvents
| summarize PropertyDamage = sum(DamageProperty) by State
| join kind=innerunique PopulationData on State
| project State, PropertyDamagePerCapita = PropertyDamage / Population
| sort by PropertyDamagePerCapita
Agregue | render columnchart
a la consulta para visualizar el resultado.
Sugerencia
Hay muchos tipos de combinaciones que puede realizar con el join
operador . Vea una lista de sabores de combinación.
Uso del operador de búsqueda
El operador de búsqueda optimiza el rendimiento de las consultas en las que una tabla de hechos se enriquece con datos de una tabla de dimensiones. Extiende la tabla de hechos con valores que se buscan en una tabla de dimensiones. Para obtener el mejor rendimiento, el sistema supone de forma predeterminada que la tabla izquierda es la tabla de hechos más grande y la tabla derecha es la tabla de dimensiones más pequeña. Esto es completamente opuesto a la suposición que usa el operador join
.
En el clúster de ayuda, hay otra base de datos denominada ContosoSales
que contiene datos de ventas. La consulta siguiente usa lookup
para combinar las SalesFact
tablas y Products
de esta base de datos para obtener el total de ventas por categoría de producto.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
Salida
ProductCategoryName | Ventas totales |
---|---|
Juegos y juguetes | 966782 |
TV y vídeo | 715024 |
Cámaras de fotos y vídeo | 323003 |
Computers | 313487 |
Electrodomésticos | 237508 |
Audio | 192671 |
Teléfonos móviles | 50342 |
Música, películas y audiolibros | 33376 |
Nota:
El lookup
operador solo admite dos tipos de combinación: leftouter
y inner
.
Combinación de tablas generadas por consultas
Las combinaciones también se pueden realizar en función de los resultados de la consulta de la misma tabla.
Supongamos que desea crear una lista de estados en los que se produjeron eventos de relámpago y avalancha. Use el operador join para combinar las filas de dos tablas( una que contiene datos sobre eventos lightning y la otra que contiene datos en eventos de avalancha) en función de la State
columna.
StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
StormEvents
| where EventType == "Avalanche"
| distinct State
)
on State
| project State
Salida
Valor |
---|
OREGON |
UTAH |
WYOMING |
WASHINGTON |
COLORADO |
IDAHO |
NEVADA |
Contenido relacionado
- Más información sobre los diferentes tipos de operador de combinación
- Aprenda a realizar consultas entre bases de datos y entre clústeres
- Siga el tutorial creación de visualizaciones geoespaciales