Samouczek: dołączanie danych z wielu tabel
Dołączanie danych z wielu tabel umożliwia bardziej kompleksową analizę dzięki połączeniu informacji z różnych źródeł i tworzeniu 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:
Przykłady w tym samouczku korzystają z publicznie dostępnego klastra pomocy. Aby eksplorować własne dane, utwórz własny bezpłatny klaster.
Wymagania wstępne
- Konto Microsoft lub Microsoft Entra tożsamość użytkownika w celu zalogowania się do klastra pomocy
Korzystanie z operatora sprzężenia
Istnieją dwie tabele w bazie danych Samples powiązane ze zdarzeniami storm. Jeden jest wywoływany StormEvents
, a drugi jest nazywany PopulationData
. W tej sekcji dołączysz tabele do przeprowadzenia analizy danych, która nie byłaby możliwa tylko w jednej tabeli.
Informacje o 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 zwróconych kolumn.
StartTime | EndTime | Identyfikator odcinka | EventId | Stan | Typ zdarzenia | ... |
---|---|---|---|---|---|---|
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 | Burza wiatru | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GRUZJA | Burza wiatru | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | POŁUDNIE ATLANTYCKIE | Waterspout | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Ulewny deszcz | ... |
PopulationData
| take 5
Dane wyjściowe
Stan | Populacja |
---|---|
ALABAMA | 4918690 |
ALASKA | 727951 |
ARIZONA | 7399410 |
ARKANSAS | 3025880 |
KALIFORNII | 39562900 |
Obie tabele zawierają kolumnę State
. Tabela StormEvents
zawiera wiele kolumn, a PopulationData
kolumna zawiera tylko jedną inną kolumnę zawierającą populację danego stanu.
Dołączanie tabel
Dołącz tabelę z StormEvents
kolumną wspólnąState
, PopulationData
aby znaleźć łączną szkodę nieruchomości spowodowaną 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.
Porada
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 odnośnika 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ą szukane w tabeli wymiarów. Aby uzyskać najlepszą wydajność, system domyślnie zakłada, że lewa tabela jest większą tabelą faktów, a właściwa 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 do scalania SalesFact
tabel i Products
z tej bazy danych w celu uzyskania łącznej sprzedaży według kategorii produktów.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
Dane wyjściowe
Productcategoryname | TotalSales |
---|---|
Gry i zabawki | 966782 |
TV i wideo | 715024 |
Aparaty i kamery | 323003 |
Komputery | 313487 |
Sprzęt AGD | 237508 |
Dźwięk | 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 lawin. Użyj operatora sprzężenia, aby scalić wiersze dwóch tabel — jedną zawierającą dane dotyczące zdarzeń błyskawic, a drugą zawierającą dane dotyczące zdarzeń lawinowych — na State
podstawie kolumny.
StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
StormEvents
| where EventType == "Avalanche"
| distinct State
)
on State
| project State
Dane wyjściowe
Stan |
---|
OREGON |
UTAH |
WYOMING |
WASHINGTON |
COLORADO |
IDAHO |
NEVADA |
Zawartość pokrewna
- Dowiedz się więcej o różnych rodzajach operatorów sprzężeń
- Dowiedz się, jak wykonywać zapytania obejmujące wiele baz danych i między klastrami
- Postępuj zgodnie z samouczkiem dotyczącym tworzenia wizualizacji geoprzestrzennych
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla