Sdílet prostřednictvím


Přehled dotazovacího jazyka Kusto (KQL)

Platí pro: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Kusto Query Language (KQL) je výkonný nástroj pro zkoumání dat a zjišťování vzorů, identifikaci anomálií a odlehlých hodnot, vytváření statistického modelování a další. KQL je jednoduchý, ale výkonný jazyk pro dotazování strukturovaných, částečně strukturovaných a nestrukturovaných dat. Jazyk je výrazný, snadno čitelný a srozumitelný záměr dotazu a optimalizovaný pro vytváření prostředí. Dotazovací jazyk Kusto je optimální pro dotazování telemetrie, metrik a protokolů s hlubokou podporou vyhledávání a analýzy textu, operátorů a funkcí časových řad, analýzy a agregace, geoprostorových vyhledávání, vyhledávání vektorů a mnoha dalších jazykových konstruktorů, které poskytují nejoptimálnější jazyk pro analýzu dat. Dotaz používá entity schématu uspořádané v hierarchii podobné seznamům SQLs: 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í dotazu, použijtewebové uživatelské rozhraní Azure Data Exploreru . Informace o používání jazyka KQL najdete v kurzu: Naučte se běžné operátory.

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í dotazu, použijtesady dotazů KQL . Informace o používání jazyka KQL najdete v kurzu: Naučte se běžné operátory.

Co je dotaz Kusto?

Dotaz Kusto je požadavek jen pro čtení pro zpracování dat a vrácení výsledků. Požadavek je uvedený ve formátu prostého textu pomocí modelu toku dat, který je snadno čitelný, autor a automatizovat. Dotazy Kusto jsou tvořeny jedním nebo více příkazy dotazu.

Co je příkaz dotazu?

Existují tři druhy příkazů dotazu uživatele:

Všechny příkazy dotazu jsou oddělené ; (středníkem) a ovlivňují pouze dotaz v ruce.

Poznámka

Informace o příkazech dotazu aplikace naleznete v tématu příkazy dotazu aplikace.

Nejběžnějším druhem příkazu dotazu je tabulkový výraz příkaz, 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 sekvencovány pomocí | (potrubí). Toky dat nebo se předá z jednoho operátoru do dalšího. 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. Pokaždé, když data procházejí jiným operátorem, filtrují se, přeuspořádají nebo shrnují. Vzhledem k tomu, že propojení informací z jednoho operátoru do druhého je sekvenční, je pořadí operátorů dotazu důležité a může ovlivnit výsledky i výkon. Na konci trychtýře zůstanete s upřesněným výstupem.

Podívejme se na příklad dotazu.

StormEvents 
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"  
| count 
Počítat
28

Poznámka

KQL se u všeho rozlišují malá a velká písmena – názvy tabulek, názvy sloupců tabulky, operátory, funkce atd.
Klíčová slova lze použít jako identifikátory tak, že je uzavřete do závorek a uvozovek ([' a '] nebo [" a "]). Například ['where']. Další informace najdete v tématu pravidla pojmenování identifikátorů

Tento dotaz má 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, každý oddělený kanálem. Řádky dat pro zdrojovou tabulku se filtrují podle hodnoty sloupce StartTime a potom filtrují podle hodnoty sloupce State. Dotaz na posledním řádku vrátí tabulku s jedním sloupcem a jedním řádkem obsahujícím počet zbývajících řádků.

Pokud si chcete vyzkoušet několik dalších dotazů 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 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ího jazyka Kusto, i když tyto dva koncepty sdílejí mnoho konceptů. Konkrétně se příkazy pro správu rozlišují od dotazů tím, že mají první znak v textu příkazu tečku (.) znak (který nemůže spustit dotaz). Toto rozlišení brání 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á třída příkazů, které začínají .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ů správy.

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: