Självstudie: Lär dig vanliga operatorer

Kusto-frågespråk (KQL) används för att skriva frågor i Azure Data Explorer, Azure Monitor Log Analytics, Azure Sentinel med mera. Den här självstudien är en introduktion till de viktiga KQL-operatorerna som används för att komma åt och analysera dina data.

Mer specifik vägledning om hur du frågar efter loggar i Azure Monitor finns i Komma igång med loggfrågor.

Anteckning

Hittar du inte det du letar efter? Den här artikeln har nyligen delats upp på följande sätt:

I den här självstudien får du lära dig att:

Exemplen i den här självstudien StormEvents använder tabellen, som är offentligt tillgänglig i hjälpklustret. Om du vill utforska med dina egna data skapar du ett eget kostnadsfritt kluster.

Förutsättningar

  • Ett Microsoft-konto eller en Microsoft Entra användaridentitet för att logga in på hjälpklustret

Räkna rader

Börja med att använda taloperatorn för att hitta antalet stormposter i StormEvents tabellen.

StormEvents 
| count

Resultat

Antal
59066

Se ett dataexempel

Om du vill få en uppfattning om data använder du take-operatorn för att visa ett urval av poster. Den här operatorn returnerar ett angivet antal godtyckliga rader från tabellen, vilket kan vara användbart för att förhandsgranska den allmänna datastrukturen och innehållet.

StormEvents 
| take 5

Följande tabell visar endast 6 av de 22 returnerade kolumnerna. Kör frågan om du vill se fullständiga utdata.

StartTime EndTime EpisodeId EventID Tillstånd Eventtype ...
2007-09-20T21:57:00Z 2007-09-20T22:05:00Z 11078 60913 FLORIDA Tornado ...
2007-12-20T07:50:00Z 2007-12-20T07:53:00Z 12554 68796 MISSISSIPPI Åska vind ...
2007-12-30T16:00:00Z 2007-12-30T16:05:00Z 11749 64588 GEORGIEN Åska vind ...
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 SYDATLANT Vattenspout ...
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Kraftigt regn ...

Välj en delmängd av kolumner

Använd projektoperatorn för att förenkla vyn och välja en viss delmängd av kolumnerna. Att använda project är ofta mer effektivt och enklare att läsa än att visa alla kolumner.

StormEvents
| take 5
| project State, EventType, DamageProperty

Resultat

Tillstånd Eventtype DamageProperty
SYDATLANT Vattenspout 0
FLORIDA Kraftigt regn 0
FLORIDA Tornado 6200000
GEORGIEN Åska vind 2000
MISSISSIPPI Åska vind 20000

Lista unika värden

Det verkar som om det finns flera typer av stormar baserat på resultatet av föregående fråga. Använd operatorn distinct för att visa en lista över alla unika stormtyper.

StormEvents 
| distinct EventType

Det finns 46 typer av stormar i tabellen. Här är ett exempel på 10 av dem.

Eventtype
Åska vind
Hagel
Flash Flood
Torka
Vinterväder
Vinterstorm
Tung snö
Hög vind
Frost/frysning
Översvämning
...

Filtrera efter villkor

Where-operatorn filtrerar rader med data baserat på vissa kriterier.

Följande fråga söker efter stormhändelser i en specifik State för en specifik EventType.

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

Det finns 146 händelser som matchar dessa villkor. Här är ett exempel på 5 av dem.

StartTime EndTime Tillstånd Eventtype DamageProperty
2007-01-13T08:45:00Z 2007-01-13T10:30:00Z TEXAS Översvämning 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Översvämning 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Översvämning 0
2007-01-15T22:00:00Z 2007-01-16T22:00:00Z TEXAS Översvämning 20000
2007-03-12T02:30:00Z 2007-03-12T06:45:00Z TEXAS Översvämning 0
... ... ... ... ...

Sortera resultat

Om du vill visa de vanligaste översvämningarna i Texas som orsakade mest skada använder du sorteringsoperatorn för att ordna raderna i fallande ordning baserat på DamageProperty kolumnen. Standardsorteringsordningen är fallande. Om du vill sortera i stigande ordning anger du asc.

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

Resultat

StartTime EndTime Tillstånd Eventtype DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Översvämning 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Översvämning 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Översvämning 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Översvämning 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Översvämning 750000
... ... ... ... ...

Hämta de översta n raderna

Operatorn top returnerar de första n raderna sorterade efter den angivna kolumnen.

Följande fråga returnerar de fem Översvämningar i Texas som orsakade den mest skadade egenskapen.

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

Resultat

StartTime EndTime Tillstånd Eventtype DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Översvämning 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Översvämning 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Översvämning 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Översvämning 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Översvämning 750000

Anteckning

Ordningen på operatorerna är viktig. Om du lägger till top tidigare where här får du olika resultat. Det beror på att data transformeras av varje operator i ordning. Mer information finns i tabelluttrycksinstruktioner.

Skapa beräknade kolumner

Både projekt- och utöka-operatorerna kan skapa beräknade kolumner.

Använd project för att endast ange de kolumner som du vill visa och använd extend för att lägga till den beräknade kolumnen i slutet av tabellen.

Följande fråga skapar en beräknad Duration kolumn med skillnaden mellan StartTime och EndTime. Eftersom vi bara vill visa några få utvalda kolumner är det bättre att använda project i det här fallet.

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

Resultat

StartTime EndTime Varaktighet DamageProperty
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

Om du tar en titt på den beräknade Duration kolumnen kanske du märker att översvämningen som orsakade flest skador också var den längsta översvämningen.

Använd extend för att visa den beräknade Duration kolumnen tillsammans med alla andra kolumner. Kolumnen Duration läggs till som den sista kolumnen.

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

Resultat

StartTime EndTime ... Varaktighet
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

Mappa värden från en uppsättning till en annan

Statisk mappning är en användbar teknik för att ändra presentationen av dina resultat. I KQL är ett sätt att utföra statisk mappning att använda en dynamisk ordlista och accessorer för att mappa värden från en uppsättning till en annan.

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

Resultat

EventID Källa FriendlyName
68796 Emergency Manager Offentliga
... ... ...
72609 Verktygsföretag Privat
... ... ...

Nästa steg

Nu när du är bekant med det viktigaste med att skriva Kusto-frågor går du vidare till nästa självstudie och lär dig hur du använder aggregeringsfunktioner för att få djupare inblick i dina data.