Udostępnij za pośrednictwem


Samouczek: dołączanie danych z wielu tabel

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Łączenie danych z wielu tabel umożliwia bardziej kompleksową analizę dzięki połączeniu informacji z różnych źródeł i utworzeniu nowych relacji między punktami danych. W język zapytań Kusto (KQL) operatory sprzężenia i wyszukiwania są używane do łączenia danych między tabelami.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

W przykładach w tym samouczku StormEvents użyto tabeli, która jest publicznie dostępna w klastrze pomocy. Aby eksplorować własne dane, utwórz własny bezpłatny klaster.

W przykładach w tym samouczku użyto StormEvents tabeli, która jest publicznie dostępna w przykładowych danych analizy pogody.

Wymagania wstępne

Aby uruchomić następujące zapytania, potrzebujesz środowiska zapytań z dostępem do przykładowych danych. Możesz użyć jednej z następujących opcji:

  • Konto Microsoft lub tożsamość użytkownika Microsoft Entra w celu zalogowania się do klastra pomocy

Korzystanie z operatora sprzężenia

W bazie danych Samples znajdują się dwie tabele związane ze zdarzeniami storm. Jedna jest wywoływanaStormEvents, a druga jest nazywana .PopulationData W tej sekcji połączysz tabele w celu przeprowadzenia analizy danych, która nie byłaby możliwa tylko z jedną tabelą.

Omówienie danych

Użyj operatora take, aby zobaczyć, jakie dane zawiera każda tabela.

StormEvents 
| take 5

W poniższej tabeli przedstawiono tylko 6 z 22 zwracanych kolumn.

StartTime EndTime EpisodeId EventId Stan 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 Wiatr i burza ...
2007-12-30T16:00:00Z 2007-12-30T16:05:00Z 11749 64588 GEORGIA Wiatr i burza ...
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 POŁUDNIE ATLANTYCKIE Wodopoje ...
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Ulewny deszcz ...
PopulationData 
| take 5

Wyjście

Stan Populacja
ALABAMA 4918690
ALASKA 727951
ARIZONA 7399410
ARKANSAS 3025880
KALIFORNIA 39562900

Obie tabele zawierają kolumnę State . Tabela StormEvents zawiera o wiele więcej kolumn i PopulationData zawiera tylko jedną inną kolumnę zawierającą populację danego stanu.

Łączenie tabel

Dołącz tabelę PopulationData z StormEvents kolumną wspólną State , aby znaleźć łączne szkody w nieruchomości spowodowane przez burze na mieszkańca według stanu.

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

Dodaj | render columnchart do zapytania, aby zwizualizować wynik.

Zrzut ekranu przedstawiający wykres kolumnowy przedstawiający uszkodzenia nieruchomości na mieszkańca według stanu.

Napiwek

Istnieje wiele typów sprzężeń, które można wykonać za pomocą join operatora . Zobacz listę smaków sprzężenia.

Korzystanie z operatora odnośnika

Operator wyszukiwania optymalizuje wydajność zapytań, w których tabela faktów jest wzbogacona o dane z tabeli wymiarów. Rozszerza tabelę faktów o wartości, które są wyszukane w tabeli wymiarów. Aby uzyskać najlepszą wydajność, system domyślnie zakłada, że lewa tabela jest większą tabelą faktów, a prawa tabela jest mniejszą tabelą wymiarów. Jest to dokładnie przeciwieństwo założenia, które jest używane przez join operatora.

W klastrze pomocy istnieje inna baza danych o nazwie ContosoSales , która zawiera dane sprzedaży. Poniższe zapytanie używa lookup metody , aby scalić SalesFact tabele i Products z tej bazy danych, aby uzyskać łączną sprzedaż według kategorii produktów.

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

Wyjście

ProductCategoryName TotalSales
Gry i zabawki 966782
Tv i wideo 715024
Kamery i kamery 323003
Komputery 313487
Gospodarstwa domowego 237508
Audio 192671
Telefony komórkowe 50342
Muzyka, filmy i książki audio 33376

Uwaga

Operator lookup obsługuje tylko dwa sprzężenia: leftouter i inner.

Łączenie tabel generowanych przez zapytania

Sprzężenia można również wykonywać na podstawie wyników zapytania z tej samej tabeli.

Załóżmy, że chcesz utworzyć listę stanów, w których wystąpiły zdarzenia pioruna i lawiny. Użyj operatora sprzężenia, aby scalić wiersze dwóch tabel — jedną zawierającą dane dotyczące zdarzeń błyskawic i drugą zawierającą dane na zdarzeniach lawinowych — na State podstawie kolumny.

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

Wyjście

Stan
OREGON
UTAH
WYOMING
WASZYNGTON
KOLORADO
IDAHO
NEVADA