A Kusto Query Language (KQL) áttekintése

A Kusto Query Language (KQL) hatékony eszköz az adatok feltárásához és mintázatok felfedezéséhez, az anomáliák és kiugró értékek azonosításához, statisztikai modellek létrehozásához és még sok máshoz. A KQL egy egyszerű, mégis hatékony nyelv a strukturált, részben strukturált és strukturálatlan adatok lekérdezéséhez. A nyelv kifejező, könnyen olvasható és érthető a lekérdezési szándék, és a szerzői élményhez van optimalizálva. Kusto lekérdezésnyelv optimális a telemetriai adatok, metrikák és naplók lekérdezéséhez, a szövegkeresés és -elemzés, az idősorozat-operátorok és -függvények, az elemzések és az összesítés, a térinformatikai, a vektoros hasonlósági keresések és sok más olyan nyelvi szerkezet használatával, amelyek a legoptimálisabb nyelvet biztosítják az adatelemzéshez. A lekérdezés olyan sémaentitásokat használ, amelyek az SQLs-hez hasonló hierarchiában vannak rendszerezve: adatbázisok, táblák és oszlopok.

Ez a cikk a lekérdezés nyelvének magyarázatát tartalmazza, és gyakorlati gyakorlatokat kínál a lekérdezések írásának megkezdéséhez. A lekérdezési környezet eléréséhez használja az Azure Data Explorer webes felhasználói felületét. A KQL használatáról az Oktatóanyag: Gyakori operátorok megismerése című témakörben olvashat.

Mi az a Kusto-lekérdezés?

A Kusto-lekérdezések írásvédett, az adatfeldolgozásra és az eredmények visszaküldésére szolgáló kérelmek. A kérés egyszerű szövegként jelenik meg, és könnyen olvasható, szerzői és automatizálható adatfolyam-modellt használ. A Kusto-lekérdezések egy vagy több lekérdezési utasításból állnak.

Mi az a lekérdezési utasítás?

Háromféle felhasználói lekérdezési utasítás létezik:

Minden lekérdezési utasítást egy ; (pontosvessző) választ el egymástól, és csak az aktuális lekérdezésre van hatással.

Megjegyzés

További információ az alkalmazás-lekérdezési utasításokról: Alkalmazás-lekérdezési utasítások.

A lekérdezési utasítás leggyakoribb típusa egy táblázatos kifejezésutasítás, ami azt jelenti, hogy mind a bemenete, mind a kimenete táblákból vagy táblázatos adatkészletekből áll. A táblázatos utasítások nulla vagy több operátort tartalmaznak, amelyek mindegyike táblázatos bemenettel kezdődik, és táblázatos kimenetet ad vissza. Az operátorokat egy | (cső) sorrendbe rendezi. Az adatok az egyik operátorról a következőre folynak, vagy vannak irányítva. Minden lépésben megtörténik az adatok szűrése vagy módosítása, majd a következő lépésbe kerülnek.

Ez olyan, mint egy tölcsér, ahol egy teljes adattáblázattal kezd. Minden alkalommal, amikor az adatok egy újabb operátoron haladnak át, megtörténik a szűrésük, átrendezésük vagy összegzésük. Mivel az egyik operátorból a másikba történő adatcsomózás szekvenciális, a lekérdezési operátor sorrendje fontos, és hatással lehet az eredményekre és a teljesítményre is. A tölcsér végén egy finomított kimenet marad.

Tekintsünk meg egy példa lekérdezést.

StormEvents 
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"  
| count 
Darabszám
28

Megjegyzés

A KQL megkülönbözteti a kis- és nagybetűket mindenhez – táblanevekhez, táblaoszlopnevekhez, operátorokhoz, függvényekhez stb.

Ez a lekérdezés egyetlen táblázatos kifejezésutasítással rendelkezik. Az utasítás egy StormEvents nevű táblára való hivatkozással kezdődik, where és több operátort és count, mindegyiket egy cső választja el egymástól. A forrástábla adatsorait a StartTime oszlop értéke szűri, majd az Állapot oszlop értéke alapján szűri. Az utolsó sorban a lekérdezés egyetlen oszlopból és egyetlen sorból álló táblát ad vissza, amely a fennmaradó sorok számát tartalmazza.

További Kusto-lekérdezések kipróbálásához lásd : Oktatóanyag: Kusto-lekérdezések írása.

Felügyeleti parancsok

A Kusto-lekérdezésekkel ellentétben a felügyeleti parancsok a Kusto felé irányuló kérések az adatok vagy metaadatok feldolgozására vagy módosítására. A következő felügyeleti parancs például létrehoz egy új Kusto-táblát két oszloppal, Level és Text:

.create table Logs (Level:string, Text:string)

A felügyeleti parancsok saját szintaxissal rendelkeznek, amely nem része a Kusto lekérdezésnyelv szintaxisnak, bár a kettőnek sok fogalma van. A felügyeleti parancsokat különösen úgy különböztetjük meg a lekérdezésektől, hogy a parancs szövegében az első karakter a pont () karakter (.amely nem tud lekérdezést indítani). Ez a különbség számos biztonsági támadást megelőz, egyszerűen azért, mert megakadályozza a felügyeleti parancsok beágyazását a lekérdezésekbe.

Nem minden felügyeleti parancs módosítja az adatokat vagy a metaadatokat. A(z) .show kezdetű parancsok jelentős hányada a metaadatok és az adatok megjelenítésére szolgál. Például a .show tables parancs megjeleníti az aktuális adatbázis összes táblájának listáját.

A felügyeleti parancsokkal kapcsolatos további információkért lásd: Felügyeleti parancsok áttekintése.

KQL más szolgáltatásokban

A KQL-t számos más Microsoft-szolgáltatás is használja. A KQL ezen környezetekben való használatával kapcsolatos konkrét információkért tekintse meg az alábbi hivatkozásokat: