Zelfstudie: Gegevens uit meerdere tabellen samenvoegen
Het samenvoegen van gegevens uit meerdere tabellen maakt een uitgebreidere analyse mogelijk door informatie uit verschillende bronnen te combineren en nieuwe relaties tussen gegevenspunten te creëren. In de Kusto-querytaal (KQL) worden de join- en opzoekoperators gebruikt om gegevens in tabellen te combineren.
In deze zelfstudie leert u het volgende:
In de voorbeelden in deze zelfstudie wordt het openbaar beschikbare Help-cluster gebruikt. Als u wilt verkennen met uw eigen gegevens, maakt u uw eigen gratis cluster.
Vereisten
- Een Microsoft-account of Microsoft Entra gebruikersidentiteit om u aan te melden bij het Help-cluster
De join-operator gebruiken
Er zijn twee tabellen in de database Voorbeelden met betrekking tot storm-gebeurtenissen. De ene heet StormEvents
en de andere heet PopulationData
. In deze sectie gaat u de tabellen samenvoegen om gegevensanalyses uit te voeren die niet met één tabel alleen mogelijk zijn.
De gegevens begrijpen
Gebruik de take-operator om te zien welke gegevens elke tabel bevat.
StormEvents
| take 5
In de volgende tabel worden slechts 6 van de 22 geretourneerde kolommen weergegeven.
StartTime | EndTime | EpisodeId | Eventid | Staat | 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 | 12554 | 68796 | MISSISSIPPI | Onweerswind | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEORGIË | Onweerswind | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLANTISCHE ZUID | Waterspout | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Zware regen | ... |
PopulationData
| take 5
Uitvoer
Staat | Aantal inwoners |
---|---|
ALABAMA | 4918690 |
ALASKA | 727951 |
ARIZONA | 7399410 |
ARKANSAS | 3025880 |
CALIFORNIË | 39562900 |
Beide tabellen bevatten een State
kolom. De StormEvents
tabel bevat nog veel meer kolommen en de PopulationData
bevat slechts één andere kolom die de populatie van de opgegeven status bevat.
De tabellen samenvoegen
Voeg de PopulationData
tabel samen met StormEvents
in de gemeenschappelijke State
kolom om de totale materiële schade te vinden die wordt veroorzaakt door stormen per hoofd van de staat.
StormEvents
| summarize PropertyDamage = sum(DamageProperty) by State
| join kind=innerunique PopulationData on State
| project State, PropertyDamagePerCapita = PropertyDamage / Population
| sort by PropertyDamagePerCapita
Voeg toe | render columnchart
aan de query om het resultaat te visualiseren.
Tip
Er zijn veel soorten joins die u met de join
operator kunt uitvoeren. Bekijk een lijst met join-varianten.
De opzoekoperator gebruiken
De opzoekoperator optimaliseert de prestaties van query's waarbij een feitentabel is verrijkt met gegevens uit een dimensietabel. De feitentabel wordt uitgebreid met waarden die worden opgezoekd in een dimensietabel. Voor de beste prestaties gaat het systeem er standaard van uit dat de linkertabel de grotere feitentabel is en de rechtertabel de kleinere dimensietabel. Dit is precies het tegenovergestelde van de veronderstelling die door de join
operator wordt gebruikt.
In het Help-cluster bevindt zich een andere database met de naam ContosoSales
die verkoopgegevens bevat. De volgende query gebruikt lookup
om de SalesFact
tabellen en Products
uit deze database samen te voegen om de totale verkoop per productcategorie op te halen.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
Uitvoer
ProductCategoryName | TotalSales |
---|---|
Games en speelgoed | 966782 |
Tv en video | 715024 |
Camera's en camcorders | 323003 |
Computers | 313487 |
Huishoudelijke apparaten | 237508 |
Audio | 192671 |
Mobiele telefoons | 50342 |
Muziek, films en audioboeken | 33376 |
Notitie
De lookup
operator ondersteunt slechts twee join-varianten: leftouter
en inner
.
Door query's gegenereerde tabellen koppelen
Joins kunnen ook worden uitgevoerd op basis van queryresultaten uit dezelfde tabel.
Stel dat u een lijst wilt maken met statussen waarin zowel bliksem- als lawinegebeurtenissen hebben plaatsgevonden. Gebruik de join-operator om de rijen van twee tabellen samen te voegen, een met gegevens over bliksemschichten en de andere met gegevens over lawine-gebeurtenissen, op basis van de State
kolom.
StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
StormEvents
| where EventType == "Avalanche"
| distinct State
)
on State
| project State
Uitvoer
Staat |
---|
OREGON |
UTAH |
WYOMING |
WASHINGTON |
COLORADO |
IDAHO |
NEVADA |
Gerelateerde inhoud
- Meer informatie over verschillende soorten join-operatoren
- Meer informatie over het uitvoeren van query's voor meerdere databases en clusters
- Volg de zelfstudie georuimtelijke visualisaties maken
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor