Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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
- Una cuenta microsoft o una identidad de usuario de Microsoft Entra
- Área de trabajo de Fabric con una capacidad habilitada para Microsoft Fabric
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.
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 |
Contenido relacionado
- Obtenga información sobre los diferentes tipos de operadores de combinación.
- Realice consultas entre bases de datos y entre clústeres.
- Siga el tutorial Creación de visualizaciones geoespaciales .