join operátor
Két tábla sorainak egyesítése új tábla létrehozásához az egyes táblák megadott oszlopainak megfelelő értékekkel.
Kusto lekérdezésnyelv (KQL) számos olyan illesztéstípust kínál, amelyek mindegyike különböző módon befolyásolja az eredményül kapott tábla sémáját és sorait. Ha például illesztéseket inner
használ, a táblázat ugyanazokat az oszlopokat tartalmazza, mint a bal oldali táblát, valamint a jobb oldali táblázat oszlopait. A legjobb teljesítmény érdekében, ha az egyik tábla mindig kisebb, mint a másik, használja az operátor bal oldalán join
.
Az alábbi kép vizuálisan ábrázolja az egyes illesztés által végrehajtott műveletet.
Syntax
Bal oldali tábla|
join
[ kind
=
JoinFlavor ] [ Tippek ] (
RightTable)
on
feltételek
További információ a szintaxis konvenciókról.
Paraméterek
Név | Típus | Kötelező | Leírás |
---|---|---|---|
Bal oldali tábla | string |
✔️ | A bal oldali táblázat vagy táblázatos kifejezés, más néven külső táblázat, amelynek sorait egyesíteni kell. Jelölése: $left . |
JoinFlavor | string |
A végrehajtandó illesztés típusa: innerunique , inner , leftouter , rightouter , fullouter , leftanti , rightanti , leftsemi . rightsemi A mező alapértelmezett értéke: innerunique . Az illesztés ízeiről további információt a Visszatérések című témakörben talál. |
|
Módosítók | string |
Nulla vagy több szóközzel elválasztott illesztési tipp névérték= formájában, amelyek a soregyeztetési művelet és a végrehajtási terv viselkedését szabályozzák. További információ: Tippek. |
|
RightTable | string |
✔️ | A jobb oldali táblázat vagy táblázatos kifejezés, más néven belső tábla, amelynek sorait egyesíteni kell. Jelölése: $right . |
Feltételek | string |
✔️ | Meghatározza, hogy a LeftTable sorai hogyan egyeznek a RightTable-ból származó sorokkal. Ha az egyeztetni kívánt oszlopok neve mindkét táblában megegyezik, használja a ColumnName szintaxistON . Ellenkező esetben használja a LeftColumnRightColumn== $right. szintaxistON $left. . Több feltétel megadásához használhatja az "és" kulcsszót, vagy vesszővel elválaszthatja őket. Ha vesszőt használ, a feltételek kiértékelése az "és" logikai operátor használatával történik. |
Tipp
A legjobb teljesítmény érdekében, ha az egyik tábla mindig kisebb, mint a másik, használja az illesztés bal oldalán.
Módosítók
Tippkulcs | Értékek | Leírás |
---|---|---|
hint.remote |
auto , left , local , right |
Lásd: Fürtök közötti csatlakozás |
hint.strategy=broadcast |
Megadja a fürtcsomópontok lekérdezési terhelésének megosztásának módját. | Lásd : közvetítési csatlakozás |
hint.shufflekey=<key> |
A shufflekey lekérdezés megosztja a fürtcsomópontok lekérdezési terhelését az adatok particionálására használt kulccsal. |
Lásd: elosztási lekérdezés |
hint.strategy=shuffle |
A shuffle stratégiai lekérdezés megosztja a fürtcsomópontok lekérdezési terhelését, ahol minden csomópont feldolgozza az adatok egy partícióját. |
Lásd: elosztási lekérdezés |
Name | Értékek | Leírás |
---|---|---|
hint.remote |
auto , left , local , right |
|
hint.strategy=broadcast |
Megadja a fürtcsomópontok lekérdezési terhelésének megosztásának módját. | Lásd : közvetítési csatlakozás |
hint.shufflekey=<key> |
A shufflekey lekérdezés megosztja a fürtcsomópontok lekérdezési terhelését az adatok particionálására használt kulccsal. |
Lásd: elosztási lekérdezés |
hint.strategy=shuffle |
A shuffle stratégiai lekérdezés megosztja a fürtcsomópontok lekérdezési terhelését, ahol minden csomópont feldolgozza az adatok egy partícióját. |
Lásd: elosztási lekérdezés |
Megjegyzés
Az illesztési tippek nem változtatják meg a szemantikai értékét join
, de hatással lehetnek a teljesítményre.
Válaszok
A visszatérési séma és a sorok az illesztés ízétől függnek. Az illesztés íze a kind kulcsszóval van megadva. Az alábbi táblázat a támogatott illesztés-ízeket mutatja be. Ha egy adott illesztés ízére szeretne példákat látni, válassza a hivatkozást az Illesztés íze oszlopban.
Íz csatlakoztatása | Válaszok | Illusztráció |
---|---|---|
innerunique (alapértelmezett) | Belső illesztés bal oldali deduplikációval Séma: Mindkét tábla összes oszlopa, beleértve a megfelelő kulcsokat is Sorok: A bal oldali táblázat összes deduplikált sora, amely megfelel a jobb oldali táblázat sorainak |
|
Belső | Standard belső illesztés Séma: Mindkét tábla összes oszlopa, beleértve a megfelelő kulcsokat is Sorok: Csak egyező sorok mindkét táblából |
|
leftouter | Bal oldali külső illesztés Séma: Mindkét tábla összes oszlopa, beleértve a megfelelő kulcsokat is Sorok: A bal oldali tábla összes rekordja, és csak a jobb oldali táblázat egyező sorai |
|
rightouter | Jobb oldali külső illesztés Séma: Mindkét tábla összes oszlopa, beleértve a megfelelő kulcsokat is Sorok: A jobb oldali táblázat összes rekordja, és csak a bal oldali tábla egyező sorai |
|
fullouter | Teljes külső illesztés Séma: Mindkét tábla összes oszlopa, beleértve a megfelelő kulcsokat is Sorok: Mindkét tábla összes rekordja null értékkel kitöltött nem egyező cellákkal |
|
leftsemi | Bal oldali félillesztés Séma: A bal oldali táblázat összes oszlopa Sorok: A bal oldali tábla összes olyan rekordja, amely megfelel a jobb oldali tábla rekordjainak |
|
leftanti , anti , leftantisemi |
Bal oldali illesztés és félvariáns Séma: A bal oldali táblázat összes oszlopa Sorok: A bal oldali tábla összes olyan rekordja, amely nem egyezik a jobb oldali táblázat rekordjaival |
|
rightsemi | Jobb oldali félillesztés Séma: A jobb oldali táblázat összes oszlopa Sorok: A jobb oldali tábla összes olyan rekordja, amely megfelel a bal oldali tábla rekordjainak |
|
rightanti , rightantisemi |
Jobb oldali illesztésgátló és félvariáns Séma: A jobb oldali táblázat összes oszlopa Sorok: A jobb oldali tábla összes olyan rekordja, amely nem egyezik a bal oldali tábla rekordjaival |
Keresztillesztés
A KQL nem biztosít keresztillesztésű ízt. Azonban helyőrzőkulcs-megközelítéssel keresztillesztés effektust érhet el.
A következő példában egy helyőrző kulcsot adunk hozzá mindkét táblához, majd a belső illesztési művelethez használjuk, hatékonyan megvalósítva a keresztillesztéshez hasonló viselkedést:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder
Kapcsolódó tartalom
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: