Partager via


Tutoriel : joindre des données à partir de plusieurs tables

S’applique à : ✅Microsoft Fabric

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

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.

Capture d’écran du histogramme montrant les dommages aux biens par habitant par état.

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