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. KQL je jednoduchý, ale výkonný jazyk pro dotazování na strukturovaná, částečně strukturovaná a nestrukturovaná data. Jazyk je výrazný, snadno čitelný a srozumitelný záměr dotazu a optimalizovaný pro prostředí pro vytváření obsahu. dotazovací jazyk Kusto je optimální pro dotazování telemetrie, metrik a protokolů s hlubokou podporou vyhledávání a parsování textu, operátorů a funkcí časových řad, analýz a agregací, geoprostorových hledání, vektorových podobností a mnoha dalších jazykových konstrukcí, které poskytují nejoptimálnější jazyk pro analýzu dat. Dotaz používá entity schématu, které jsou uspořádané v hierarchii podobnéQL: 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 prostředí dotazů, použijte webové uživatelské rozhraní Azure Data Explorer. Pokud se chcete naučit používat KQL, přečtěte si 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ý v prostém textu pomocí modelu toku dat, který se snadno čte, umožňuje vytvářet a automatizovat. 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 (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ů na 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 (svislé | ). 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. Protož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 count, z nichž každý je oddělený svislou rourou. Řádky dat pro zdrojovou tabulku jsou filtrovány podle hodnoty sloupce StartTime a pak 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ů.

Pokud chcete vyzkoušet nějaké další dotazy Kusto, projdě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 na Kusto ke zpracování nebo úpravě 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í vlastní syntaxi, která není součástí syntaxe dotazovací jazyk Kusto, i když tyto dva koncepty sdílejí mnoho konceptů. Konkrétně se příkazy pro správu odlišují od dotazů tím, že prvním znakem v textu příkazu je tečka (.), který nemůže spustit dotaz. Tento rozdíl 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: