Tutoriel : Joindre des données à partir de plusieurs tables
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
La jonction de données à partir de plusieurs tables permet une analyse plus complète en combinant des informations provenant de différentes sources et en créant de nouvelles relations entre des points de données. Dans le Langage de requête Kusto (KQL), les opérateurs de jointure et de recherche sont utilisés pour combiner des données entre des tables.
Ce didacticiel vous montre comment effectuer les opérations suivantes :
Les exemples de ce didacticiel utilisent la StormEvents
table, qui est publiquement disponible dans le cluster d’aide. Pour explorer vos propres données, créez votre propre cluster gratuit.
Les exemples de ce didacticiel utilisent la StormEvents
table, qui est publiquement disponible dans les exemples de données d’analyse météorologique.
Prérequis
Pour exécuter les requêtes suivantes, vous avez besoin d’un environnement de requête avec accès aux exemples de données. Vous pouvez utiliser l'un des éléments suivants :
- Un compte Microsoft ou une identité d’utilisateur Microsoft Entra
- Un espace de travail Fabric avec une capacité avec Microsoft Fabric
Utiliser l’opérateur de jointure
Il existe deux tables dans la base de données Samples liées aux événements storm. L’un est appelé StormEvents
et l’autre est appelé PopulationData
. Dans cette section, vous allez joindre les tables pour effectuer une analyse des données qui ne serait pas possible avec une seule table.
Comprendre les données
Utilisez l’opérateur take pour voir quelles données chaque table contient.
StormEvents
| take 5
Le tableau suivant affiche uniquement 6 des 22 colonnes retournées.
StartTime | EndTime | EpisodeId | EventId | État | Type d’événement | ... |
---|---|---|---|---|---|---|
2007-09-20T21:57:00Z | 2007-09-20T22:05:00Z | 11078 | 60913 | FLORIDE | Tornade | ... |
2007-12-20T07:50:00Z | 2007-12-20T07:53:00Z | 12,554 | 68796 | MISSISSIPPI | Vent d’orage | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEORGIE | Vent d’orage | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLANTIQUE SUD | Trombe marine | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDE | Fortes précipitations | ... |
PopulationData
| take 5
Sortie
State | Remplissage |
---|---|
ALABAMA | 4918690 |
ALASKA | 727951 |
ARIZONA | 7399410 |
ARKANSAS | 3025880 |
CALIFORNIE | 39562900 |
Les deux tables contiennent une State
colonne. La StormEvents
table comporte de nombreuses colonnes supplémentaires et PopulationData
n’a qu’une seule autre colonne qui contient la population de l’état donné.
Joindre les tables
Joignez la PopulationData
table à StormEvents
la colonne commune State
pour trouver le total des dommages causés par les tempêtes par habitant par état.
StormEvents
| summarize PropertyDamage = sum(DamageProperty) by State
| join kind=innerunique PopulationData on State
| project State, PropertyDamagePerCapita = PropertyDamage / Population
| sort by PropertyDamagePerCapita
Ajoutez | render columnchart
à la requête pour visualiser le résultat.
Conseil
Il existe de nombreux types de jointures que vous pouvez effectuer avec l’opérateur join
. Consultez la liste des saveurs de jointure.
Utiliser l’opérateur de recherche
L’opérateur de recherche optimise les performances des requêtes où une table de faits est enrichie avec des données d’une table de dimension. Cela étend la table de faits avec des valeurs recherchées dans une table de dimension. Pour des performances optimales, le système suppose par défaut que la table de gauche est la table de faits supérieure et que la table de droite est la table de dimension plus petite. Cela est exactement l’opposé de l’hypothèse utilisée par l’opérateur join
.
Dans le cluster d’aide, il existe une autre base de données appelée ContosoSales
qui contient des données de vente. La requête suivante utilise lookup
pour fusionner les tables et Products
les SalesFact
tables de cette base de données pour obtenir le total des ventes par catégorie de produit.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
Sortie
ProductCategoryName | TotalSales |
---|---|
Jeux et jouets | 966782 |
TV et vidéo | 715024 |
Caméras et caméscopes | 323003 |
Ordinateurs | 313487 |
Équipements pour la maison | 237508 |
Audio | 192671 |
Cell phones | 50342 |
Musique, films et livres audio | 33376 |
Remarque
L’opérateur lookup
prend uniquement en charge deux saveurs de jointure : leftouter
et inner
.
Joindre des tables générées par une requête
Les jointures peuvent également être effectuées en fonction des résultats de requête de la même table.
Dites que vous voulez créer une liste d’états dans lesquels des événements de foudre et d’avalanche se sont produits. Utilisez l’opérateur de jointure pour fusionner les lignes de deux tables ( une contenant des données sur les événements éclairs et l’autre contenant des données sur les événements d’avalanche) en fonction de la State
colonne.
StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
StormEvents
| where EventType == "Avalanche"
| distinct State
)
on State
| project State
Sortie
State |
---|
OREGON |
UTAH |
WYOMING |
WASHINGTON |
COLORADO |
IDAHO |
NEVADA |
Contenu connexe
- En savoir plus sur différents types d’opérateur de jointure
- Découvrez comment effectuer des requêtes inter-bases de données et inter-clusters
- Suivez le didacticiel créer des visualisations géospatiales