Självstudie: Koppla data från flera tabeller
Genom att koppla data från flera tabeller kan du få en mer omfattande analys genom att kombinera information från olika källor och skapa nya relationer mellan datapunkter. I Kusto-frågespråk (KQL) används kopplings- och uppslagsoperatorerna för att kombinera data mellan tabeller.
I den här självstudien får du lära dig att:
Exemplen i den här självstudien använder det offentligt tillgängliga hjälpklustret. Om du vill utforska med dina egna data skapar du ett eget kostnadsfritt kluster.
Förutsättningar
- Ett Microsoft-konto eller en Microsoft Entra användaridentitet för att logga in på hjälpklustret
Använda kopplingsoperatorn
Det finns två tabeller i exempeldatabasen som är relaterade till stormhändelser. Den ena anropas StormEvents
och den andra kallas PopulationData
. I det här avsnittet ska du koppla tabellerna för att utföra dataanalyser som inte skulle vara möjliga enbart med en tabell.
Förstå data
Använd take-operatorn för att se vilka data varje tabell innehåller.
StormEvents
| take 5
I följande tabell visas endast 6 av de 22 returnerade kolumnerna.
StartTime | EndTime | EpisodeId | EventID | Tillstånd | 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 | Åska vind | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEORGIEN | Åska vind | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLANTEN, SÖDRA | Vattenspout | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Kraftigt regn | ... |
PopulationData
| take 5
Resultat
Tillstånd | Population |
---|---|
ALABAMA | 4918690 |
ALASKA | 727951 |
ARIZONA | 7399410 |
ARKANSAS | 3025880 |
KALIFORNIEN | 39562900 |
Båda tabellerna innehåller en State
kolumn. Tabellen StormEvents
har många fler kolumner och PopulationData
har bara en annan kolumn som innehåller populationen för det angivna tillståndet.
Koppla tabellerna
Koppla tabellen PopulationData
med StormEvents
i den gemensamma State
kolumnen för att hitta den totala egenskapsskadan som orsakas av stormar per capita efter delstat.
StormEvents
| summarize PropertyDamage = sum(DamageProperty) by State
| join kind=innerunique PopulationData on State
| project State, PropertyDamagePerCapita = PropertyDamage / Population
| sort by PropertyDamagePerCapita
Lägg till | render columnchart
i frågan för att visualisera resultatet.
Tips
Det finns många typer av kopplingar som du kan utföra med operatorn join
. Se en lista över kopplingssmak.
Använda uppslagsoperatorn
Uppslagsoperatorn optimerar prestandan för frågor där en faktatabell berikas med data från en dimensionstabell. Den utökar faktatabellen med värden som letas upp i en dimensionstabell. För bästa prestanda förutsätter systemet som standard att den vänstra tabellen är den större faktatabellen och att den högra tabellen är den mindre dimensionstabellen. Detta är helt motsatt till antagandet som används av operatorn join
.
I hjälpklustret finns det en annan databas med namnet ContosoSales
som innehåller försäljningsdata. Följande fråga använder lookup
för att slå samman tabellerna SalesFact
och Products
från den här databasen för att få den totala försäljningen per produktkategori.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
Resultat
Productcategoryname | TotalSales |
---|---|
Spel och leksaker | 966782 |
TV och video | 715024 |
Kameror och videokameror | 323003 |
Datorer | 313487 |
Hushållsapparater | 237508 |
Ljud | 192671 |
Mobiltelefoner | 50342 |
Musik, filmer och ljudböcker | 33376 |
Anteckning
Operatorn lookup
stöder endast två kopplingssmak: leftouter
och inner
.
Ansluta till frågegenererade tabeller
Kopplingar kan också göras baserat på frågeresultat från samma tabell.
Anta att du vill skapa en lista över tillstånd där både blixtnedslag och lavinhändelser inträffade. Använd kopplingsoperatorn för att sammanfoga raderna i två tabeller – den ena innehåller data om blixthändelser och den andra innehåller data om lavinhändelser – baserat på State
kolumnen.
StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
StormEvents
| where EventType == "Avalanche"
| distinct State
)
on State
| project State
Resultat
Tillstånd |
---|
OREGON |
UTAH |
WYOMING |
WASHINGTON |
COLORADO |
IDAHO |
NEVADA |
Relaterat innehåll
- Lär dig mer om olika typer av kopplingsoperatorer
- Lär dig hur du utför frågor mellan databaser och kluster
- Följ självstudien skapa geospatiala visualiseringar
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för