Megosztás a következőn keresztül:


Fürtközi illesztés

A következőkre vonatkozik: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

A fürtök közötti illesztés magában foglalja a különböző fürtökben található adathalmazok adatait.

Fürtközi illesztés esetén a lekérdezés három lehetséges helyen hajtható végre, amelyek mindegyike rendelkezik egy adott hivatkozási megjelöléssel 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 illesztési művelet bal oldalán található adatokat tároló fürt.
  • Jobb 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.

Jegyzet

Ha az illesztési művelet bal és jobb oldalán található adatok ugyanabban a fürtben vannak tárolva, akkor az nem 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.

Szintaxis

[ cluster(ClusterName).database(DatabaseName).]LeftTable| ...
| join [ hint.remote=stratégia ] (
  [ cluster(ClusterName).database(DatabaseName).]RightTable| ...
) Feltételek

További információ szintaxiskonvenciákról.

Paraméterek

Név Típus Szükséges Leírás
LeftTable string ✔️ A bal oldali táblázat vagy táblázatos kifejezés, amelynek sorait egyesíteni kell. $leftjelölése.
stratégiai string Meghatározza az illesztés végrehajtásához szükséges fürtö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, használja a fürt() függvényt a fürt megadásához.
DatabaseName string Ha az illesztés adatai a helyi adatbázis-környezeten kívül találhatók, használja a adatbázis() függvényt az adatbázis megadásához.
RightTable string ✔️ A megfelelő táblázat vagy táblázatos kifejezés, amelynek sorait egyesíteni kell. $rightjelölése.
feltételek string ✔️ Meghatározza, hogy LeftTable sorai hogyan egyeznek RightTablesoraival. Ha az egyeztetni kívánt oszlopok neve mindkét táblában azonos, használja a ONColumnNameszintaxist. Ellenkező esetben használja a LeftColumn==$right.RightColumnszintaxist ON $left.. Több feltétel megadásához használhatja az "and" 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égiai paraméter támogatott értékeit ismerteti:

  • left: Csatlakozás végrehajtása a bal oldali tábla vagy bal oldali fürt fürtjén.
  • right: Az illesztés végrehajtása a jobb oldali tábla vagy a jobb oldali fürt fürtjén.
  • local: Csatlakozás végrehajtása az aktuális fürt vagy helyi fürt fürtjén.
  • auto: (Alapértelmezett) A Kusto hozza meg az újraválasztási döntést.

Jegyzet

A rendszer figyelmen kívül hagyja az illesztési újrailleszté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 az alábbi szabályok alapján határozza meg a fürtközi illesztés helyét:

  • Ha az egyik tábla a helyi fürtben van üzemeltetve, akkor az illesztés a helyi fürtön lesz végrehajtva. Az automatikus stratégiával például a rendszer végrehajtja ezt a lekérdezést a helyi fürtön:

    T | ... | join (cluster("B").database("DB").T2 | ...) on Col1
    
  • Ha mindkét táblát a helyi fürtön kívül üzemelteti, akkor az illesztés a megfelelő fürtön történik. Ha például egyik fürt sem a helyi fürt, az illesztés a megfelelő fürtön lesz végrehajtva:

    cluster("B").database("DB").T | ... | join (cluster("C").database("DB2").T2 | ...) on Col1
    

Teljesítménnyel kapcsolatos szempontok

Az optimális teljesítmény érdekében javasoljuk, hogy futtassa a lekérdezést a legnagyobb táblát tartalmazó fürtön.

Az alábbi példában, ha a T | ... által előállított adathalmaz kisebb, mint egy cluster("B").database("DB").T2 | ... által előállított adathalmaz, akkor hatékonyabb lenne az illesztési művelet végrehajtása a fürt B, ebben az esetben a megfelelő fürt a helyi fürt helyett.

T | ... | join (cluster("B").database("DB").T2 | ...) on Col1

A lekérdezést átírhatja úgy, hogy hint.remote=right használatával optimalizálja a teljesítményt. Ily módon az illesztési műveletet a rendszer a jobb oldali fürtön hajtja végre, még akkor is, ha a bal oldali tábla a helyi fürtben van.

T | ... | join hint.remote=right (cluster("B").database("DB").T2 | ...) on Col1