Compartir por


Tutorial: Combinación de datos de varias tablas

Se aplica a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

La combinación de datos de varias tablas permite analizar datos entre orígenes y crear relaciones entre puntos de datos. En el Lenguaje de Consulta Kusto (KQL), use los operadores join y lookup 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

Ejecute las consultas en un entorno de consulta que tenga acceso a los datos de ejemplo. Use una de las siguientes opciones:

  • Cuenta Microsoft o identidad de usuario de Microsoft Entra para iniciar sesión en el clúster de ayuda

Uso del operador join

La base de datos Samples tiene dos tablas relacionadas de eventos de tormenta: StormEvents y PopulationData. En esta sección, los combinará para analizar datos que no es posible obtener con una sola tabla.

Comprensión de los datos

Use el operador take para ver qué datos contiene cada tabla.

StormEvents 
| take 5

En la tabla siguiente solo se muestran seis 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

State Población
ALABAMA 4918690
ALASKA 727951
ARIZONA 7399410
ARKANSAS 3025880
CALIFORNIA 39562900

Ambas tablas tienen una State columna. StormEvents tiene muchas más columnas y PopulationData tiene otra columna con la población del estado.

Combinación de las tablas

Únase PopulationData con StormEvents en State para calcular el total de daños de propiedad por estado per cápita.

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.

Captura de pantalla del gráfico de columnas que muestra el daño de propiedad por estado.

Si las columnas tienen nombres diferentes (por ejemplo, StormEvents tiene State y PopulationData tiene StateName), especifique la combinación como:

StormEvents
| join kind=innerunique PopulationData on $left.State == $right.StateName  

$left hace referencia a la tabla izquierda (externa) de la combinación: StormEvents. $right se refiere a la tabla derecha (interna) PopulationData.

Sugerencia

Use el join operador para muchos tipos de combinación. Consulte la lista de variantes de unión.

Uso del operador de búsqueda

El operador de búsqueda optimiza las consultas que enriquecen una tabla de hechos con datos de una tabla de dimensiones. Extiende la tabla de hechos con valores de la tabla de dimensiones. De forma predeterminada, el sistema supone 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. Este valor predeterminado es lo contrario de la join suposición del operador.

El clúster de ayuda incluye una base de datos denominada ContosoSales con datos de ventas. La consulta siguiente usa lookup para combinar las SalesFact tablas y Products para devolver las ventas totales 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

Combinar los resultados de la misma tabla.

Supongamos que desea una lista de estados que tienen eventos de relámpago y avalancha. Use el operador join para combinar filas de dos consultas que devuelven estados distintos para cada tipo de evento 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