Tutorial: Combinación de datos de varias tablas
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 el clúster de ayuda disponible públicamente. Para explorar con sus propios datos, cree su propio clúster gratuito.
Requisitos previos
- Una cuenta de Microsoft o Microsoft Entra identidad de usuario para iniciar sesión en el clúster de ayuda
Uso del operador join
Hay dos tablas en la base de datos samples relacionada con los eventos 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 | 12554 | 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
State | 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 tiene PopulationData
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 rayo 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 sobre 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
State |
---|
OREGON |
UTAH |
WYOMING |
WASHINGTON |
COLORADO |
IDAHO |
NEVADA |
Contenido relacionado
- Más información sobre los diferentes tipos de operador de combinación
- Obtenga información sobre cómo realizar consultas entre bases de datos y entre clústeres
- Siga el tutorial creación de visualizaciones geoespaciales .
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de