Přehled dotazovacího jazyka Kusto (KQL)
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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
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žijte
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:
- příkaz tabulkového výrazu
- Příkaz let
- Příkaz set
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:
- dotazy protokolu ve službě Azure Monitor
- Dotazovací jazyk Kusto v Microsoft Sentinelu
- principy dotazovacího jazyka Azure Resource Graph
- proaktivně vyhledávat hrozby s pokročilým vyhledáváním v programu Microsoft 365 Defender
- dotazy CMPivot