Kurz: Spojení dat z více tabulek
Spojení dat z více tabulek umožňuje komplexnější analýzu díky kombinování informací z různých zdrojů a vytváření nových relací mezi datovými body. V dotazovací jazyk Kusto (KQL) se ke kombinování dat mezi tabulkami používají operátory spojení a vyhledávání.
V tomto kurzu se naučíte:
Příklady v tomto kurzu používají veřejně dostupný cluster nápovědy. Pokud chcete zkoumat s vlastními daty, vytvořte si vlastní bezplatný cluster.
Požadavky
- Účet Microsoft nebo Microsoft Entra identitu uživatele pro přihlášení ke clusteru nápovědy
Použití operátoru join
V databázi Samples jsou dvě tabulky související s událostmi storm. Jeden se nazývá StormEvents
a druhý se nazývá 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 jednotlivé tabulky obsahují.
StormEvents
| take 5
Následující tabulka ukazuje pouze 6 z 22 vrácených sloupců.
StartTime | EndTime | Id epizody | EventId | Stav | 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 | Bouřkový vítr | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GRUZIE | Bouřkový vítr | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLANTICKÝ JIH | Kapka vody | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Silný déšť | ... |
PopulationData
| take 5
Výstup
Stav | Populace |
---|---|
ALABAMA | 4918690 |
ALJAŠKA | 727951 |
ARIZONA | 7399410 |
ARKANSAS | 3025880 |
KALIFORNIE | 39562900 |
Obě tabulky obsahují State
sloupec. Tabulka StormEvents
obsahuje mnohem více sloupců a PopulationData
má pouze jeden další sloupec, který obsahuje populaci daného státu.
Spojení tabulek
PopulationData
Spojte tabulku s StormEvents
ve sloupci Common State
a zjistěte celkové škody na 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 provést pomocí operátoru join
. Podívejte se na seznam příchutí spojení.
Použití operátoru vyhledávání
Operátor vyhledávání optimalizuje výkon dotazů, kdy je tabulka faktů rozšířená 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ý join
operátor používá.
V clusteru nápovědy je další databáze s názvem ContosoSales
, která obsahuje data o prodeji. Následující dotaz použije lookup
ke sloučení SalesFact
tabulek a Products
z této databáze celkový prodej podle kategorie produktů.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
Výstup
Productcategoryname | TotalSales |
---|---|
Games and Toys | 966782 |
TV and Video | 715024 |
Cameras and camcorders | 323003 |
Počítače | 313487 |
Home Appliances | 237508 |
Zvuk | 192671 |
Cell phones | 50342 |
Music, Movies and Audio Books | 33376 |
Poznámka
Operátor lookup
podporuje pouze dvě příchutě spojení: leftouter
a inner
.
Spojení tabulek vygenerovaných dotazem
Spojení je také možné provádět na základě výsledků dotazu ze stejné tabulky.
Řekněme, že chcete vytvořit seznam stavů, ve kterých došlo k bleskům i lavinovým událostem. Pomocí operátoru join můžete sloučit řádky dvou tabulek – jednu obsahující data o událostech blesku a druhou 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
Stav |
---|
OREGON |
UTAH |
WYOMING |
WASHINGTON |
COLORADO |
IDAHO |
NEVADA |
Související obsah
- Další informace o různých typech operátoru join-operator
- Zjistěte, jak provádět dotazy mezi databázemi a mezi clustery.
- Postupujte podle kurzu vytváření geoprostorových vizualizací .
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro