Operátor lookup
Rozšíří sloupce tabulky faktů o hodnoty vyhledáné v tabulce dimenzí.
FactTable | lookup kind=leftouter (DimensionTable) on CommonColumn, $left.Col1 == $right.Col2
Výsledkem je tabulka, která rozšiřuje FactTable
($left
) o data z DimensionTable
(na které odkazuje $right
) tím, že provede vyhledávání každé dvojice (CommonColumn
,Col
) z předchozí tabulky s každou dvojicí (CommonColumn1
,Col2
) v druhé tabulce.
Rozdíly mezi tabulkami faktů a dimenzí najdete v tabulkách faktů a dimenzí.
Operátor lookup
provádí operaci podobnou operátoru spojení s následujícími rozdíly:
- Výsledek neopakuje sloupce z
$right
tabulky, které jsou základem operace spojení. - Podporují se pouze dva druhy vyhledávání,
leftouter
ainner
, přičemžleftouter
výchozí je. - Z hlediska výkonu systém ve výchozím nastavení předpokládá, že
$left
tabulka je větší tabulka (fakta) a$right
tabulka je menší (dimenze). To je přesný opak předpokladu používaného operátoremjoin
. - Operátor
lookup
automaticky vysílá$right
tabulku do$left
tabulky (v podstatě se chová, jako byhint.broadcast
byl zadán). Tím se omezuje velikost$right
tabulky.
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(*))
Syntax
Levá tabulka|
lookup
[kind
=
(leftouter
|inner
)] (
PodmínkyRightTable)
on
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
Levá tabulka | string |
✔️ | Tabulka nebo tabulkový výraz, který je základem vyhledávání. Označuje se jako $left . |
RightTable | string |
✔️ | Výraz tabulky nebo tabulkového výrazu, který se používá k "naplnění" nových sloupců v tabulce faktů. Označuje se jako $right . |
Atributy | string |
✔️ | Seznam jednoho nebo více pravidel oddělených čárkami, která popisují, jak jsou řádky z tabulky LeftTable spárovány s řádky z tabulky RightTable. Více pravidel se vyhodnocuje pomocí logického operátoru and . Viz Pravidla. |
kind |
string |
Určuje způsob zpracování řádků v tabulce LeftTable , které nemají shodu v pravé tabulce. Ve výchozím nastavení leftouter se používá , což znamená, že všechny tyto řádky se zobrazí ve výstupu s hodnotami null použitými pro chybějící hodnoty sloupců RightTable přidaných operátorem. Pokud inner se použije, tyto řádky se z výstupu vynechají. Operátor nepodporuje lookup jiné typy spojení. |
Pravidla
Druh pravidla | Syntax | Predikátu |
---|---|---|
Rovnost podle názvu | Columnname | where Levá tabulka. Columnname== RightTable. Columnname |
Rovnost podle hodnoty | $left. Levý sloupec== $right. Pravý sloupec |
where $left. Levý sloupec== $right. *Pravý sloupec |
Poznámka
V případě rovnosti podle hodnoty musí být názvy sloupců kvalifikovány příslušnou tabulkou vlastníka označenou $left
notací a $right
.
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 konfliktu názvů, sloupce na pravé straně 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
on
pole jako řádek v druhé tabulce. - Atributy (vyhledávací klíče) se ve výstupní tabulce zobrazí jenom jednou.
- Pokud
kind
není zadána hodnota nebokind=leftouter
, pak kromě vnitřních shod existuje řádek pro každý řádek na levé straně (nebo vpravo), a to i v případě, že není shodný. V takovém případě chybějící výstupní buňky obsahují hodnoty null. - Pokud
kind=inner
je ve výstupu řádek pro každou kombinaci odpovídajících řádků zleva a zprava.
Příklady
let FactTable=datatable(Row:string,Personal:string,Family:string) [
"1", "Bill", "Gates",
"2", "Bill", "Clinton",
"3", "Bill", "Clinton",
"4", "Steve", "Ballmer",
"5", "Tim", "Cook"
];
let DimTable=datatable(Personal:string,Family:string,Alias:string) [
"Bill", "Gates", "billg",
"Bill", "Clinton", "billc",
"Steve", "Ballmer", "steveb",
"Tim", "Cook", "timc"
];
FactTable
| lookup kind=leftouter DimTable on Personal, Family
Řádek | Osobní | Rodina | Alias |
---|---|---|---|
1 | Faktura | Gates | faktura |
2 | Faktura | Clinton | billc |
3 | Faktura | Clinton | billc |
4 | Steve | Ballmer | Petr Hoštád |
5 | Tim | Vařit | Housová |
Související obsah
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