Sdílet prostřednictvím


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

Přepněte služby pomocí rozevíracího seznamu Verze . Přečtěte si další informace o navigaci.
Platí pro: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Dotazovací jazyk Kusto (KQL) můžete použít k zápisu dotazů v Azure Data Exploreru, Azure Monitor Log Analytics, Microsoft Sentinelu a dalších. Tento kurz představuje základní operátory KQL, které používáte 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 návodu se naučíte, jak:

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

Příklady v tomto kurzu používají StormEvents tabulku, která je veřejně dostupná v analýze počasíukázkových datech.

Požadavky

Pokud chcete spustit následující dotazy, potřebujete prostředí dotazu s přístupem k ukázkovým datům. Můžete použít jednu z následujících možností:

  • Účet Microsoft nebo identita uživatele Microsoft Entra pro přihlášení ke clusteru nápovědy
  • Účet Microsoft nebo identita uživatele Microsoft Entra
  • Pracovní prostor Fabric s kapacitou s funkcí Microsoft Fabric

Počet řádků

Začněte tím, že pomocí operátoru count zjistíte počet záznamů o bouřkách v tabulce StormEvents.

StormEvents 
| count

Výstup

Počet
59066

Zobrazení ukázky dat

Pokud chcete získat představu o datech, použijte operátor take k zobrazení vzorku 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 pět z 22 vrácených sloupců. Pokud chcete zobrazit úplný výstup, spusťte dotaz.

Počáteční čas Koncový Čas EpisodeId 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 Větrná bouře ...
2007-12-30T16:00:00Z 2007-12-30T16:05:00Z 11749 64588 GEORGIA Větrná bouře ...
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 ATLANTICKÝ JIH Okapová trouba ...
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Těžký déšť ...

Vyberte podmnožinu sloupců

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

StormEvents
| take 5
| project State, EventType, DamageProperty

Výstup

Stav Typ události PoškozeníVlastnosti
ATLANTICKÝ JIH Okapová trouba 0
FLORIDA Těžký déšť 0
FLORIDA Tornádo 6200000
GEORGIA Větrná bouře 2000
MISSISSIPPI Větrná bouře 20 000

Výpis jedinečných hodnot

Výsledky předchozího dotazu zobrazují více typů bouřek. Pomocí operátoru distinct zobrazte seznam všech jedinečných typů bouří.

StormEvents 
| distinct EventType

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

Typ události
Větrná bouře
Krupobití
Blesková povodeň
Sucho
Počasí v zimě
Zimní bouře
Silné sněžení
Velký vítr
Mráz/Ukotvení
Povodeň
...

Řazení výsledků

Pokud chcete zobrazit horní záplavy v Texasu, které způsobily největší škody, pomocí operátoru řazení uspořádejte řádky v sestupném pořadí 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

Počáteční čas Čas ukončení Stav Typ události PoškozeníVlastnosti
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Povodeň 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Povodeň 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Povodeň 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Povodeň 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Povodeň 750000
... ... ... ... ...

Filtrovat podle podmínky

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

Následující dotaz hledá bouřkové události v konkrétní State a konkrétní EventType.

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

Existuje 146 událostí, které splňují tyto podmínky. Tady je ukázka pěti z nich.

Počáteční čas Čas ukončení Stav Typ události PoškozeníVlastnosti
2007-01-13T08:45:00Z 2007-01-13T10:30:00Z TEXAS Povodeň 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Povodeň 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Povodeň 0
2007-01-15T22:00:00Z 2007-01-16T22:00:00Z TEXAS Povodeň 20 000
2007-03-12T02:30:00Z 2007-03-12T06:45:00Z TEXAS Povodeň 0
... ... ... ... ...

Filtrování podle data a časového rozsahu

K filtrování dat na základě konkrétního časového rozsahu použijte mezi operátorem.

Následující dotaz najde všechny události storm mezi 1. srpnem 2007 a 30. srpnem 2007 a jejich stavy, typy událostí, časy zahájení a časy ukončení. Dotaz seřadí výsledky vzestupně podle času zahájení.

StormEvents
| where StartTime between (datetime(2007-08-01 00:00:00) .. datetime(2007-08-30 23:59:59))
| project State, EventType, StartTime, EndTime
| sort by StartTime asc 

Výstup

Stav Eventype Počáteční čas Koncový čas
GEORGIA Nadměrné teplo 2007-08-01 00:00:00 2007-08-27 23:59:00
TENNESSEE Sucho 2007-08-01 00:00:00 2007-08-31 23:59:00
TENNESSEE Sucho 2007-08-01 00:00:00 2007-08-3123:59:00
JIŽNÍ KAROLÍNA Sucho 2007-08-01 00:00:00 2007-08-31 23:59:00
TENNESSEE Sucho 2007-08-01 00:00:00 2007-08-31 23:59:00
GEORGIA Nadměrné teplo 2007-08-01 00:00:00 2007-08-27 23:59:00
TENNESSEE Sucho 2007-08-01 00:00:00 2007-08-31 23:59:00
MINNESOTA Sucho 2007-08-01 00:00:00 2007-08-31 23:59:00
WISCONSIN Sucho 2007-08-01 00:00:00 2007-08-31 23:59:00
GEORGIA Nadměrné teplo 2007-08-01 00:00:00 2007-08-27 23:59:00
... ... ... ...

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

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

Následující dotaz vrátí pět záplav v Texasu, které zničily nejvíce majetku.

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

Výstup

Počáteční čas Čas ukončení Stav Typ události PoškozeníVlastnosti
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Povodeň 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Povodeň 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Povodeň 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Povodeň 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Povodeň 750000

Poznámka:

Pořadí operátorů je důležité. Pokud v tomto příkladu dáte top před where, získáte jiné výsledky. Každý operátor transformuje data v pořadí. Další informace najdete v tabulkových příkazech výrazů.

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

K vytvoření počítaných sloupců můžete použít operátory projekce a rozšíření.

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

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

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

Výstup

Počáteční čas Čas ukončení Doba trvání PoškozeníVlastnosti
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z 1.01:30:00 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z 12:00:00 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z 05:00:00 1000000
2007-06-27T00: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 záplava, která způsobila největší škody, byla také nejdelší záplava.

Použijte 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

Počáteční čas Čas ukončení ... Doba trvání
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z ... 1.01:30:00
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z ... 12:00:00
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z ... 05:00:00
2007-06-27T00: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 můžete statické mapování provést pomocí 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 Zdroj PřátelskéJméno
68796 Správce tísňového volání Veřejná
... ... ...
72609 Infrastrukturní společnost Privátní
... ... ...

Další krok

Teď, když znáte základy psaní dotazů Kusto, přejděte k dalšímu kurzu a zjistěte, jak pomocí agregačních funkcí získat hlubší přehled o datech.