join-operatorn
Sammanfoga raderna i två tabeller för att skapa en ny tabell genom att matcha värdena för de angivna kolumnerna från varje tabell.
Kusto-frågespråk (KQL) erbjuder många typer av kopplingar som var och en påverkar schemat och raderna i den resulterande tabellen på olika sätt. Om du till exempel använder en inner
koppling har tabellen samma kolumner som den vänstra tabellen, plus kolumnerna från den högra tabellen. För bästa prestanda, om en tabell alltid är mindre än den andra, använder du den som vänster sida av operatorn join
.
Följande bild ger en visuell representation av den åtgärd som utförs av varje koppling.
Syntax
LeftTable|
join
[ kind
=
JoinFlavor ] [ Tips ] (
RightTable)
on
Villkor
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
LeftTable | string |
✔️ | Den vänstra tabellen eller tabelluttrycket, som ibland kallas den yttre tabellen, vars rader ska sammanfogas. Betecknas som $left . |
JoinFlavor | string |
Typen av koppling som ska utföras: innerunique , inner , leftouter , rightouter , fullouter , leftanti , rightanti , , leftsemi rightsemi . Standardvärdet är innerunique . Mer information om kopplingssmak finns i Returnerar. |
|
Tips | string |
Noll eller flera blankstegsavgränsade kopplingstips i form av Namnvärde= som styr beteendet för radmatchningsåtgärden och körningsplanen. Mer information finns i Tips. |
|
RightTable | string |
✔️ | Den högra tabellen eller tabelluttrycket, som ibland kallas den inre tabellen, vars rader ska sammanfogas. Betecknas som $right . |
Villkor | string |
✔️ | Avgör hur rader från LeftTable matchas med rader från RightTable. Om de kolumner som du vill matcha har samma namn i båda tabellerna använder du syntaxen ON ColumnName. Annars använder du syntaxen ON $left. LeftColumn== $right. RightColumn. Om du vill ange flera villkor kan du antingen använda nyckelordet "och" eller separera dem med kommatecken. Om du använder kommatecken utvärderas villkoren med hjälp av den logiska operatorn "och". |
Tips
För bästa prestanda, om en tabell alltid är mindre än den andra, använder du den som vänster sida av kopplingen.
Tips
Tipsnyckel | Värden | Beskrivning |
---|---|---|
hint.remote |
auto , left , local , right |
Se Koppla mellan kluster |
hint.strategy=broadcast |
Anger hur du delar frågebelastningen på klusternoder. | Se sändningsanslutning |
hint.shufflekey=<key> |
Frågan shufflekey delar frågebelastningen på klusternoder med hjälp av en nyckel för att partitioneringsdata. |
Se shuffle-fråga |
hint.strategy=shuffle |
Strategifrågan shuffle delar frågebelastningen på klusternoder, där varje nod bearbetar en partition av data. |
Se shuffle-fråga |
Name | Värden | Beskrivning |
---|---|---|
hint.remote |
auto , left , local , right |
|
hint.strategy=broadcast |
Anger hur du delar frågebelastningen på klusternoder. | Se sändningsanslutning |
hint.shufflekey=<key> |
Frågan shufflekey delar frågebelastningen på klusternoder med hjälp av en nyckel för att partitioneringsdata. |
Se shuffle-fråga |
hint.strategy=shuffle |
Strategifrågan shuffle delar frågebelastningen på klusternoder, där varje nod bearbetar en partition av data. |
Se shuffle-fråga |
Anteckning
Kopplingstipsen ändrar inte semantiken join
för men kan påverka prestanda.
Returer
Returschemat och raderna beror på kopplingssmaken. Kopplingssmaken anges med typnyckelordet . I följande tabell visas de anslutningssmak som stöds. Om du vill se exempel på en specifik kopplingssmak väljer du länken i kolumnen Join flavor (Anslut smak).
Join flavor | Returer | Illustration |
---|---|---|
innerunique (standard) | Inre koppling med deduplicering på vänster sida Schema: Alla kolumner från båda tabellerna, inklusive matchande nycklar Rader: Alla deduplicerade rader från den vänstra tabellen som matchar rader från den högra tabellen |
|
Inre | Inre standardkoppling Schema: Alla kolumner från båda tabellerna, inklusive matchande nycklar Rader: Endast matchande rader från båda tabellerna |
|
leftouter | Vänster yttre koppling Schema: Alla kolumner från båda tabellerna, inklusive matchande nycklar Rader: Alla poster från den vänstra tabellen och endast matchande rader från den högra tabellen |
|
rightouter | Höger yttre koppling Schema: Alla kolumner från båda tabellerna, inklusive matchande nycklar Rader: Alla poster från den högra tabellen och endast matchande rader från den vänstra tabellen |
|
fullouter | Fullständig yttre koppling Schema: Alla kolumner från båda tabellerna, inklusive matchande nycklar Rader: Alla poster från båda tabellerna med omatchade celler ifyllda med null |
|
leftsemi | Vänster halvkoppling Schema: Alla kolumner från den vänstra tabellen Rader: Alla poster från den vänstra tabellen som matchar poster från den högra tabellen |
|
leftanti , anti , leftantisemi |
Vänster antikoppling och semi-variant Schema: Alla kolumner från den vänstra tabellen Rader: Alla poster från den vänstra tabellen som inte matchar poster från den högra tabellen |
|
rightsemi | Höger semikoppling Schema: Alla kolumner från den högra tabellen Rader: Alla poster från den högra tabellen som matchar poster från den vänstra tabellen |
|
rightanti , rightantisemi |
Höger antikoppling och semi variant Schema: Alla kolumner från den högra tabellen Rader: Alla poster från den högra tabellen som inte matchar poster från den vänstra tabellen |
Korskoppling
KQL ger ingen korskopplingssmak. Du kan dock uppnå en korskopplingseffekt med hjälp av en metod för platshållarnyckel.
I följande exempel läggs en platshållarnyckel till i båda tabellerna och används sedan för den inre kopplingsåtgärden, vilket effektivt uppnår ett korskopplingsliknande beteende:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder
Relaterat innehåll
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för