Přehled dotazovacího jazyka Kusto (KQL)

Dotazovací jazyk Kusto je výkonný nástroj pro zkoumání dat a zjišťování vzorů, identifikaci anomálií a odlehlé hodnoty, vytváření statistického modelování a další. Dotazy využívají entity schématu uspořádané do hierarchie podobné jazyku SQL: databáze, tabulky a sloupce.

Co je dotaz Kusto?

Dotaz Kusto je požadavek jen pro čtení na zpracování dat a vrácení výsledků. Požadavek je uvedený v prostém textu s použitím modelu toku dat, který se snadno čte, autorizuje a automatizuje. Dotazy Kusto jsou tvořeny jedním nebo více příkazy dotazu.

Co je příkaz dotazu?

Existují tři druhy příkazů uživatelských dotazů:

Všechny příkazy dotazu jsou oddělené středníkem a ; ovlivňují pouze dotaz, který máte k dispozici.

Poznámka

Informace o výpisech dotazů aplikace najdete v tématu Příkazy dotazů aplikace.

Nejběžnějším druhem příkazu dotazu je příkaz tabulkového výrazu , což znamená, že jeho vstup i výstup se skládají z tabulek nebo tabulkových datových sad. Tabulkové příkazy obsahují nula nebo více operátorů, z nichž každý začíná tabulkový vstup a vrací tabulkový výstup. Operátory jsou sekvencované (kanálem | ). Toky dat nebo se předá z jednoho operátoru na další. Data se filtrují nebo manipulují v každém kroku a pak se předá do následujícího kroku.

Je to jako trychtýř, kde začínáte s celou tabulkou dat. Při každém průchodu dat jiným operátorem se data filtrují, přeuskupují nebo sumarizuje. Vzhledem k tomu, že sesouvisení informací z jednoho operátoru do druhého je sekvenční, je důležité pořadí operátorů dotazu a může ovlivnit výsledky i výkon. Na konci trychtýře máte vylepšovaný výstup.

Podívejme se na příklad dotazu.

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

Poznámka

Jazyk KQL rozlišuje velká a malá písmena pro všechno – názvy tabulek, názvy sloupců tabulky, operátory, funkce atd.

Tento dotaz obsahuje jeden příkaz tabulkového výrazu. Příkaz začíná odkazem na tabulku s názvem StormEventscounta obsahuje několik operátorů a , z nichž každý je oddělený kanálem. Řádky dat pro zdrojovou tabulku jsou filtrovány podle hodnoty sloupce StartTime a pak jsou filtrovány podle hodnoty sloupce State . Na posledním řádku dotaz vrátí tabulku s jedním sloupcem a jedním řádkem obsahujícím počet zbývajících řádků.

Výsledek zobrazíte spuštěním tohoto dotazu:

Počet
28

Pokud si chcete vyzkoušet některé další dotazy Kusto, projděte si kurz použití dotazů Kusto.

Řídicí příkazy

Na rozdíl od dotazů Kusto jsou řídicí příkazy požadavky na Kusto ke zpracování nebo úpravě dat nebo metadat. Například následující řídicí příkaz vytvoří novou tabulku Kusto se dvěma sloupci Level a Text:

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

Řídicí příkazy mají vlastní syntaxi (která není součástí syntaxe dotazovacího jazyka Kusto, přestože obě sdílejí celou řadu konceptů). Řídicí příkazy se od dotazů odlišují zejména tím, že jako první znak textu příkazu mají tečku (.), zatímco dotaz tečkou začínat nemůže. Tento rozdíl umožňuje zabránit mnoha bezpečnostním útokům, protože brání vkládání řídicích příkazů do dotazů.

Ne všechny řídicí příkazy upravují data nebo metadata. Velká skupina příkazů, které začínají na .show, slouží k zobrazení metadat nebo dat. Například příkaz .show tables vrátí seznam všech tabulek v aktuální databázi.

Další informace o řídicích příkazech najdete v tématu Přehled správy (řídicích příkazů).

Další kroky