Přehled dotazovacího jazyka Kusto (KQL)

Dotazovací jazyk Kusto (KQL) je výkonný nástroj umožňující procházet data a zjišťovat vzory, identifikovat anomálie a odlehlé hodnoty, vytvářet statistické modely atd. Dotaz používá entity schématu, které jsou uspořádané v hierarchii podobné seznamům SQL: databáze, tabulky a sloupce.

Tento článek obsahuje vysvětlení dotazovacího jazyka a nabízí praktická cvičení, která vám pomůžou začít psát dotazy. Pokud chcete získat přístup k dotazovacímu prostředí, použijte webové uživatelské rozhraní Azure Data Explorer. Informace o používání KQL najdete v tématu Kurz: Seznámení s běžnými operátory.

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ý ve formátu prostého textu pomocí modelu toku dat, který se snadno čte, autorizuje a automatizuje. Dotazy Kusto se skládají z jednoho nebo více příkazů dotazu.

Co je příkaz dotazu?

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

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

Poznámka

Informace o příkazech dotazů aplikace najdete v tématu Příkazy dotazů aplikace.

Nejběžnějším typem 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ým vstupem a vrací tabulkový výstup. Operátory jsou sekvencované podle | (potrubí). Data jsou v toku (jsou předávána) od jednoho operátoru k dalšímu. Data jsou v každém kroku filtrována nebo s nimi je manipulováno a poté jsou předána do následujícího kroku.

Je to jako trychtýř, ve kterém začínáte s celou tabulkou dat. Pokaždé, když data projdou dalším operátorem, jsou filtrována, znovu uspořádána nebo sumarizována. Vzhledem k tomu, že propojení informací z jednoho operátoru do jiného je sekvenční, pořadí operátorů dotazu je důležité a může ovlivnit výsledky i výkon. Na konci trychtýře zůstává upřesněný 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 
Počet
28

Poznámka

V KQL se rozlišují 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 StormEvents a obsahuje několik operátorů where a , z countnichž každý je oddělený kanálem. Řádky dat pro zdrojovou tabulku jsou filtrovány podle hodnoty sloupce StartTime a potom filtrovány podle hodnoty sloupce State . Na posledním řádku vrátí dotaz tabulku s jedním sloupcem a jedním řádkem obsahujícím počet zbývajících řádků.

Pokud si chcete vyzkoušet další dotazy Kusto, přečtěte si kurz: Psaní dotazů Kusto.

Příkazy pro správu

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

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

Příkazy pro správu mají svou vlastní syntaxi, která není součástí syntaxe dotazovací jazyk Kusto, i když tyto dva koncepty sdílejí mnoho konceptů. Příkazy pro správu se od dotazů odlišují zejména tím, že první znak v textu příkazu je tečka (.) (který nemůže spustit dotaz). Toto rozlišení zabraňuje mnoha druhům útoků na zabezpečení jednoduše proto, že brání vkládání příkazů pro správu do dotazů.

Ne všechny příkazy pro správu 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 příkazech pro správu najdete v tématu Přehled příkazů pro správu.

KQL v jiných službách

KQL používá mnoho dalších služeb Microsoftu. Konkrétní informace o použití KQL v těchto prostředích najdete na následujících odkazech:

Další kroky