Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Szolgáltatások váltása a Verzió legördülő listával. További információ a navigációról.
A következőkre vonatkozik: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
A lekérdezések egy adott adatbázissal futnak, amely a környezetben adatbázisként van kijelölve. Ez az adatbázis az engedélyek ellenőrzésének alapértelmezett beállítása. Ha egy entitásra a fürt vagy az adatbázis megadása nélkül hivatkozik egy lekérdezés, az adatbázissal lesz feloldva.
A lekérdezések egy adott adatbázissal futnak, amely a környezetben adatbázisként van kijelölve. Ez az adatbázis az engedélyek ellenőrzésének alapértelmezett beállítása. Ha egy entitásra a környezet megadása nélkül hivatkoznak egy lekérdezésben, az adatbázison belül lesz feloldva.
Ez a cikk azt ismerteti, hogyan hajthat végre olyan lekérdezéseket, amelyek az aktuális környezeti adatbázison kívül található entitásokat is érintenek.
Előfeltételek
- Ha a fürtök különböző bérlőkben találhatók, kövesse a bérlők közötti lekérdezések és parancsok engedélyezése című témakör utasításait.
A fürt és az adatbázis azonosítása a környezetben
Az eseményház és az adatbázis azonosítása a kontextusban
Az alábbi táblázat bemutatja, hogyan azonosíthatja az adatbázist a környezetben lekérdezési környezet alapján.
| Környezet | Adatbázis a környezetben |
|---|---|
| Kusto Explorer | Az alapértelmezett adatbázis a kapcsolatok panelen van kiválasztva, az aktuális fürt pedig az az adatbázist tartalmazó fürt. |
| Az Azure Data Explorer webes felhasználói felülete | A kapcsolatpanelen az alapértelmezett adatbázis van kiválasztva, az aktuális fürt pedig az adatbázist tartalmazó fürt. |
| Klienskönyvtárak | Adja meg az alapértelmezett adatbázist és fürtöt a Data SourceInitial Catalog és tulajdonságainak alapján. |
| Környezet | Adatbázis/Eseményház a kontextusban |
|---|---|
| Kusto Explorer | Az alapértelmezett adatbázis a kapcsolatok panelen van kiválasztva, az aktuális eseményház pedig az adatbázist tartalmazó eseményház. |
| Real-Time Intelligence KQL-lekérdezéskészlet | Az alapértelmezett adatbázis az aktuális adatbázis , amely közvetlenül vagy egy eseményházban van kiválasztva. |
| Klienskönyvtárak | Adja meg a Kusto kapcsolati sztringek tulajdonságaihoz Data Source használt alapértelmezett adatbázist az adatbázis URI-jával. Az eseményházhoz használja a fürt URI-ját. Ezt a rendszer áttekintésének kiválasztásával találja meg a kiválasztott eseményház Eseményház részletei szakaszában. |
Fürtközi vagy adatbázisközi lekérdezések végrehajtása
Eseményközi vagy adatbázisközi lekérdezések végrehajtása
Az adatbázison kívüli entitások környezetbeli eléréséhez használja a fürt() és az adatbázis() függvényt az entitásnév minősítéséhez.
Egy másik adatbázis tábláihoz ugyanabban a fürtben:
database("<DatabaseName>").<TableName>
Távoli fürtön lévő tábla esetén:
cluster("<ClusterName>").database("<DatabaseName>").<TableName>
Egy másik adatbázis tábláihoz ugyanabban az eseményházban:
database("<DatabaseName>").<TableName>
Egy távoli eseményközpontban vagy távoli szolgáltatásban (például az Azure Data Explorerben) lévő tábla esetén:
cluster("<EventhouseClusterURI>").database("<DatabaseName>").<TableName>
Megjegyzés:
A lekérdezés végrehajtásához megtekintői engedéllyel kell rendelkeznie az alapértelmezett adatbázishoz és a lekérdezésben hivatkozott összes többi adatbázishoz. További információkért lásd a Kusto szerepköralapú hozzáférés-vezérléscímű részt.
Jótanács
A lekérdezésből visszaadott rekordok száma alapértelmezés szerint korlátozott, még akkor is, ha az take operátor nincs konkrétan használva. A korlát feloldásához használja az notruncation ügyfélkérési lehetőséget. További információ: Lekérdezési korlátok.
Minősített nevek és az egyesítő operátor
Ha egy minősített név az egyesítő operátor operandusaként jelenik meg, akkor helyettesítő karakterek használatával több táblát és több adatbázist is megadhat. A fürtnevekben nem engedélyezettek a helyettesítő karakterek.
union withsource=TableName *, database("OtherDb*").*Table, cluster("OtherCluster").database("*").*
Ha egy minősített név az egyesítő operátor operandusaként jelenik meg, akkor helyettesítő karakterek használatával több táblát és több adatbázist is megadhat. Az eseményháznevekben nem engedélyezettek a helyettesítő karakterek.
union withsource=TableName *, database("OtherDb*").*Table, cluster("OtherEventhouseClusterURI").database("*").*
Megjegyzés:
Az alapértelmezett adatbázis neve szintén lehetséges egyezés, ezért database("*") az összes adatbázis tábláját megadja, beleértve az alapértelmezettet is.
Minősített nevek és hozzáférési utasítások korlátozása
A korlátozott hozzáférési utasításban minősített nevek vagy minták is szerepelhetnek. A fürtnevek helyettesítő karakterei nem engedélyezettek.
Az eventhouse-nevek helyettesítő karakterei nem engedélyezettek.
Az alábbi lekérdezés korlátozza a lekérdezési hozzáférést a következő entitásokhoz:
- Bármely entitásnév, amely az alapértelmezett adatbázisban a saját... névvel kezdődik.
- Bármely tábla az aktuális fürt MyOther nevű adatbázisában.
- A fürt OtherCluster.kusto.windows.net minden táblája az összes my2 nevű adatbázisban.
restrict access to (my*, database("MyOther*").*, cluster("OtherCluster").database("my2*").*);
- Bármely entitás neve, amely eseménytől kezdve... az alapértelmezett adatbázisban található.
- Az összes eventhouse-nak az EventOther nevű adatbázisában lévő bármely tábla.
- Az eventhouse OtherEventhouse.kusto.data.microsoft.com minden tábla az összes event2 nevű adatbázisban.
restrict access to (event*, database("EventOther*").*, cluster("OtherEventhouseClusterURI").database("event2*").*);
Távoli entitások sémamódosításainak kezelése
A fürtök közötti lekérdezések feldolgozásához a kezdeti lekérdezési értelmezést végző fürtnek távoli fürtökön kell hivatkoznia az entitások sémájára. Az információk beszerzéséhez a rendszer egy parancsot küld a sémák lekéréséhez, amelyeket aztán egy gyorsítótárban tárol.
Ha sémaváltozás történt a távoli fürtben, előfordulhat, hogy a gyorsítótárazott séma elavulttá válik. Ez nem kívánt effektusokhoz vezethet, beleértve azokat a forgatókönyveket is, amelyekben az új vagy törölt oszlopok okoznak Partial query failure. Az ilyen problémák megoldásához frissítse manuálisan a sémát a .clear cache remote-schema paranccsal.
Az eseményházközi vagy az eventhouse-to-ADX-fürtre vonatkozó lekérdezés feldolgozásához a kezdeti lekérdezési értelmezést végző eseményháznak távoli eseményházakon vagy fürtökön kell hivatkoznia az entitások sémájára. Az információk beszerzéséhez a rendszer egy parancsot küld a sémák lekéréséhez, amelyeket aztán egy gyorsítótárban tárol.
Távoli sémamódosítás esetén előfordulhat, hogy a gyorsítótárazott séma elavulttá válik. Ez nem kívánt effektusokhoz vezethet, beleértve azokat a forgatókönyveket is, amelyekben az új vagy törölt oszlopok okoznak Partial query failure. Az ilyen problémák megoldásához frissítse manuálisan a sémát a .clear cache remote-schema paranccsal.
Függvények és nézetek
A függvények és nézetek (állandó és beágyazott) hivatkozhatnak táblákra adatbázis- és fürthatárokon keresztül. Az alábbi kód érvényes.
let MyView = Table1 join database("OtherDb").Table2 on Key | join cluster("OtherCluster").database("SomeDb").Table3 on Key;
MyView | where ...
Az állandó függvények és nézetek egy másik adatbázisból érhetők el ugyanabban a fürtben.
Tegyük fel például, hogy a következő táblázatos függvényt (nézetet) hozza létre egy adatbázisban OtherDb:
.create function MyView(v:string) { Table1 | where Column1 has v ... }
Ezután a következő skaláris függvényt hozza létre egy adatbázisban OtherDb:
.create function MyCalc(a:double, b:double, c:double) { (a + b) / c }
Az alapértelmezett adatbázisban ezekre az entitásokra az alábbiak szerint lehet hivatkozni:
database("OtherDb").MyView("exception") | extend CalCol=database("OtherDb").MyCalc(Col1, Col2, Col3) | take 10
A függvények és nézetek (állandó és beágyazott) hivatkozhatnak a táblákra az adatbázis és az eseményház határán. Az alábbi kód érvényes.
let EventView = Table1 join database("OtherDb").Table2 on Key | join cluster("OtherEventhouseClusterURI").database("SomeDb").Table3 on Key;
EventView | where ...
Az állandó függvények és nézetek egy másik adatbázisból is elérhetők ugyanabban az eseményházban.
Tegyük fel például, hogy a következő táblázatos függvényt (nézetet) hozza létre egy adatbázisban OtherDb:
.create function EventView(v:string) { Table1 | where Column1 has v ... }
Ezután a következő skaláris függvényt hozza létre egy adatbázisban OtherDb:
.create function EventCalc(a:double, b:double, c:double) { (a + b) / c }
Tegyük fel például, hogy a következő táblázatos függvényt (nézetet) hozza létre egy adatbázisban OtherDb:
.create function EventView(v:string) { Table1 | where Column1 has v ... }
Ezután a következő skaláris függvényt hozza létre egy adatbázisban OtherDb:
.create function EventCalc(a:double, b:double, c:double) { (a + b) / c }
Az alapértelmezett adatbázisban ezekre az entitásokra az alábbiak szerint lehet hivatkozni:
database("OtherDb").EventView("exception") | extend CalCol=database("OtherDb").EventCalc(Col1, Col2, Col3) | take 10
Fürtközi függvényhívások korlátozásai
A táblázatos függvényekre vagy nézetekre a fürtök között lehet hivatkozni. A következő korlátozások érvényesek:
- A távoli függvények táblázatos sémát adnak vissza. A skaláris függvények csak ugyanabban a fürtben érhetők el.
- A távoli függvények csak skaláris argumentumokat fogadnak el. Egy vagy több táblaargumentumot lekérő függvények csak ugyanabban a fürtben érhetők el.
- A távoli függvények eredménysémát rögzíteni kell (előre ismert, a lekérdezés egyes részeinek végrehajtása nélkül). Így a lekérdezési szerkezetek, például a
pivotbeépülő modul nem használhatók. Egyes beépülő modulok, például abag_unpackbeépülő modul, támogatják az eredményséma statikus jelzését, és ebben a formában fürtközi függvényhívásokban is használhatók. - Teljesítménybeli okokból a hívó fürt gyorsítótárazza a távoli entitások sémáját a kezdeti hívás után. Ezért a távoli entitás módosításai a gyorsítótárazott sémaadatokkal való eltérést eredményezhetik, ami lekérdezési hibákhoz vezethet. További információ: Fürtök közötti lekérdezések és sémamódosítások.
Az eseményházközi függvényhívások korlátozásai
A táblázatos függvényekre vagy nézetekre az eseményházakban lehet hivatkozni. A következő korlátozások érvényesek:
- A távoli függvények táblázatos sémát adnak vissza. A skaláris függvények csak ugyanabban az eseményházban érhetők el.
- A távoli függvények csak skaláris argumentumokat fogadnak el. Egy vagy több táblaargumentumot lekérő függvények csak ugyanabban az eseményházban érhetők el.
- A távoli függvények eredménysémát rögzíteni kell (előre ismert, a lekérdezés egyes részeinek végrehajtása nélkül). Így a lekérdezési szerkezetek, például a
pivotbeépülő modul nem használhatók. Egyes beépülő modulok, például abag_unpackbeépülő modul, támogatják az eredményséma statikus jelzését, és ebben a formában az eseményházfüggvények közötti hívásokhoz használhatók . - Teljesítménybeli okokból a hívó eseményház gyorsítótárazza a távoli entitások sémáját a kezdeti hívás után. Ezért a távoli entitás módosításai a gyorsítótárazott sémaadatokkal való eltérést eredményezhetik, ami lekérdezési hibákhoz vezethet. További információ: Fürtök közötti lekérdezések és sémamódosítások.
Példák
A következő fürtközi hívás érvényes.
cluster("OtherCluster").database("SomeDb").MyView("exception") | count
Az alábbi lekérdezés távoli skaláris függvényt MyCalchív meg.
Ez a hívás megsérti az 1. szabályt, ezért érvénytelen.
MyTable | extend CalCol=cluster("OtherCluster").database("OtherDb").MyCalc(Col1, Col2, Col3) | take 10
Az alábbi lekérdezés távoli függvényt MyCalc hív meg, és táblázatos paramétert biztosít.
Ez a hívás megsérti a 2. szabályt, ezért érvénytelen.
cluster("OtherCluster").database("OtherDb").MyCalc(datatable(x:string, y:string)["x","y"] )
Az alábbi eseményközi hívás érvényes.
cluster("OtherEventhouseURI").database("SomeDb").EventView("exception") | count
Az alábbi lekérdezés távoli skaláris függvényt EventCalchív meg.
Ez a hívás megsérti az 1. szabályt, ezért érvénytelen.
Eventtable | extend CalCol=cluster("OtherEventhouseClusterURI").database("OtherDb").MyCalc(Col1, Col2, Col3) | take 10
Az alábbi lekérdezés távoli függvényt EventCalc hív meg, és táblázatos paramétert biztosít.
Ez a hívás megsérti a 2. szabályt, ezért érvénytelen.
cluster("EventhouseClusterURI").database("OtherDb").MyCalc(datatable(x:string, y:string)["x","y"] )
Az alábbi lekérdezés olyan távoli függvényt SomeTable hív meg, amely a paraméter tablenamealapján változó sémakimenettel rendelkezik.
Ez a hívás megsérti a 3. szabályt, ezért érvénytelen.
Táblázatos függvény a következőben: OtherDb.
.create function SomeTable(tablename:string) { table(tablename) }
Az alapértelmezett adatbázisban.
cluster("OtherCluster").database("OtherDb").SomeTable("MyTable")
cluster("OtherEventhouseClusterURI").database("OtherDb").SomeTable("EventTable")
Az alábbi lekérdezés olyan távoli függvényt GetDataPivot hív meg, amely az adatokon (pivot() beépülő modulon alapuló változóséma-kimenettel rendelkezik, dinamikus kimenettel rendelkezik.
Ez a hívás megsérti a 3. szabályt, ezért érvénytelen.
Táblázatos függvény a következőben: OtherDb.
.create function GetDataPivot() { T | evaluate pivot(PivotColumn) }
Táblázatos függvény az alapértelmezett adatbázisban.
cluster("OtherCluster").database("OtherDb").GetDataPivot()
cluster("OtherEventhouseClusterURI").database("OtherDb").GetDataPivot()