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

Ez a képesség nem támogatott az Azure Monitorban