Kurz: Spojení dat z více tabulek

Přepněte služby pomocí rozevíracího seznamu Verze . Přečtěte si další informace o navigaci.
Platí pro: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Spojení dat z více tabulek umožňuje analyzovat data napříč zdroji a vytvářet relace mezi datovými body. V dotazovacím jazyce Kusto (KQL) použijte operátory spojení a vyhledávání ke kombinování dat napříč tabulkami.

V tomto návodu se naučíte, jak:

Příklady v tomto kurzu používají StormEvents tabulku, která je veřejně dostupná v clusteru nápovědy. Pokud chcete prozkoumat vlastní data, vytvořte si vlastní bezplatný cluster.

Příklady v tomto kurzu používají StormEvents tabulku, která je veřejně dostupná v ukázkových datech analýzypočasí.

Požadavky

Spusťte dotazy v prostředí dotazu, které má přístup k ukázkovým datům. Použijte jednu z následujících možností:

  • Účet Microsoft nebo identita uživatele Microsoft Entra pro přihlášení ke clusteru nápovědy

Použití operátoru join

Databáze Samples obsahuje dvě související tabulky bouřkových událostí: StormEvents a PopulationData. V této části je spojíte, abyste analyzovali data, která není možná s jedinou tabulkou.

Vysvětlení dat

Pomocí operátoru take můžete zjistit, jaká data každá tabulka obsahuje.

StormEvents 
| take 5

Následující tabulka ukazuje pouze šest z 22 vrácených sloupců.

Počáteční čas EndTime EpisodeId EventId State Typ události ...
2007-09-20T21:57:00Z 2007-09-20T22:05:00Z 11078 60913 FLORIDA Tornádo ...
2007-12-20T07:50:00Z 2007-12-20T07:53:00Z 12554 68796 MISSISSIPPI Větrná bouře ...
2007-12-30T16:00:00Z 2007-12-30T16:05:00Z 11749 64588 GEORGIA Větrná bouře ...
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 ATLANTICKÝ JIH Okapová trouba ...
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Těžký déšť ...
PopulationData 
| take 5

Výstup

State Počet obyvatel
ALABAMA 4918690
ALJAŠKA 727951
ARIZONA 7399410
ARKANSAS 3025880
KALIFORNIE 39562900

Obě tabulky mají State sloupec. StormEvents má mnoho dalších sloupců a PopulationData má jeden druhý sloupec se stavem populace.

Spojení tabulek

Proveďte spojení PopulationData s StormEvents na State pro výpočet celkových škod na majetku na obyvatele podle jednotlivých států.

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

Přidáním | render columnchart do dotazu vizualizujete výsledek.

Snímek obrazovky sloupcového grafu zobrazující poškození majetku na obyvatele podle státu

Pokud mají sloupce jiné názvy (například StormEventsState a PopulationData obsahuje StateName), zadejte spojení jako:

StormEvents
| join kind=innerunique PopulationData on $left.State == $right.StateName  

$left odkazuje na levou (vnější) tabulku ve spojení: StormEvents. $right odkazuje na pravou (vnitřní) tabulku: PopulationData.

Tip

join Operátor použijte pro mnoho typů spojení. Podívejte se na seznam druhů spojení.

Použití vyhledávacího operátoru

Operátor vyhledávání optimalizuje dotazy, které obohacují tabulku faktů daty z tabulky dimenzí. Rozšíří tabulku faktů o hodnoty z tabulky dimenzí. Ve výchozím nastavení systém předpokládá, že levá tabulka je větší tabulka faktů a pravá tabulka je menší tabulka dimenzí. Toto výchozí nastavení je opakem předpokladu join operátora.

Cluster nápovědy obsahuje databázi pojmenovanou ContosoSales s prodejními daty. Následující dotaz používá lookup ke sloučení SalesFact tabulek a Products k vrácení celkového prodeje podle kategorie produktů.

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

Výstup

ProductCategoryName TotalSales
Hry a hračky 966782
TV a video 715024
Kamery a videokamery 323003
Počítače 313487
Domácí spotřebiče 237508
Zvuk 192671
Mobilní telefony 50342
Hudba, filmy a zvukové knihy 33376

Poznámka:

Operátor lookup podporuje pouze dva typy spojení: leftouter a inner.

Spojení tabulek generovaných dotazem

Spojte výsledky ze stejné tabulky.

Předpokládejme, že chcete seznam států, kde se vyskytují jak blesky, tak lavinové události. Pomocí operátoru spojení sloučíte řádky ze dvou dotazů, které vracejí odlišné stavy pro každý typ události ve sloupci State .

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

Výstup

State
OREGON
UTAH
WYOMING
WASHINGTONSKÝ
KOLORADO
IDAHO
NEVADA