Tutorial: Verknüpfen von Daten aus mehreren Tabellen
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. In der Kusto-Abfragesprache (KQL) werden die Join- und Nachschlageoperatoren verwendet, um Daten tabellenübergreifend zu kombinieren.
In diesem Tutorial lernen Sie Folgendes:
In den Beispielen in diesem Tutorial wird der öffentlich verfügbare Hilfecluster verwendet. Um mit Ihren eigenen Daten zu erkunden, erstellen Sie Ihren eigenen kostenlosen Cluster.
Voraussetzungen
- Ein Microsoft-Konto oder Microsoft Entra Benutzeridentität für die Anmeldung beim Hilfecluster
Verwenden des Verknüpfungsoperators
Es gibt zwei Tabellen in der Beispieldatenbank , die sich auf Sturmereignisse beziehen. Einer wird aufgerufen StormEvents
, und der andere heißt PopulationData
. In diesem Abschnitt fügen Sie die Tabellen zusammen, um Datenanalysen durchzuführen, die mit einer einzigen Tabelle nicht möglich wären.
Grundlegendes zu den Daten
Verwenden Sie den Take-Operator , um zu ermitteln, welche Daten jede Tabelle enthält.
StormEvents
| take 5
Die folgende Tabelle zeigt nur 6 der 22 zurückgegebenen Spalten.
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 | 12554 | 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 | Wasserhose | ... |
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
hat nur eine weitere Spalte, die die Auffüllung des angegebenen Zustands enthält.
Verknüpfen der Tabellen
Fügen Sie die PopulationData
Tabelle mit StormEvents
in der gemeinsamen State
Spalte zusammen, um den gesamt durch Stürme verursachten Sachschaden pro Kopf nach Staat zu ermitteln.
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.
Tipp
Es gibt viele Arten von Joins, die Sie mit dem join
Operator ausführen können. Sehen Sie sich eine Liste der Join-Varianten an.
Verwenden des Nachschlageoperators
Der Nachschlageoperator optimiert die Leistung von Abfragen, bei denen eine Faktentabelle mit Daten aus einer Dimensionstabelle angereichert ist. 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 und die rechte Tabelle die kleinere Dimensionstabelle ist. Dies ist das genaue Gegenteil zu der Annahme, die vom join
-Operator verwendet wird.
Im Hilfecluster gibt es eine andere Datenbank namens ContosoSales
, die Verkaufsdaten enthält. Die folgende Abfrage verwendet lookup
, um die SalesFact
Tabellen und Products
aus dieser Datenbank zusammenzuführen, um den Gesamtumsatz nach Produktkategorie abzurufen.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
Ausgabe
ProductCategoryName | TotalSales |
---|---|
Games and Toys | 966782 |
Fernsehen und Videorekorder | 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 Join-Varianten: leftouter
und inner
.
Verknüpfen von abfragegenerierten Tabellen
Joins können auch basierend auf Abfrageergebnissen aus derselben Tabelle durchgeführt werden.
Angenommen, Sie möchten eine Liste von Zuständen erstellen, in denen sowohl Blitzereignisse als auch Lawinenereignisse aufgetreten sind. Verwenden Sie den Joinoperator, um die Zeilen von zwei Tabellen – eine mit Daten zu Blitzereignissen und die andere mit Daten zu Lawinenereignissen – basierend auf der State
Spalte zusammenzuführen.
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 |
Verwandte Inhalte
- Erfahren Sie mehr über verschiedene Arten von Join-Operatoren.
- Hier erfahren Sie, wie Sie datenbank- und clusterübergreifende Abfragen ausführen.
- Befolgen Sie das Tutorial zum Erstellen von räumlichen Visualisierungen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für