Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
Rozšíří sloupce tabulky faktů o hodnoty v tabulce dimenzí.
Výsledkem následujícího dotazu je například tabulka, která rozšiřuje FactTable ($left) o data z DimensionTable ($right) provedením vyhledávání. Vyhledávání odpovídá každému páru (CommonColumn, Col1) z FactTable s každou dvojicí (CommonColumn, Col2) v DimensionTable. Rozdíly mezi tabulkami faktů a dimenzí najdete v tabulkách faktů a dimenzí.
FactTable | lookup kind=leftouter (DimensionTable) on CommonColumn, $left.Col1 == $right.Col2
Operátor lookup provede operaci podobnou operátoru spojení s následujícími rozdíly:
- Výsledek neopakuje sloupce z
$righttabulky, které jsou základem operace spojení. - Podporují
leftouterse pouze dva druhy vyhledávání ainnervýchozíleftouternastavení. - Z hlediska výkonu systém ve výchozím nastavení předpokládá, že
$lefttabulka je větší (fakta) a$righttabulka je menší (dimenze). Je to přesně opak předpokladujoin, který operátor používá. - Operátor
lookupautomaticky vysílá$righttabulku do$lefttabulky (v podstatě se chová, jako byhint.broadcastbyl zadán). Tím se omezí velikost$righttabulky.
Poznámka:
Pokud je pravá strana vyhledávání větší než několik desítek MB, dotaz selže.
Spuštěním následujícího dotazu můžete odhadnout velikost pravé strany v bajtech:
rightSide
| summarize sum(estimate_data_size(*))
Syntaxe
lefttable|lookup [kind= (leftouter|inner)] (atributy)onrighttable
Přečtěte si další informace o konvencích syntaxe.
Parametry
| Název | Typ | Požadováno | Popis |
|---|---|---|---|
| Levá tabulka | string |
✔️ | Tabulka nebo tabulkový výraz, který je základem pro vyhledávání. Označeno jako $left. |
| RightTable | string |
✔️ | Tabulka nebo tabulkový výraz, který slouží k "naplnění" nových sloupců v tabulce faktů. Označeno jako $right. |
| Atributy | string |
✔️ | Seznam pravidel oddělených čárkami, která popisují, jak se řádky z tabulky LeftTable shodují s řádky z tabulky RightTable. Pomocí logického operátoru and se vyhodnocuje více pravidel. Viz Pravidla. |
kind |
string |
Určuje, jak zacházet s řádky v tabulce LeftTable , které nemají v tabulce RightTable žádnou shodu. Ve výchozím nastavení se používají leftouter, což znamená, že všechny tyto řádky se zobrazí ve výstupu s hodnotami null použitými pro chybějící hodnoty RightTable sloupce přidané operátorem. Pokud inner se tyto řádky použijí, ve výstupu se vynechá. Operátor nepodporuje lookup jiné druhy spojení. |
Pravidla
| Druh pravidla | Syntaxe | Predikát |
|---|---|---|
| Rovnost podle názvu | ColumnName |
where
LeftTable. Columnname==RightTable. Columnname |
| Rovnost podle hodnoty |
$left.
Levý sloupec==$right.RightColumn |
where
$left.
Levý sloupec==$right.*RightColumn |
Poznámka:
V případě rovnosti podle hodnoty musí být názvy
Návraty
Tabulka s:
- Sloupec pro každý sloupec v každé ze dvou tabulek, včetně odpovídajících klíčů. Pokud dojde ke konfliktům názvů, sloupce pravé strany se automaticky přejmenují.
- Řádek pro každou shodu mezi vstupními tabulkami. Shoda je řádek vybraný z jedné tabulky, který má stejnou hodnotu pro všechna
onpole jako řádek v druhé tabulce. - Atributy (vyhledávací klíče) se ve výstupní tabulce zobrazují jenom jednou.
- Pokud
kindnení zadaný nebokind=leftouter, pak kromě vnitřních shod existuje řádek pro každý řádek vlevo (nebo vpravo), i když nemá žádnou shodu. V takovém případě chybějící výstupní buňky obsahují hodnoty null. - Pokud
kind=innerje ve výstupu řádek pro každou kombinaci odpovídajících řádků zleva a doprava.
Příklad
Následující příklad ukazuje, jak provést levé vnější spojení mezi FactTable a DimTable, na základě odpovídajících hodnot ve sloupcích Personal a Family.
let FactTable=datatable(Row:string,Personal:string,Family:string) [
"1", "Rowan", "Murphy",
"2", "Ellis", "Turner",
"3", "Ellis", "Turner",
"4", "Maya", "Robinson",
"5", "Quinn", "Campbell"
];
let DimTable=datatable(Personal:string,Family:string,Alias:string) [
"Rowan", "Murphy", "rowanm",
"Ellis", "Turner", "ellist",
"Maya", "Robinson", "mayar",
"Quinn", "Campbell", "quinnc"
];
FactTable
| lookup kind=leftouter DimTable on Personal, Family
výstupní
| Řádek | Osobní | Rodina | Alias |
|---|---|---|---|
| 0 | Jeřabina | Murphy | rowanm |
| 2 | Ellis | Soustružník | ellist |
| 3 | Ellis | Soustružník | ellist |
| 4 | Maya | Robinson | mayar |
| 5 | Quinn | Campbell | quinnc |
Související obsah
- připojení k vysílání
- levé spojení
- vnitřní spojení
- operátor spojení