Samouczek: dołączanie danych z wielu tabel
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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
- Konto Microsoft lub tożsamość użytkownika Entra firmy Microsoft
- Obszar roboczy sieci szkieletowej z pojemnością z włączoną usługą Microsoft Fabric
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.
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 |
Powiązana zawartość
- Dowiedz się więcej o różnych rodzajach operatorów sprzężenia
- Dowiedz się, jak wykonywać zapytania obejmujące wiele baz danych i między klastrami
- Postępuj zgodnie z samouczkiem dotyczącym tworzenia wizualizacji geoprzestrzennych