Fürtközi illesztés
A fürtök közötti illesztés magában foglalja a különböző fürtökben található adathalmazokból származó adatok összekapcsolása.
Fürtök közötti illesztés esetén a lekérdezés három lehetséges helyen végrehajtható, amelyek mindegyike egy adott referenciával rendelkezik a dokumentumban:
- Helyi fürt: Az a fürt, amelyre a kérést küldik, más néven az adatbázist futtató fürt a környezetben.
- Bal oldali fürt: Az adatokat üzemeltető fürt az illesztési művelet bal oldalán.
- Jobb oldali fürt: Az adatokat üzemeltető fürt az illesztési művelet jobb oldalán.
A lekérdezést futtató fürt lekéri az adatokat a másik fürtből.
Megjegyzés
Ha az illesztési művelet bal és jobb oldalán található adatok ugyanabban a fürtben vannak tárolva, akkor sem minősül fürtközi illesztésnek, még akkor sem, ha az adatok a helyi fürtön kívül vannak tárolva.
Syntax
[ cluster(
ClusterName).database(
DatabaseName).
]LeftTable|
...
|
join
[ hint.remote=
Stratégia ] (
[ cluster(
ClusterName).database(
DatabaseName).
]RightTable|
...
)
a feltételekről
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, amelynek sorait egyesíteni szeretné. A jelölése: $left . |
Stratégia | string |
Meghatározza azt a fürtöt, amelyen végre kívánja hajtani az illesztés végrehajtását. Támogatott értékek: left , right , local és auto . További információ: Stratégiák. |
|
ClusterName | string |
Ha az illesztés adatai a helyi fürtön kívül találhatók, a fürt() függvénnyel adja meg a fürtöt. | |
DatabaseName | string |
Ha az illesztés adatai a helyi adatbázis-környezeten kívül találhatók, az adatbázis( ) függvénnyel adja meg az adatbázist. | |
RightTable | string |
✔️ | A megfelelő táblázat vagy táblázatos kifejezés, amelynek sorait egyesíteni szeretné. A jelölése: $right . |
Feltételek | string |
✔️ | Meghatározza, hogy a LeftTable sorai hogyan egyeznek a RightTable soraival. Ha az egyezni kívánt oszlopok neve mindkét táblában azonos, 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. |
Stratégiák
Az alábbi lista a Stratégia paraméter támogatott értékeit ismerteti:
left
: A bal oldali tábla vagy bal oldali fürt fürtjén hajtsa végre az illesztés végrehajtását.right
: Hajtsa végre az illesztés végrehajtását a jobb oldali tábla vagy a jobb oldali fürt fürtjén.local
: Csatlakozzon az aktuális fürt fürtjéhez vagy a helyi fürthöz.auto
: (Alapértelmezett) A Kusto hozza meg a visszaalakítási döntést.
Megjegyzés
A rendszer figyelmen kívül hagyja az illesztési újramegjelenítési tippet, ha a javasolt stratégia nem alkalmazható az illesztési műveletre.
Az automatikus stratégia működése
Alapértelmezés szerint a auto
stratégia határozza meg, hogy hol kell végrehajtani a fürtök közötti illesztéseket a következő szabályok alapján:
- Ha az egyik tábla a helyi fürtben található, akkor az illesztés a helyi fürtön lesz végrehajtva.
- Ha mindkét tábla a helyi fürtön kívül van üzemeltetve, akkor a csatlakozás a megfelelő fürtön történik.
Tekintse meg a következő példákat:
// Example 1
T | ... | join (cluster("B").database("DB").T2 | ...) on Col1
// Example 2
cluster("B").database("DB").T | ... | join (cluster("C").database("DB2").T2 | ...) on Col1
A stratégiával az auto
"1. példa" a helyi fürtön lesz végrehajtva. A "2. példa" esetében, feltételezve, hogy egyik fürt sem a helyi fürt, az illesztés a megfelelő fürtön lesz végrehajtva.
A teljesítménnyel kapcsolatos megfontolások
Az optimális teljesítmény érdekében javasoljuk, hogy futtassa a lekérdezést a legnagyobb táblát tartalmazó fürtön.
Vegyük újra a következő példákat:
// Example 1
T | ... | join (cluster("B").database("DB").T2 | ...) on Col1
// Example 2
cluster("B").database("DB").T | ... | join (cluster("C").database("DB2").T2 | ...) on Col1
Az "1. példa" a helyi fürtön való futtatásra van beállítva, de ha az által T | ...
előállított adathalmaz kisebb, mint egy által cluster("B").database("DB").T2 | ...
előállított, akkor hatékonyabb lenne az illesztési művelet végrehajtása a fürtön B
, ebben az esetben a megfelelő fürtön, nem pedig a helyi fürtön.
Az alábbi lekérdezés ezt a right
stratégiával hajtja végre. A stratégiával a right
rendszer a jobb fürtön hajtja végre az illesztési műveletet, még akkor is, ha a bal oldali tábla a helyi fürtben található.
T | ... | join hint.remote=right (cluster("B").database("DB").T2 | ...) on Col1
Kapcsolódó tartalom
Ez a képesség nem támogatott az Azure Monitorban
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: