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
Vezme dvě nebo více tabulek a vrátí řádky všech z nich.
Syntaxe
[ T| ] union [ UnionParameters ] [kind=inner|outer ] [withsource=ColumnName] [isfuzzy=true|false ] Tables
[ T| ] union [kind=inner|outer ] [withsource=ColumnName] [isfuzzy=true|false ] Tables
Přečtěte si další informace o konvencích syntaxe.
Poznámka:
Operaci operátoru union lze změnit nastavením best_effort vlastnosti požadavku na true, pomocí příkazu set nebo prostřednictvím vlastností požadavku klienta. Pokud je tato vlastnost nastavena na true, union operátor ignoruje přibližné řešení a selhání připojení ke spuštění některého z dílčích výrazů, které jsou "sjednocovány" a zobrazí upozornění ve výsledcích stavu dotazu.
Parametry
| Název | Typ | Požadováno | Popis |
|---|---|---|---|
| T | string |
Vstupní tabulkový výraz. | |
| UnionParameters | string |
Nula nebo více parametrů oddělených mezerami ve formě Hodnoty názvu=, které řídí chování operace shody řádků a plánu provádění. Viz podporované parametry sjednocení. |
|
kind |
string |
Buďto inner nebo outer.
inner způsobí, že výsledek bude mít podmnožinu sloupců, které jsou společné pro všechny vstupní tabulky.
outer způsobí, že výsledek bude obsahovat všechny sloupce, které se vyskytují v některém ze vstupů. Buňky, které nejsou definovány vstupním řádkem, jsou nastaveny na null. Výchozí hodnota je outer.Výsledek outerobsahuje všechny sloupce, které se vyskytují v některém ze vstupů, jeden sloupec pro každý název a typ výskytů. To znamená, že pokud se sloupec zobrazuje ve více tabulkách a má více typů, má odpovídající sloupec pro každý typ ve výsledku sjednocení. Tento název sloupce má příponu "_" následovanou typem sloupce původu. |
|
withsource=
Columnname |
string |
Pokud je zadáno, výstup obsahuje sloupec s názvem ColumnName , jehož hodnota označuje, která zdrojová tabulka přispěla každý řádek. Pokud dotaz efektivně odkazuje na tabulky z více než jedné databáze včetně výchozí databáze, pak hodnota tohoto sloupce má název tabulky kvalifikovaný pro databázi. kvalifikace clusteru a databáze jsou k dispozici v hodnotě, pokud se odkazuje na více než jeden cluster. | |
isfuzzy |
bool |
Pokud je nastavena na true, umožňuje přibližné rozlišení sjednocovací nohy. Sada sjednocovacích zdrojů se snižuje na sadu odkazů na tabulky, které existují, a jsou dostupné v době analýzy dotazu a přípravě na spuštění. Pokud byla nalezena aspoň jedna taková tabulka, jakékoli selhání řešení způsobí ve výsledcích stavu dotazu upozornění, ale nezabrání provádění dotazu. Pokud nebyla žádná řešení úspěšná, dotaz vrátí chybu. Výchozí hodnota je false.isfuzzy=true platí pouze pro union fázi řešení zdrojů. Jakmile se určí sada zdrojových tabulek, nepotlačí se možná další selhání dotazů. |
|
| Tabulky | string |
Jeden nebo více odkazů na tabulku oddělenou čárkami, výraz dotazu uzavřený se závorkou nebo sada tabulek zadaných zástupným znakem. Například E* by vytvořil sjednocení všech tabulek v databázi, jejichž názvy začínají E. |
Podporované parametry sjednocení
| Název | Typ | Požadováno | Popis |
|---|---|---|---|
hint.concurrency |
int |
Napovídá systému, kolik souběžných poddotazů operátoru union se má spustit paralelně. Výchozí hodnota je počet jader procesoru na jednom uzlu clusteru (2 až 16). |
|
hint.spread |
int |
Napovídá systému, kolik uzlů by mělo být použito souběžným union spuštěním poddotazů. Výchozí hodnota je 1. |
| Název | Typ | Požadováno | Popis |
|---|---|---|---|
| T | string |
Vstupní tabulkový výraz. | |
kind |
string |
Buďto inner nebo outer.
inner způsobí, že výsledek bude mít podmnožinu sloupců, které jsou společné pro všechny vstupní tabulky.
outer způsobí, že výsledek bude obsahovat všechny sloupce, které se vyskytují v některém ze vstupů. Buňky, které nejsou definovány vstupním řádkem, jsou nastaveny na null. Výchozí hodnota je outer.Výsledek outerobsahuje všechny sloupce, které se vyskytují v některém ze vstupů, jeden sloupec pro každý název a typ výskytů. To znamená, že pokud se sloupec zobrazuje ve více tabulkách a má více typů, má odpovídající sloupec pro každý typ ve výsledku sjednocení. Tento název sloupce má příponu "_" následovanou typem sloupce původu. |
|
withsource=
Columnname |
string |
Pokud je zadáno, výstup obsahuje sloupec s názvem ColumnName , jehož hodnota označuje, která zdrojová tabulka přispěla každý řádek. Pokud dotaz efektivně odkazuje na tabulky z více než jedné databáze včetně výchozí databáze, pak hodnota tohoto sloupce má název tabulky kvalifikovaný pro databázi. kvalifikace clusteru a databáze jsou k dispozici v hodnotě, pokud se odkazuje na více než jeden cluster. | |
isfuzzy |
bool |
Pokud je nastavena na true, umožňuje přibližné rozlišení sjednocovací nohy. Sada sjednocovacích zdrojů se snižuje na sadu odkazů na tabulky, které existují, a jsou dostupné v době analýzy dotazu a přípravě na spuštění. Pokud byla nalezena aspoň jedna taková tabulka, jakékoli selhání řešení způsobí ve výsledcích stavu dotazu upozornění, ale nezabrání provádění dotazu. Pokud nebyla žádná řešení úspěšná, dotaz vrátí chybu. Pokud se ale některý z pracovních prostorů nebo aplikací nenajde, dotaz selže v dotazech mezi pracovními prostory a aplikacemi. Výchozí hodnota je false.isfuzzy=true platí pouze pro union fázi řešení zdrojů. Jakmile se určí sada zdrojových tabulek, nepotlačí se možná další selhání dotazů. |
|
| Tabulky | string |
Jeden nebo více odkazů na tabulku oddělenou čárkami, výraz dotazu uzavřený se závorkou nebo sada tabulek zadaných zástupným znakem. Například E* by vytvořil sjednocení všech tabulek v databázi, jejichž názvy začínají E.Kdykoli je seznam tabulek známý, nepoužívejte zástupné znamény. Některé pracovní prostory obsahují velmi velký počet tabulek, které by vedlo k neefektivnímu spuštění. Tabulky mohou být také přidány v průběhu času, což vede k neprediktovaným výsledkům. |
Poznámka:
- Obor
unionmůže obsahovat příkazy let, pokud jsou přiřazeny klíčovým slovemview. - Obor
unionnebude obsahovat funkce. Pokud chcete zahrnout funkci, definujte příkaz let s klíčovým slovemview. - Neexistuje žádná záruka pořadí, ve kterém se budou sjednocovat nohy, ale pokud má každá noha
order byoperátor, bude každá noha seřazena.
Návraty
Tabulka s tolika řádky, kolik jsou ve všech vstupních tabulkách.
Příklady
Tabulky s řetězcem v názvu nebo sloupci
union K* | where * has "Kusto"
Řádky ze všech tabulek v databázi, jejichž název začíná K, a ve kterých každý sloupec obsahuje slovo Kusto.
Počet jedinečných položek
union withsource=SourceTable kind=outer Query, Command
| where Timestamp > ago(1d)
| summarize dcount(UserId)
Počet jedinečných uživatelů, kteří vytvořili Query událost nebo Command událost za poslední den. Ve výsledku sloupec SourceTable označí buď Dotaz, nebo Příkaz.
Query
| where Timestamp > ago(1d)
| union withsource=SourceTable kind=outer
(Command | where Timestamp > ago(1d))
| summarize dcount(UserId)
Tato efektivnější verze vytvoří stejný výsledek. Před vytvořením sjednocení vyfiltruje každou tabulku.
Používání akce isfuzzy=true
// Using union isfuzzy=true to access non-existing view:
let View_1 = view () { print x=1 };
let View_2 = view () { print x=1 };
let OtherView_1 = view () { print x=1 };
union isfuzzy=true
(View_1 | where x > 0),
(View_2 | where x > 0),
(View_3 | where x > 0)
| count
Výstup
| Počet |
|---|
| 2 |
Pozoruje se stav dotazu – vrátilo se následující upozornění: Failed to resolve entity 'View_3'
// Using union isfuzzy=true and wildcard access:
let View_1 = view () { print x=1 };
let View_2 = view () { print x=1 };
let OtherView_1 = view () { print x=1 };
union isfuzzy=true View*, SomeView*, OtherView*
| count
Výstup
| Počet |
|---|
| 3 |
Pozoruje se stav dotazu – vrátilo se následující upozornění: Failed to resolve entity 'SomeView*'
Neshoda typů zdrojových sloupců
let View_1 = view () { print x=1 };
let View_2 = view () { print x=toint(2) };
union withsource=TableName View_1, View_2
Výstup
| TableName | x_long | x_int |
|---|---|---|
| View_1 | 0 | |
| View_2 | 2 |
let View_1 = view () { print x=1 };
let View_2 = view () { print x=toint(2) };
let View_3 = view () { print x_long=3 };
union withsource=TableName View_1, View_2, View_3
Výstup
| TableName | x_long1 | x_int | x_long |
|---|---|---|---|
| View_1 | 0 | ||
| View_2 | 2 | ||
| View_3 | 3 |
Sloupec x z View_1 přijaté přípony _longa jako sloupec s názvem x_long již ve výsledném schématu existuje, názvy sloupců byly odstraněny a vytvoří nový sloupec- x_long1