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.
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Sloučí řádky dvou tabulek a vytvoří novou tabulku podle odpovídajících hodnot zadaných sloupců z každé tabulky.
dotazovací jazyk Kusto (KQL) nabízí mnoho druhů spojení, které každý ovlivňuje schéma a řádky ve výsledné tabulce různými způsoby. Pokud například použijete inner spojení, tabulka má stejné sloupce jako levá tabulka a sloupce z pravé tabulky. Nejlepšího výkonu dosáhnete, pokud je jedna tabulka vždy menší než druhá, použijte ji jako levou stranu operátoru join .
Následující obrázek poskytuje vizuální znázornění operace prováděné jednotlivými spojeními. Barva stínování představuje vrácené sloupce a vrácené oblasti představují vrácené řádky.
Syntaxe
LeftTable join | [ kind = JoinFlavor ] [ Hints ] (RightTable) on Conditions
Přečtěte si další informace o konvencích syntaxe.
Parametry
| Název | Type | Požadováno | Popis |
|---|---|---|---|
| Levá tabulka | string |
✔️ | Levá tabulka nebo tabulkový výraz, někdy označovaný jako vnější tabulka, jejíž řádky se mají sloučit. Označeno jako $left. |
| JoinFlavor | string |
Typ spojení, který se má provést: innerunique, inner, rightouterleftouter, fullouter, leftanti, rightanti, , leftsemi, . rightsemi Výchozí hodnota je innerunique. Další informace o příchutí spojení naleznete v tématu Návraty. |
|
| Rady | string |
Nápovědy k nulovému nebo více mezerami oddělenému spojení ve formě hodnoty názvu = , která řídí chování operace shody řádků a plánu provádění. Další informace naleznete v tématu Nápovědy. |
|
| RightTable | string |
✔️ | Pravá tabulka nebo tabulkový výraz, někdy označovaný jako vnitřní tabulka, jejíž řádky se mají sloučit. Označeno jako $right. |
| Podmínky | string |
✔️ | Určuje, jak se řádky z tabulky LeftTable shodují s řádky z tabulky RightTable. Pokud sloupce, které chcete shodovat, mají v obou tabulkách stejný název, použijte syntaxi ON ColumnName. Jinak použijte syntaxi ON $left.LeftColumn $right.==RightColumn RightColumn. Pokud chcete zadat více podmínek, můžete použít klíčové slovo "a" nebo je oddělit čárkami. Pokud použijete čárky, podmínky se vyhodnocují pomocí logického operátoru "a". |
Tip
Nejlepšího výkonu dosáhnete, pokud je jedna tabulka vždy menší než druhá, použijte ji jako levou stranu spojení.
Tipy
| Klíč nápovědy | Hodnoty | Popis |
|---|---|---|
hint.remote |
auto, left, , localright |
Viz připojení mezi clustery |
hint.strategy=broadcast |
Určuje způsob sdílení zatížení dotazu na uzly clusteru. | Viz připojení k všesměru |
hint.shufflekey=<key> |
Dotaz shufflekey sdílí zatížení dotazu na uzly clusteru pomocí klíče pro dělení dat. |
Zobrazit dotaz náhodného prohazování |
hint.strategy=shuffle |
shuffle Dotaz strategie sdílí zatížení dotazů na uzly clusteru, kde každý uzel zpracovává jeden oddíl dat. |
Zobrazit dotaz náhodného prohazování |
| Název | Hodnoty | Popis |
|---|---|---|
hint.remote |
auto, left, , localright |
|
hint.strategy=broadcast |
Určuje způsob sdílení zatížení dotazu na uzly clusteru. | Viz připojení k všesměru |
hint.shufflekey=<key> |
Dotaz shufflekey sdílí zatížení dotazu na uzly clusteru pomocí klíče pro dělení dat. |
Zobrazit dotaz náhodného prohazování |
hint.strategy=shuffle |
shuffle Dotaz strategie sdílí zatížení dotazů na uzly clusteru, kde každý uzel zpracovává jeden oddíl dat. |
Zobrazit dotaz náhodného prohazování |
Poznámka:
Rady spojení nemění sémantiku join , ale můžou ovlivnit výkon.
Návraty
Návratové schéma a řádky závisí na příchuti spojení. Příchuť spojení je určena klíčovým slovem typu . Následující tabulka uvádí podporované varianty spojení. Pokud chcete zobrazit příklady pro konkrétní příchuť spojení, vyberte odkaz ve sloupci Připojit příchuť .
| Příchuť spojení | Návraty | Ilustrace |
|---|---|---|
| innerunique (výchozí) | Vnitřní spojení s odstraněním duplicitních dat na levé straně Schéma: Všechny sloupce z obou tabulek, včetně odpovídajících klíčů Řádky: Všechny řádky odstraněné duplicitními daty z levé tabulky, které odpovídají řádkům z pravé tabulky |
|
| vnitřní | Standardní vnitřní spojení Schéma: Všechny sloupce z obou tabulek, včetně odpovídajících klíčů Řádky: Pouze odpovídající řádky z obou tabulek |
|
| leftouter | Levé vnější spojení Schéma: Všechny sloupce z obou tabulek, včetně odpovídajících klíčů Řádky: Všechny záznamy z levé tabulky a pouze odpovídající řádky z pravé tabulky |
|
| rightouter | Pravé vnější spojení Schéma: Všechny sloupce z obou tabulek, včetně odpovídajících klíčů Řádky: Všechny záznamy z pravé tabulky a pouze odpovídající řádky z levé tabulky |
|
| fullouter | Úplné vnější spojení Schéma: Všechny sloupce z obou tabulek, včetně odpovídajících klíčů Řádky: Všechny záznamy z obou tabulek s chybějícími buňkami naplněnými hodnotou null |
|
| leftsemi | Levé střední spojení Schéma: Všechny sloupce z levé tabulky Řádky: Všechny záznamy z levé tabulky, které odpovídají záznamům z pravé tabulky |
|
leftanti, , antileftantisemi |
Levá anti join a polo varianta Schéma: Všechny sloupce z levé tabulky Řádky: Všechny záznamy z levé tabulky, které neodpovídají záznamům z pravé tabulky |
|
| rightsemi | Pravé střední spojení Schéma: Všechny sloupce z pravé tabulky Řádky: Všechny záznamy z pravé tabulky, které odpovídají záznamům z levé tabulky |
|
rightanti, rightantisemi |
Pravá anti join a polo varianta Schéma: Všechny sloupce z pravé tabulky Řádky: Všechny záznamy z pravé tabulky, které neodpovídají záznamům z levé tabulky |
|
Křížové spojení
KQL neposkytuje příchuť křížového spojení. Efekt křížového spojení ale můžete dosáhnout pomocí přístupu pomocí zástupného klíče.
V následujícím příkladu se do obou tabulek přidá zástupný klíč a pak se použije pro vnitřní operaci spojení, čímž se efektivně dosáhne chování podobné křížovému spojení:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder