Zelfstudie: Algemene operators leren

Kusto-querytaal (KQL) wordt gebruikt voor het schrijven van query's in Azure Data Explorer, Azure Monitor Log Analytics, Azure Sentinel en meer. Deze zelfstudie is een inleiding tot de essentiële KQL-operators die worden gebruikt voor het openen en analyseren van uw gegevens.

Zie Aan de slag met logboekquery's voor specifiekere richtlijnen voor het uitvoeren van query's op logboeken in Azure Monitor.

Notitie

Kunt u niet vinden wat u zoekt? Dit artikel is onlangs als volgt gesplitst:

In deze zelfstudie leert u het volgende:

In de voorbeelden in deze zelfstudie wordt de StormEvents tabel gebruikt, die openbaar beschikbaar is in het Help-cluster. Als u wilt verkennen met uw eigen gegevens, maakt u uw eigen gratis cluster.

Vereisten

  • Een Microsoft-account of Microsoft Entra gebruikersidentiteit om u aan te melden bij het Help-cluster

Rijen tellen

Begin met het gebruik van de operator Count om het aantal stormrecords in de StormEvents tabel te vinden.

StormEvents 
| count

Uitvoer

Count
59066

Een voorbeeld van gegevens bekijken

Als u een beeld wilt krijgen van de gegevens, gebruikt u de operator take om een voorbeeld van records weer te geven. Deze operator retourneert een opgegeven aantal willekeurige rijen uit de tabel, wat handig kan zijn voor het bekijken van een voorbeeld van de algemene gegevensstructuur en inhoud.

StormEvents 
| take 5

In de volgende tabel ziet u slechts 6 van de 22 geretourneerde kolommen. Voer de query uit om de volledige uitvoer te zien.

StartTime EndTime EpisodeId Eventid Staat 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 Onweerswind ...
2007-12-30T16:00:00Z 2007-12-30T16:05:00Z 11749 64588 GEORGIË Onweerswind ...
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 ATLANTISCHE ZUID Waterspout ...
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Zware regen ...

Een subset van kolommen selecteren

Gebruik de projectoperator om de weergave te vereenvoudigen en een specifieke subset van kolommen te selecteren. Het gebruik project is vaak efficiënter en gemakkelijker te lezen dan het weergeven van alle kolommen.

StormEvents
| take 5
| project State, EventType, DamageProperty

Uitvoer

Staat EventType DamageProperty
ATLANTISCHE ZUID Waterspout 0
FLORIDA Zware regen 0
FLORIDA Tornado 6200000
GEORGIË Onweerswind 2000
MISSISSIPPI Onweerswind 20.000

Unieke waarden weergeven

Het lijkt erop dat er meerdere soorten stormen zijn op basis van de resultaten van de vorige query. Gebruik de unieke operator om alle unieke stormtypen weer te geven.

StormEvents 
| distinct EventType

Er zijn 46 soorten stormen in de tabel. Hier volgt een voorbeeld van 10.

EventType
Onweerswind
Hagel
Flash Flood
Droogte
Winterweer
Winterstorm
Zware sneeuw
Hoge wind
Vorst/vriezen
Overstroming
...

Filteren op voorwaarde

De operator where filtert rijen met gegevens op basis van bepaalde criteria.

Met de volgende query wordt gezocht naar storm-gebeurtenissen in een specifieke State van een specifieke EventType.

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

Er zijn 146 gebeurtenissen die aan deze voorwaarden voldoen. Hier volgt een voorbeeld van 5.

StartTime EndTime Staat EventType DamageProperty
2007-01-13T08:45:00Z 2007-01-13T10:30:00Z TEXAS Overstroming 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Overstroming 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Overstroming 0
2007-01-15T22:00:00Z 2007-01-16T22:00:00Z TEXAS Overstroming 20.000
2007-03-12T02:30:00Z 2007-03-12T06:45:00Z TEXAS Overstroming 0
... ... ... ... ...

Resultaten sorteren

Als u de hoogste overstromingen in Texas wilt weergeven die de meeste schade hebben veroorzaakt, gebruikt u de sorteeroperator om de rijen in aflopende volgorde te rangschikken op basis van de DamageProperty kolom. De standaardsortoring is aflopend. Als u in oplopende volgorde wilt sorteren, geeft u ascop.

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

Uitvoer

StartTime EndTime Staat EventType DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Overstroming 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Overstroming 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Overstroming 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Overstroming 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Overstroming 750000
... ... ... ... ...

De bovenste n rijen ophalen

De bovenste operator retourneert de eerste n rijen gesorteerd op de opgegeven kolom.

De volgende query retourneert de vijf overstromingen in Texas die de meest beschadigde eigenschap hebben veroorzaakt.

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

Uitvoer

StartTime EndTime Staat EventType DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Overstroming 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Overstroming 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Overstroming 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Overstroming 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Overstroming 750000

Notitie

De volgorde van de operators is belangrijk. Als u hier voor where plaatsttop, krijgt u verschillende resultaten. Dit komt doordat de gegevens door elke operator in volgorde worden getransformeerd. Zie instructies voor tabellaire expressies voor meer informatie.

Berekende kolommen maken

De project - en uitbreidingsoperatoren kunnen beide berekende kolommen maken.

Gebruik project om alleen de kolommen op te geven die u wilt weergeven en gebruik extend om de berekende kolom toe te voegen aan het einde van de tabel.

Met de volgende query maakt u een berekende Duration kolom met het verschil tussen de StartTime en EndTime. Omdat we slechts enkele geselecteerde kolommen willen weergeven, is het project in dit geval de beste keuze.

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

Uitvoer

StartTime EndTime Duur 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

Als u de berekende Duration kolom bekijkt, ziet u mogelijk dat de overstroming die de meeste schade heeft veroorzaakt, ook de langste overstroming was.

Gebruik extend deze optie om de berekende Duration kolom samen met alle andere kolommen weer te geven. De Duration kolom wordt toegevoegd als laatste kolom.

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

Uitvoer

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

Waarden toewijzen van de ene set aan een andere

Statische toewijzing is een handige techniek voor het wijzigen van de presentatie van uw resultaten. In KQL kunt u statische toewijzingen uitvoeren door een dynamische woordenlijst en accessors te gebruiken om waarden van de ene set aan de andere toe te wijzen.

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

Uitvoer

Eventid Bron FriendlyName
68796 Manager voor noodgevallen Openbaar
... ... ...
72609 Nutsbedrijf Privé
... ... ...

Volgende stap

Nu u bekend bent met de basisprincipes van het schrijven van Kusto-query's, gaat u verder met de volgende zelfstudie en leert u hoe u aggregatiefuncties gebruikt om meer inzicht te krijgen in uw gegevens.