Handledning: Lär dig vanliga operatorer
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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:
- Lär dig vanliga operatorer (den här artikeln)
- Använd sammansättningsfunktioner
- Koppla data från flera tabeller
- Skapa geospatiala visualiseringar
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.