Zelfstudie: Gegevens uit meerdere tabellen samenvoegen
Van toepassing op: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel-
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 maken. In de Kusto Query Language (KQL)worden de operators join en lookup gebruikt om gegevens in verschillende tabellen te combineren.
In deze zelfstudie leert u het volgende:
In de voorbeelden in deze zelfstudie wordt gebruikgemaakt van de StormEvents
tabel, die openbaar beschikbaar is in de helpcluster. Als u wilt verkennen met uw eigen gegevens, u uw eigen gratis clustermaken.
In de voorbeelden in deze tutorial wordt de StormEvents
tabel gebruikt, die openbaar beschikbaar is in de Weather Analyticsvoorbeeldgegevens.
Voorwaarden
Als u de volgende query's wilt uitvoeren, hebt u een queryomgeving nodig met toegang tot de voorbeeldgegevens. U kunt een van de volgende opties gebruiken:
- Een Microsoft-account of Microsoft Entra-gebruikersidentiteit om u aan te melden bij het Help-cluster
- Een Microsoft-account of Microsoft Entra-gebruikersidentiteit
- Een Fabric-werkruimte met een Microsoft Fabric-ingeschakelde capaciteit
De join-operator gebruiken
Er zijn twee tabellen in de database Samples gerelateerd aan storm-gebeurtenissen. De ene wordt StormEvents
genoemd en de andere wordt PopulationData
genoemd. In deze sectie voegt u de tabellen samen om gegevensanalyse uit te voeren die niet mogelijk is met één tabel alleen.
Inzicht in de gegevens
Gebruik de operator om te zien welke gegevens elke tabel bevat.
StormEvents
| take 5
In de volgende tabel ziet u slechts 6 van de 22 geretourneerde kolommen.
Starttijd | Eindtijd | EpisodeId | EventId | Staat | Type gebeurtenis | ... |
---|---|---|---|---|---|---|
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 | Onweer wind | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEORGIË | Onweer wind | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLANTISCHE ZUID | Waterhoos | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Zware regen | ... |
PopulationData
| take 5
uitvoer
Staat | Bevolking |
---|---|
ALABAMA | 4918690 |
ALASKA | 727951 |
ARIZONA | 7399410 |
ARKANSAS | 3025880 |
CALIFORNIË | 39562900 |
Beide tabellen bevatten een State
kolom. De StormEvents
tabel bevat veel meer kolommen en de PopulationData
heeft slechts één andere kolom die de populatie van de opgegeven status bevat.
De tabellen samenvoegen
Voeg de PopulationData
tabel toe met StormEvents
in de gemeenschappelijke kolom State
om de totale materiële schade te vinden die wordt veroorzaakt door stormen per hoofd van de bevolking per staat.
StormEvents
| summarize PropertyDamage = sum(DamageProperty) by State
| join kind=innerunique PopulationData on State
| project State, PropertyDamagePerCapita = PropertyDamage / Population
| sort by PropertyDamagePerCapita
Voeg | render columnchart
toe aan de query om het resultaat te visualiseren.
Als de kolommen verschillende namen hebben, bijvoorbeeld StormEvents
State
heeft en PopulationData
StateName
heeft, geeft u de join als volgt op:
StormEvents
| join kind=innerunique PopulationData on $left.State == $right.StateName
$left
is de tabel aan de linkerkant of buitenste kant van de joinoperator, in dit geval StormEvents
.
$right
is de tabel aan de rechter- of binnenkant van de joinoperator, in dit geval PopulationData
.
Fooi
Er zijn veel soorten joins die u kunt uitvoeren met de operator join
. Bekijk een lijst met join-smaken.
De opzoekoperator gebruiken
De opzoekoperator optimaliseert de prestaties van query's waarbij een feitentabel wordt verrijkt met gegevens uit een dimensietabel. Hiermee wordt de feitentabel uitgebreid met waarden die in een dimensietabel worden opgezoekd. Voor de beste prestaties gaat het systeem standaard ervan uit dat de linkertabel de grotere feitentabel is en dat de rechtertabel de kleinere dimensietabel is. Dit is precies tegenovergestelde van de veronderstelling die wordt gebruikt door de operator join
.
In het Help-cluster bevindt zich een andere database met de naam ContosoSales
die verkoopgegevens bevat. In de volgende query wordt lookup
gebruikt om de tabellen SalesFact
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
ProductCategorienaam | TotaleVerkoop |
---|---|
Games en speelgoed | 966782 |
TV en Video | 715024 |
Camera's en webcams | 323003 |
Computers | 313487 |
Huisapparaten | 237508 |
Audio | 192671 |
Mobiele telefoons | 50342 |
Muziek, films en audioboeken | 33376 |
Notitie
De operator lookup
ondersteunt slechts twee join-smaken: leftouter
en inner
.
Door query gegenereerde tabellen samenvoegen
Joins kunnen ook worden uitgevoerd op basis van queryresultaten uit dezelfde tabel.
Stel dat u een lijst wilt maken van staten waarin zowel bliksem- als lawinegebeurtenissen zijn voorgekomen. Gebruik de join-operator om de rijen van twee tabellen samen te voegen, één met gegevens over bliksemevenementen en de andere met gegevens over lawine-gebeurtenissen, op basis van de kolom State
.
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 |
Verwante inhoud
- Meer informatie over de verschillende soorten koppelingsoperatoren
- Meer informatie over het uitvoeren van query's voor meerdere databases en clusters
- Volg de zelfstudie georuimtelijke visualisaties maken