Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La jonction de données à partir de plusieurs tables vous permet d’analyser les données entre les sources et de créer des relations entre des points de données. Dans le langage de requête Kusto (KQL), utilisez les opérateurs de jointure et de recherche pour combiner des données entre des tables.
Dans ce tutoriel, vous allez apprendre à :
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’analysemétéorologique.
Prérequis
Exécutez les requêtes dans un environnement de requête qui a accès aux exemples de données. Utilisez l’une des options suivantes :
- Compte Microsoft ou identité utilisateur Microsoft Entra pour vous connecter au cluster d’aide
- Un compte Microsoft ou une identité d’utilisateur Microsoft Entra
- Espace de travail Fabric avec une capacité activée par Microsoft Fabric
Utiliser l’opérateur de jointure
La base de données Samples comporte deux tables d’événements de tempête associées : StormEvents et PopulationData. Dans cette section, vous les joignez pour analyser les données qui ne sont pas possibles 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 seulement six 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
| État | Remplissage |
|---|---|
| ALABAMA | 4918690 |
| ALASKA | 727951 |
| ARIZONA | 7399410 |
| ARKANSAS | 3025880 |
| CALIFORNIE | 39562900 |
Les deux tables ont une State colonne.
StormEvents a de nombreuses colonnes supplémentaires et PopulationData a une autre colonne avec la population de l’état.
Joindre les tables
Associe PopulationData avec StormEvents sur State pour calculer le total des dommages matériels 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.
Si les colonnes ont des noms différents (par exemple, StormEvents a State et PopulationData a StateName), spécifiez la jointure comme suit :
StormEvents
| join kind=innerunique PopulationData on $left.State == $right.StateName
$left fait référence à la table gauche (externe) dans la jointure : StormEvents.
$right fait référence à la table droite (interne) : PopulationData.
Conseil
Utilisez l’opérateur join pour de nombreux types de jointure. Consultez la liste des méthodes de jointure.
Utiliser l’opérateur de recherche
L’opérateur de recherche optimise les requêtes qui enrichissent une table de faits avec des données d’une table de dimension. Il étend la table de faits avec des valeurs de la table de dimensions. Par défaut, le système part du principe que la table de gauche est la table de faits supérieure et que la table de droite est la table de dimensions plus petite. Cette valeur par défaut est l’inverse de l’hypothèse de l’opérateur join .
Le cluster d’aide inclut une base de données nommée ContosoSales avec des données de vente. La requête suivante utilise lookup pour fusionner les tables SalesFact et Products afin de retourner 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 |
| Téléphones cellulaires | 50342 |
| Musique, films et livres audio | 33376 |
Remarque
L’opérateur lookup ne prend en charge que deux saveurs de jointure : leftouter et inner.
Joindre des tables générées par une requête
Joindre les résultats de la même table.
Supposons que vous vouliez une liste d’états qui ont à la fois des éclairs et des événements d’avalanche. Utilisez l’opérateur de jointure pour fusionner des lignes de deux requêtes qui retournent des états distincts pour chaque type d’événement sur la State colonne.
StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
StormEvents
| where EventType == "Avalanche"
| distinct State
)
on State
| project State
Sortie
| État |
|---|
| OREGON |
| UTAH |
| WYOMING |
| WASHINGTON |
| COLORADO |
| IDAHO |
| NEVADA |
Contenu connexe
- Découvrez différents types d’opérateur de jointure.
- Effectuez des requêtes inter-bases de données et inter-clusters.
- Suivez le didacticiel Créer des visualisations géospatiales .