Dela via


Självstudie: Koppla data från flera tabeller

Gäller för: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Genom att koppla data från flera tabeller kan du analysera data mellan källor och skapa relationer mellan datapunkter. I KQL (Kusto Query Language) använder du kopplings - och uppslagsoperatorerna för att kombinera data mellan tabeller.

I den här tutorialen lär du dig följande:

Exemplen i den här handledningen använder tabellen StormEvents, som offentligt tillgänglig i hjälpklustret . Utforska med dina egna data genom att skapa ett eget kostnadsfritt kluster .

Exemplen i den här handledningen använder tabellen StormEvents, som är offentligt tillgänglig i exempeldata för väderanalys.

Förutsättningar

Kör frågorna i en frågemiljö som har åtkomst till exempeldata. Använd något av följande:

  • Microsoft-konto eller Microsoft Entra-användaridentitet för att logga in på hjälpklustret

Använd kopplingsoperatorn

Exempeldatabasen har två relaterade stormhändelsetabeller: StormEvents och PopulationData. I det här avsnittet ansluter du dem för att analysera data som inte är möjliga enbart med en tabell.

Förstå data

Använd operatorn ta för att se vilka data varje tabell innehåller.

StormEvents 
| take 5

Följande tabell visar bara sex av de 22 returnerade kolumnerna.

Starttid Sluttid EpisodeId EventId Stat Händelsetyp ...
2007-09-20T21:57:00Z 2007-09-20T22:05:00Z 11078 60913 FLORIDA Tromb ...
2007-12-20T07:50:00Z 2007-12-20T07:53:00Z 12554 68796 MISSISSIPPI Åskvädersvind ...
2007-12-30T16:00:00Z 2007-12-30T16:05:00Z 11749 64588 GEORGIEN Åskvädersvind ...
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

utdata

Stat Befolkning
ALABAMA 4918690
ALASKA 727951
ARIZONA 7399410
ARKANSAS 3025880
KALIFORNIEN 39562900

Båda tabellerna har en State kolumn. StormEvents har många fler kolumner och PopulationData har en annan kolumn med delstatens population.

Sammanfoga tabellerna

Anslut PopulationData till StormEventsState för att beräkna den totala egendomsskadan 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 egendomsskador per capita och delstat.

Om kolumnerna har olika namn (till exempel StormEvents har State och PopulationData har StateName), anger du kopplingen som:

StormEvents
| join kind=innerunique PopulationData on $left.State == $right.StateName  

$left refererar till den vänstra tabellen (yttre) i kopplingen: StormEvents. $right refererar till den högra (inre) tabellen: PopulationData.

Tips

Använd operatorn join för många kopplingstyper. Se listan över varianter för koppling.

Använda uppslagsoperatorn

Uppslagsoperatorn optimerar frågor som berikar en faktatabell med data från en dimensionstabell. Den utökar faktatabellen med värden från dimensionstabellen. Systemet förutsätter som standard att den vänstra tabellen är den större faktatabellen och att den högra tabellen är den mindre dimensionstabellen. Den här standardinställningen är motsatsen till join operatorns antagande.

Hjälpklustret innehåller en databas med namnet ContosoSales med försäljningsdata. Följande fråga använder lookup för att sammanfoga tabellerna SalesFact och Products för att returnera total försäljning efter produktkategori.

SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc

utdata

Produktkategorinamn TotalFörsäljning
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

Not

Operatorn lookup stöder endast två kopplingssmaker: leftouter och inner.

Ansluta till frågegenererade tabeller

Koppla resultat från samma tabell.

Anta att du vill ha en lista över tillstånd som har både blixt- och lavinhändelser. Använd kopplingsoperatorn för att sammanfoga rader från två frågor som returnerar distinkta tillstånd för varje händelsetyp i State kolumnen.

StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
    StormEvents 
    | where EventType == "Avalanche"
    | distinct State
    )
    on State
| project State

utdata

Stat
OREGON
UTAH
WYOMING
WASHINGTON
COLORADO
IDAHO
NEVADA