Dela via


Handledning: Lär dig vanliga operatorer

Gäller för: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Kusto Query Language (KQL) används för att skriva frågor i Azure Data Explorer, Azure Monitor Log Analytics, Azure Sentinelmed mera. Handledningen är en introduktion till de viktiga KQL-operatorer som används för att komma åt och analysera din data.

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

Not

Hittar du inte det du letar efter? Den här artikeln delades nyligen 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 använder tabellen StormEvents, som är offentligt tillgänglig i hjälp kluster. Om du vill utforska med dina egna data, skapa ett eget kostnadsfritt kluster.

Exemplen i den här självstudien använder tabellen StormEvents, som är offentligt tillgänglig i Väderanalysexempeldata.

Förutsättningar

Om du vill köra följande frågor behöver du en frågemiljö med åtkomst till exempeldata. Du kan använda något av följande:

  • Ett Microsoft-konto eller en Microsoft Entra-användaridentitet för att logga in på hjälpkluster
  • Ett Microsoft-konto eller Entra-användaridentitet
  • En Fabric-arbetsyta med Microsoft Fabric-aktiverad kapacitet

Antal rader

Börja med att använda operatorn antal för att hitta hur många stormposter som finns i tabellen StormEvents.

StormEvents 
| count

utdata

Räkna
59066

Se ett exempel på data

För att få en uppfattning om datan, använd ta operatorn för att se 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

I följande tabell visas bara fem av de 22 returnerade kolumnerna. Kör frågan för att se hela utdata.

Starttid Sluttid EpisodeId EventId Stat Händelsetyp ...
2007-09-20T21:57:00Z 2007-09-20T22:05:00Z 11078 60913 FLORIDA Tromb ...
2007-12-20T07:50:00Z 2007-12-20T07:53:00Z 12554 68796 MISSISSIPPI Åskvädersvind ...
2007-12-30T16:00:00Z 2007-12-30T16:05:00Z 11749 64588 GEORGIEN Åskstormvind ...
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 ATLANTEN, SÖDRA 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 operatorn projekt för att förenkla vyn och välja en specifik delmängd av kolumner. Att använda project är ofta effektivare och enklare att läsa än att visa alla kolumner.

StormEvents
| take 5
| project State, EventType, DamageProperty

utdata

Tillstånd Händelsetyp SkadeEgenskap
Södra Atlanten Vattenspout 0
FLORIDA Kraftigt regn 0
FLORIDA Tromb 6200000
GEORGIEN Åskvind 2000
MISSISSIPPI Åskvind 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 den särskilda operatorn för att lista alla unika stormtyper.

StormEvents 
| distinct EventType

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

Händelsetyp
Åskvädersvind
Hagel
Plötslig översvämning
Torka
Vinterväder
Vinterstorm
Tung snö
Hög vind
Frost/kyla
Översvämning
...

Sortera resultat

Om du vill visa de vanligaste översvämningarna i Texas som orsakade mest skada använder du operatorn sortera för att ordna raderna i fallande ordning baserat på kolumnen DamageProperty. 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

utdata

Starttid Sluttid Stat Händelsetyp SkadaEgenskap
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
... ... ... ... ...

Filtrera efter villkor

Den där-operatorn filtrerar rader med data baserat på vissa kriterier.

Följande fråga söker efter stormhändelser i en specifik State och i 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.

Starttid Sluttid Stat Händelsetyp Skadeegenskap
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
... ... ... ... ...

Filtrera efter datum och tidsintervall

Använd mellan operatorn för att filtrera data baserat på ett visst tidsintervall.

Följande fråga hittar alla stormhändelser mellan 1 augusti 2007 och 30 augusti 2007, tillsammans med deras tillstånd, händelsetyper, start- och sluttider. Resultatet sorteras sedan i stigande ordning efter starttid.

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 

utdata

Stat Eventype Starttid Sluttid
GEORGIEN Överdriven värme 2007-08-01 00:00:00 2007-08-27 23:59:00
TENNESSEE Torka 2007-08-01 00:00:00 2007-08-31 23:59:00
TENNESSEE Torka 2007-08-01 00:00:00 2007-08-3123:59:00
SOUTH CAROLINA Torka 2007-08-01 00:00:00 2007-08-31 23:59:00
TENNESSEE Torka 2007-08-01 00:00:00 2007-08-31 23:59:00
GEORGIEN Överdriven värme 2007-08-01 00:00:00 2007-08-27 23:59:00
TENNESSEE Torka 2007-08-01 00:00:00 2007-08-31 23:59:00
MINNESOTA Torka 2007-08-01 00:00:00 2007-08-31 23:59:00
WISCONSIN Torka 2007-08-01 00:00:00 2007-08-31 23:59:00
GEORGIEN Överdriven värme 2007-08-01 00:00:00 2007-08-27 23:59:00
... ... ... ...

Hämta de översta n raderna

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

Följande fråga returnerar de fem Texas-översvämningarna som orsakade mest skadad egendom.

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

utdata

Starttid Sluttid Stat Händelsetyp Skadeegenskap
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

Notera

Ordningen på operatorerna är viktig. Om du lägger top innan du where här får du olika resultat. Anledningen är att datan transformeras av varje operatör i tur och ordning. För att lära dig mer, se tabelluttrycksutlåtanden.

Skapa beräknade kolumner

projektet och utöka operatorer kan både skapa beräknade kolumner.

Använd project om du bara vill ange de kolumner som du vill visa och använda 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

Utdata

Starttid Sluttid Varaktighet SkadeEgenskap
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 kolumnen Duration kanske du märker att översvämningen som orsakade mest skada var också den längsta.

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

Utdata

Starttid Sluttid ... 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]

utdata

EventId Källa vänligt namn
68796 Krischef Offentlig
... ... ...
72609 Kraftföretag Privat
... ... ...

Nästa steg

Nu när du är bekant med grunderna i att skriva Kusto-frågor kan du gå vidare till nästa lektion och lära dig hur du använder aggregeringsfunktioner för att få djupare insikt i dina data.