Kurz: Spojení dat z více tabulek
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Spojení dat z více tabulek umožňuje komplexnější analýzu kombinováním informací z různých zdrojů a vytvořením nových relací mezi datovými body. V dotazovací jazyk Kusto (KQL) se operátory spojení a vyhledávání používají ke kombinování dat napříč tabulkami.
V tomto kurzu se naučíte:
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ýzy počasí.
Požadavky
Pokud chcete spustit následující dotazy, potřebujete prostředí dotazu s přístupem k ukázkovým datům. Můžete použít jednu z těchto možností:
- Účet Microsoft nebo identita uživatele Microsoft Entra
- Pracovní prostor Fabric s kapacitou s povolenou kapacitou Microsoft Fabric
Použití operátoru join
V databázi ukázek jsou dvě tabulky související s událostmi stormu. Jeden je volána StormEvents
a druhý je volána PopulationData
. V této části spojíte tabulky a provedete analýzu dat, která by nebyla možná jenom s jednou 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 6 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 obsahují State
sloupec. Tabulka StormEvents
obsahuje mnoho dalších sloupců a PopulationData
má pouze jeden druhý sloupec, který obsahuje populaci daného státu.
Spojení tabulek
PopulationData
Spojte tabulku se StormEvents
společným State
sloupcem a najděte celkové škody v majetku způsobené bouřemi na obyvatele podle státu.
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.
Tip
Existuje mnoho typů spojení, které můžete s operátorem join
provést. Podívejte se na seznam příchutí spojení.
Použití vyhledávacího operátoru
Operátor vyhledávání optimalizuje výkon dotazů, ve kterých je tabulka faktů obohacena o data z tabulky dimenzí. Rozšiřuje tabulku faktů o hodnoty, které jsou vyhledány v tabulce dimenzí. Pro zajištění nejlepšího výkonu systém ve výchozím nastavení předpokládá, že levá tabulka je větší tabulka faktů a pravá tabulka je menší tabulka dimenzí. To je přesně opak předpokladu, který operátor používá join
.
V clusteru nápovědy existuje jiná databáze ContosoSales
, která obsahuje prodejní data. Následující dotaz používá lookup
ke sloučení SalesFact
tabulek a Products
tabulek z této databáze k získání 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 dvě příchutě spojení: leftouter
a inner
.
Spojení tabulek generovaných dotazem
Spojení je také možné provést na základě výsledků dotazu ze stejné tabulky.
Řekněme, že chcete vytvořit seznam stavů, ve kterých došlo k blesku i lavinovým událostem. Pomocí operátoru spojení sloučíte řádky dvou tabulek – jeden obsahující data o událostech blesku a druhý obsahující data o událostech laviny – na State
základě sloupce.
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 |
Související obsah
- Informace o různých typech operátoru join-operator
- Zjistěte, jak provádět dotazy napříč databázemi a mezi clustery.
- Postupujte podle kurzu vytváření geoprostorových vizualizací.