Freigeben über


Lernprogramm: Verknüpfen von Daten aus mehreren Tabellen

Gilt für: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Das Verknüpfen von Daten aus mehreren Tabellen ermöglicht eine umfassendere Analyse, indem Informationen aus verschiedenen Quellen kombiniert und neue Beziehungen zwischen Datenpunkten erstellt werden. Im Kusto-Abfragesprache (KQL) werden die Verknüpfungs- und Nachschlageoperatoren verwendet, um Daten über Tabellen hinweg zu kombinieren.

In diesem Tutorial lernen Sie Folgendes:

Die Beispiele in diesem Lernprogramm verwenden die StormEvents Tabelle, die im Hilfecluster öffentlich verfügbar ist. Um ihre eigenen Daten zu erkunden, erstellen Sie Ihren eigenen kostenlosen Cluster.

In den Beispielen in diesem Lernprogramm wird die StormEvents Tabelle verwendet, die in den Beispieldaten der Wetteranalyse öffentlich verfügbar ist.

Voraussetzungen

Zum Ausführen der folgenden Abfragen benötigen Sie eine Abfrageumgebung mit Zugriff auf die Beispieldaten. Sie können eine der folgenden Anwendungen verwenden:

Verwenden des Verknüpfungsoperators

Es gibt zwei Tabellen in der Beispieldatenbank im Zusammenhang mit Sturmereignissen. Man wird aufgerufen StormEvents , und der andere wird aufgerufen PopulationData. In diesem Abschnitt verknüpfen Sie die Tabellen, um Datenanalysen durchzuführen, die mit einer einzigen Tabelle nicht möglich wären.

Grundlegendes zu den Daten

Verwenden Sie den Operator "Take ", um zu sehen, welche Daten jede Tabelle enthält.

StormEvents 
| take 5

In der folgenden Tabelle sind nur 6 der 22 zurückgegebenen Spalten aufgeführt.

StartTime EndTime EpisodeId EventId State 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 12,554 68796 MISSISSIPPI Sturm ...
2007-12-30T16:00:00Z 2007-12-30T16:05:00Z 11749 64588 GEORGIA Sturm ...
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 ATLANTIC SOUTH Waterspout ...
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Starker Regen ...
PopulationData 
| take 5

Ausgabe

State Auffüllung
ALABAMA 4918690
ALASKA 727951
ARIZONA 7399410
ARKANSAS 3025880
CALIFORNIA 39562900

Beide Tabellen enthalten eine State Spalte. Die StormEvents Tabelle enthält viele weitere Spalten, und die PopulationData Spalte enthält nur eine andere Spalte, die die Population des angegebenen Zustands enthält.

Verknüpfen der Tabellen

Verbinden Sie die PopulationData Tabelle mit StormEvents der gemeinsamen State Spalte, um den Gesamtschaden zu finden, der durch Stürme pro Kopf pro Staat verursacht wird.

StormEvents
| summarize PropertyDamage = sum(DamageProperty) by State
| join kind=innerunique PopulationData on State
| project State, PropertyDamagePerCapita = PropertyDamage / Population
| sort by PropertyDamagePerCapita

Fügen Sie | render columnchart der Abfrage hinzu, um das Ergebnis zu visualisieren.

Screenshot des Säulendiagramms mit Sachschäden pro Kopf nach Staat.

Tipp

Es gibt viele Arten von Verknüpfungen, die Sie mit dem join Operator ausführen können. Sehen Sie sich eine Liste der Verknüpfungsaromen an.

Verwenden des Nachschlageoperators

Der Nachschlageoperator optimiert die Leistung von Abfragen, bei denen eine Faktentabelle mit Daten aus einer Dimensionstabelle erweitert wird. Er erweitert die Faktentabelle um Werte, die in einer Dimensionstabelle nachgeschlagen werden. Für eine optimale Leistung geht das System standardmäßig davon aus, dass die linke Tabelle die größere Faktentabelle ist, und die rechte Tabelle ist die kleinere Dimensionstabelle. Dies ist das genaue Gegenteil zu der Annahme, die vom join-Operator verwendet wird.

Im Hilfecluster gibt es eine andere Datenbank ContosoSales , die Verkaufsdaten enthält. Die folgende Abfrage verwendet lookup , um die SalesFact Tabellen aus Products dieser Datenbank zusammenzuführen, um den Gesamtumsatz nach Produktkategorie abzurufen.

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

Output

ProductCategoryName TotalSales
Games and Toys 966782
TV and Video 715024
Cameras and camcorders 323003
Computer 313487
Home Appliances 237508
Audio 192671
Cell phones 50342
Music, Movies and Audio Books 33376

Hinweis

Der lookup Operator unterstützt nur zwei Verknüpfungsrichtungen: leftouter und inner.

Verknüpft abfragegenerierte Tabellen

Verknüpfungen können auch basierend auf Abfrageergebnissen aus derselben Tabelle ausgeführt werden.

Angenommen, Sie möchten eine Liste von Zuständen erstellen, in denen Blitz- und Lawinenereignisse aufgetreten sind. Verwenden Sie den Verknüpfungsoperator, um die Zeilen von zwei Tabellen zusammenzuführen, die Daten zu Blitzereignissen und die andere enthaltende Daten zu Lawinenereignissen basierend auf der State Spalte.

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

Ausgabe

State
OREGON
UTAH
WYOMING
WASHINGTON
COLORADO
IDAHO
NEVADA