Oefening: gegevens filteren met behulp van de where-operator

Voltooid

Zoals u weet, hebt u bepaalde kolommen gefilterd in of uit de weergegeven resultaten. In deze les leert u hoe u vragen kunt beantwoorden over welke soorten meteorologische gebeurtenissen hebben plaatsgevonden in verschillende regio's of periodes, en welke soorten gebeurtenissen schade hebben veroorzaakt.

where De operator gebruiken

Tot nu toe hebben alle operators die u hebt gebruikt, geselecteerde kolommen geretourneerd. Laten we nu eens kijken naar specifieke rijen van de gegevens.

De where operator filtert resultaten die voldoen aan een bepaalde voorwaarde. In dit eerste voorbeeld vergelijkt u een kolom met gehele getallen met een minimumwaarde met behulp van de numerieke operator groter dan (>). In het bijzonder wilt u alleen stormen zien die beschadigde eigenschap hebben, dus bekijkt u rijen met gegevens waar de schade aan eigendommen groter is dan nul.

  1. Voer de volgende query uit.

    De query uitvoeren

    StormEvents
    | where DamageProperty > 0
    | project State, EventType, DamageProperty
    | take 10
    
  2. U krijgt resultaten die eruitzien als de volgende afbeelding:

    Schermopname van queryresultaten van een where-operator met een numerieke operator van groter dan nul.

  3. U ziet dat alle geretourneerde rijen in feite DamageProperty-waarden hebben die groter zijn dan nul.

  4. Op dezelfde manier kunt u filteren waar de tijd van een gebeurtenis meer dan een bepaald aantal dagen geleden heeft plaatsgevonden. Voer bijvoorbeeld de volgende query uit, waarbij 365d dit 365 dagen betekent:

    De query uitvoeren

    StormEvents
    | where DamageProperty > 0
    | where StartTime > ago(365d)
    | project State, EventType, DamageProperty
    
  5. U ziet dat deze query geen resultaten oplevert. Omdat de gegevens afkomstig zijn uit 2007, zijn er geen records uit het afgelopen jaar.

Filteren met behulp van een tekenreekswaarde

Het lijkt erop dat een aantal soorten stormen schade hebben veroorzaakt door heel de VS. Laten we dat beperken tot stormen die zich op een bepaalde locatie hebben voorgedaan, zoals de staat Florida.

  1. Voer de volgende query uit, die gebruikmaakt van een tweede where operator met de tekenreekswaarde "FLORIDA":

    De query uitvoeren

    StormEvents
    | where DamageCrops > 0
    | where State == "FLORIDA"
    | project State, EventType, DamageCrops
    
  2. U krijgt resultaten die eruitzien als de volgende afbeelding:

    Schermopname van queryresultaten voor twee waar operators.

  3. U ziet dat alle records die door deze query worden geretourneerd, afkomstig zijn uit Florida en een bijsnijdschade hebben die groter is dan nul.

Filteren met behulp van de has operator

Een van de gebeurtenistypen in de resultaten van de laatste query heet Thunderstorm Wind. Laten we eens kijken of er andere soorten wind zijn die schade aan eigendommen in Florida hebben veroorzaakt. We zoeken naar een tekenreeksovereenkomst van met behulp van wind de has operator. De has operator is een hoofdlettergevoelige zoekopdracht die overeenkomt met een volledige term.

  1. Voer de volgende query uit.

    De query uitvoeren

    StormEvents
    | where DamageProperty > 0
    | where State == "FLORIDA"
    | where EventType has "wind"
    | project StartTime, EventType, DamageProperty
    
  2. U krijgt resultaten die eruitzien als de volgende afbeelding:

    Schermopname van queryresultaten voor waar en heeft operators.

  3. U ziet in de resultaten dat gebeurtenissen zoals tornado's niet meer verschijnen, maar De gebeurtenistypen Thunderstorm Wind en Strong Wind worden wel weergegeven.

De contains operator is vergelijkbaar met has, maar komt overeen met elke subtekenreeks. De volgende query retourneert bijvoorbeeld resultaten zoals Vriesmist en Vorst/Blokkeren.

StormEvents | where EventType contains "free"

De has operator is beter presterend dan de contains operator, dus u moet overal gebruiken has waar u een keuze hebt tussen de twee.

Filteren op datetime waarden

Laten we eens kijken naar de schade die in de eerste helft van het kalenderjaar is aangericht. Het kan handig zijn om uw zoekopdracht te beperken tot gebeurtenissen binnen een bepaald tijdsbereik. Sommige interfaces met Kusto-querytaal een vervolgkeuzelijst hebben, maar voor andere interfaces moet u het datumfilter opnemen in de query zelf.

Omdat tijdsbereiken worden gebonden door twee uitersten, is het het meest efficiënt om een query te maken waarin u een waarde kiest tussen deze twee keer.

De syntaxis voor het samenstellen van dit datumbereik is als volgt:

where Tijdbetween(datetime(waardewaarde)..datetime())

  1. Laten we dit datetime bereik opnemen in een soort query die u al hebt gezien. Voer de volgende query uit.

    De query uitvoeren

    StormEvents
    | where StartTime between (datetime(2007-01-01)..datetime(2007-06-01))
    | where DamageProperty > 0
    | where State == "FLORIDA"
    | project StartTime, EventType, DamageProperty
    | take 50
    
  2. U krijgt resultaten die eruitzien als de volgende afbeelding:

    Schermopname van queryresultaten voor waar operators met een tijdsbereik zijn opgenomen.

  3. U ziet dat alle datums binnen de eerste helft van het jaar liggen, maanden één tot zes. U ziet mogelijk ook dat, ook al hebt u gebeurtenissen uit de staat Florida geselecteerd, de status niet wordt weergegeven als een uitvoerkolom, omdat deze niet is opgegeven in de project operator.