Delen via


Zelfstudie: Gegevens uit meerdere tabellen samenvoegen

Van toepassing op: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel-

Als u gegevens uit meerdere tabellen samenvoegt, kunt u gegevens in verschillende bronnen analyseren en relaties tussen gegevenspunten maken. Gebruik in de Kusto Query Language (KQL) de join - en opzoekoperators om gegevens in tabellen te combineren.

In deze handleiding leer je hoe je:

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

Voer de query's uit in een queryomgeving die toegang heeft tot de voorbeeldgegevens. Gebruik een van de volgende opties:

  • Microsoft-account of Microsoft Entra-gebruikersidentiteit om u aan te melden bij het Help-cluster

De join-operator gebruiken

De samples-database heeft twee gerelateerde stormgebeurtenistabellen: StormEvents en PopulationData. In deze sectie voegt u ze toe om gegevens te analyseren die niet alleen met één tabel mogelijk zijn.

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 zes 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 hebben een State kolom. StormEvents heeft nog veel meer kolommen en PopulationData heeft één andere kolom met de bevolking van de staat.

De tabellen samenvoegen

Verbind PopulationData met StormEvents op State om de totale schade aan eigendommen per hoofd van de bevolking per staat te berekenen.

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.

Schermopname van kolomdiagram waarin de eigendomsschade per hoofd van de bevolking per staat wordt getoond.

Als de kolommen verschillende namen hebben (bijvoorbeeld StormEvents heeft State en PopulationData heeft StateName), geeft u de join op als:

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

$left verwijst naar de linkertabel (buiten) in de join: StormEvents. $right verwijst naar de rechtertabel (binnenste PopulationData): .

Fooi

Gebruik de join operator voor veel join-typen. Bekijk de lijst met join-varianten.

De opzoekoperator gebruiken

De opzoekoperator optimaliseert query's die een feitentabel verrijken met gegevens uit een dimensietabel. De feitentabel wordt uitgebreid met waarden uit de dimensietabel. Standaard wordt ervan uitgegaan dat de linkertabel de grotere feitentabel is en dat de rechtertabel de kleinere dimensietabel is. Deze standaardwaarde is het tegenovergestelde van de veronderstelling van de join operator.

De helpcluster bevat een database genaamd ContosoSales, met verkoopgegevens. De volgende query gebruikt lookup om de SalesFact en Products tabellen samen te voegen om de totale verkoop per productcategorie te retourneren.

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 lookup-operator ondersteunt slechts twee varianten van join: leftouter en inner.

Door query gegenereerde tabellen samenvoegen

Resultaten uit dezelfde tabel samenvoegen.

Stel dat u een lijst wilt met staten die zowel bliksem- als lawine-gebeurtenissen kennen. Gebruik de join-operator om rijen van twee query's samen te voegen die afzonderlijke statussen retourneren voor elk gebeurtenistype in 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