Kurz: Seznámení s běžnými operátory

dotazovací jazyk Kusto (KQL) se používá k psaní dotazů v Azure Data Explorer, Azure Monitor Log Analytics, Azure Sentinel a dalších. Tento kurz představuje úvod do základních operátorů KQL používaných pro přístup k datům a jejich analýzu.

Konkrétnější pokyny k dotazování protokolů ve službě Azure Monitor najdete v tématu Začínáme s dotazy na protokoly.

Poznámka

Nemůžete najít, co hledáte? Tento článek byl nedávno rozdělen takto:

V tomto kurzu se naučíte:

Příklady v tomto kurzu používají StormEvents tabulku, která je veřejně dostupná v clusteru nápovědy. Pokud chcete zkoumat data s vlastními daty, vytvořte si vlastní bezplatný cluster.

Požadavky

  • Účet Microsoft nebo Microsoft Entra identitu uživatele pro přihlášení ke clusteru nápovědy

Počet řádků

Začněte tím, že pomocí operátoru count vyhledáte počet záznamů storm v tabulce StormEvents .

StormEvents 
| count

Výstup

Počet
59066

Zobrazení ukázky dat

Pokud chcete získat představu o datech, pomocí operátoru take zobrazte vzorek záznamů. Tento operátor vrátí zadaný počet libovolných řádků z tabulky, což může být užitečné pro zobrazení náhledu obecné datové struktury a obsahu.

StormEvents 
| take 5

Následující tabulka ukazuje pouze 6 z 22 vrácených sloupců. Pokud chcete zobrazit úplný výstup, spusťte dotaz.

StartTime EndTime Id epizody EventId Stav Typ události ...
2007-09-20T21:57:00Z 2007-09-20T22:05:00Z 11078 60913 FLORIDA Tornádo ...
2007-12-20T07:50:00Z 2007-12-20T07:53:00Z 12554 68796 MISSISSIPPI Bouřkový vítr ...
2007-12-30T16:00:00Z 2007-12-30T16:05:00Z 11749 64588 GRUZIE Bouřkový vítr ...
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 ATLANTIC SOUTH Kapka vody ...
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Silný déšť ...

Vyberte podmnožinu sloupců.

Pomocí operátoru projektu můžete zjednodušit zobrazení a vybrat konkrétní podmnožinu sloupců. Použití project je často efektivnější a čitelnější než prohlížení všech sloupců.

StormEvents
| take 5
| project State, EventType, DamageProperty

Výstup

Stav Typ události Vlastnost poškození
ATLANTIC SOUTH Kapka vody 0
FLORIDA Silný déšť 0
FLORIDA Tornádo 6200000
GRUZIE Bouřkový vítr 2000
MISSISSIPPI Bouřkový vítr 20000

Vypsat jedinečné hodnoty

Zdá se, že na základě výsledků předchozího dotazu existuje několik typů stormů. Pomocí operátoru distinct vypište všechny jedinečné typy storm.

StormEvents 
| distinct EventType

Tabulka obsahuje 46 typů bouřek. Tady je ukázka 10 z nich.

Typ události
Bouřkový vítr
Krupobití
Blesková povodeň
Sucha
Zimní počasí
Zimní bouře
Těžký sníh
Silný vítr
Mráz/zamrznutí
Povodní
...

Filtrovat podle podmínky

Operátor where filtruje řádky dat na základě určitých kritérií.

Následující dotaz hledá události storm v určitém State typu EventType.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty

Tyto podmínky splňují 146 událostí. Tady je ukázka 5 z nich.

StartTime EndTime Stav Typ události Vlastnost poškození
2007-01-13T08:45:00Z 2007-01-13T10:30:00Z TEXAS Povodní 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Povodní 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Povodní 0
2007-01-15T22:00:00Z 2007-01-16T22:00:00Z TEXAS Povodní 20000
2007-03-12T02:30:00Z 2007-03-12T06:45:00Z TEXAS Povodní 0
... ... ... ... ...

Řazení výsledků

Pokud chcete zobrazit nejvyšší záplavy v Texasu, které způsobily největší škody, použijte operátor řazení a uspořádejte řádky sestupně podle DamageProperty sloupce. Výchozí pořadí řazení je sestupné. Pokud chcete řadit vzestupně, zadejte asc.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| sort by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty

Výstup

StartTime EndTime Stav Typ události Vlastnost poškození
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Povodní 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Povodní 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Povodní 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Povodní 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Povodní 750000
... ... ... ... ...

Získání prvních n řádků

Operátor top vrátí prvních n řádků seřazených podle zadaného sloupce.

Následující dotaz vrátí pět texaských povodní, které způsobily nejvíce poškozený majetek.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty

Výstup

StartTime EndTime Stav Typ události Vlastnost poškození
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Povodní 5000000
27.6.2007T00:00:00Z 27.06.2007T12:00:00Z TEXAS Povodní 1200000
28.6.2007T18:00:00Z 28.6.2007T23:00:00Z TEXAS Povodní 1000000
27.6.2007T00:00:00Z 2007-06-27T08:00:00Z TEXAS Povodní 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Povodní 750000

Poznámka

Pořadí operátorů je důležité. Pokud ho sem vložíte top , where dostanete různé výsledky. Je to proto, že data jsou transformována jednotlivými operátory v pořadí. Další informace najdete v tématu Příkazy tabulkových výrazů.

Vytváření počítaných sloupců

Operátory projektu i rozšíření můžou vytvářet počítané sloupce.

Slouží project k určení pouze sloupců, které chcete zobrazit, a k extend připojení počítaného sloupce na konec tabulky.

Následující dotaz vytvoří počítaný Duration sloupec s rozdílem StartTime mezi a EndTime. Vzhledem k tomu, že chceme zobrazit jenom několik vybraných sloupců, je v tomto případě lepší volbou použití project .

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| project StartTime, EndTime, Duration = EndTime - StartTime, DamageProperty

Výstup

StartTime EndTime Doba trvání DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z 1.01:30:00 5000000
27.6.2007T00:00:00Z 27.06.2007T12:00:00Z 12:00:00 1200000
28.6.2007T18:00:00Z 28.6.2007T23:00:00Z 05:00:00 1000000
27.6.2007T00:00:00Z 2007-06-27T08:00:00Z 08:00:00 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z 03:00:00 750000

Pokud se podíváte na počítaný Duration sloupec, můžete si všimnout, že povodeň, která způsobila nejvíce škod, byla také nejdelší povodeň.

Slouží extend k zobrazení počítaného Duration sloupce spolu se všemi ostatními sloupci. Sloupec Duration se přidá jako poslední sloupec.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| extend Duration = EndTime - StartTime

Výstup

StartTime EndTime ... Doba trvání
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z ... 1.01:30:00
27.6.2007T00:00:00Z 27.06.2007T12:00:00Z ... 12:00:00
28.6.2007T18:00:00Z 28.6.2007T23:00:00Z ... 05:00:00
27.6.2007T00:00:00Z 2007-06-27T08:00:00Z ... 08:00:00
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z ... 03:00:00

Mapování hodnot z jedné sady na jinou

Statické mapování je užitečná technika pro změnu prezentace výsledků. V KQL je jedním ze způsobů, jak provést statické mapování, použití dynamického slovníku a přístupových objektů k mapování hodnot z jedné sady na jinou.

let sourceMapping = dynamic(
  {
    "Emergency Manager" : "Public",
    "Utility Company" : "Private"
  });
StormEvents
| where Source == "Emergency Manager" or Source == "Utility Company"
| project EventId, Source, FriendlyName = sourceMapping[Source]

Výstup

EventId Source Friendlyname
68796 Nouzový manažer Veřejná
... ... ...
72609 Utility Company Privátní
... ... ...

Další krok

Teď, když jste obeznámeni se základy psaní dotazů Kusto, přejděte k dalšímu kurzu a naučte se používat agregační funkce k získání hlubšího přehledu o vašich datech.