Share via


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.

Skärmbild av stapeldiagram som visar egenskapsskador per capita efter delstat.

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