Øvelse – Filtrer data ved hjælp af operatoren where

Fuldført

Husk, at du har filtreret bestemte kolonner ind eller ud af de viste resultater. I dette undermodul lærer du, hvordan du besvarer spørgsmål om, hvilke slags meteorologiske hændelser der fandt sted i forskellige områder eller tidsrum, og hvilke typer hændelser der forårsagede skade.

Brug operatoren where

Indtil nu har alle de operatorer, du har brugt, returneret de valgte kolonner. Lad os se nærmere på bestemte rækker i dataene.

Operatoren where filtrerer resultater, der opfylder en bestemt betingelse. I dette første eksempel skal du sammenligne en heltalskolonne med en minimumværdi ved hjælp af den numeriske operator større end (>). Specifikt vil du kun se storme, der er beskadiget, så du skal se på rækker med data, hvor skaden på egenskaben er større end nul.

  1. Kør følgende forespørgsel:

    Kør forespørgslen

    StormEvents
    | where DamageProperty > 0
    | project State, EventType, DamageProperty
    | take 10
    
  2. Du bør få resultater, der ligner følgende billede:

    Skærmbillede af forespørgselsresultater for en where-operator med en numerisk operator på større end nul.

  3. Bemærk, at alle returnerede rækker faktisk har DamageProperty- værdier, der er større end nul.

  4. På samme måde kan du filtrere, hvor tidspunktet for en hændelse fandt sted for mere end et bestemt antal dage siden. Kør f.eks. følgende forespørgsel, hvor 365d betyder 365 dage:

    Kør forespørgslen

    StormEvents
    | where DamageProperty > 0
    | where StartTime > ago(365d)
    | project State, EventType, DamageProperty
    
  5. Bemærk, at denne forespørgsel ikke returnerer nogen resultater. Da dataene er fra 2007, er der ingen poster fra det seneste år.

Filtrer ved hjælp af en strengværdi

Det ser ud til, at en hel del storme har forårsaget skader over hele USA. Lad os indsnævre det til storme, der skete et bestemt sted, som staten Florida.

  1. Kør følgende forespørgsel, som bruger en anden where operator med strengværdien "FLORIDA":

    Kør forespørgslen

    StormEvents
    | where DamageCrops > 0
    | where State == "FLORIDA"
    | project State, EventType, DamageCrops
    
  2. Du bør få resultater, der ligner følgende billede:

    Skærmbillede af forespørgselsresultater for to where-operatorer.

  3. Bemærk, at alle poster, der returneres fra denne forespørgsel, er fra Florida og har beskadigelse af afgrøden større end nul.

Filtrer ved hjælp af operatoren has

En af hændelsestyperne i den sidste forespørgsels resultater kaldes Thunderstorm Wind. Lad os se, om der er andre former for vind, der forårsagede ejendomsskader i Florida. Vi søger efter et strengmatch af wind ved hjælp af operatoren has. Operatoren has er en søgning, hvor der ikke skelnes mellem store og små bogstaver, der stemmer overens med et fuldt ord.

  1. Kør følgende forespørgsel:

    Kør forespørgslen

    StormEvents
    | where DamageProperty > 0
    | where State == "FLORIDA"
    | where EventType has "wind"
    | project StartTime, EventType, DamageProperty
    
  2. Du bør få resultater, der ligner følgende billede:

    Skærmbillede af forespørgselsresultater for hvor og har operatorer.

  3. Bemærk i resultaterne, at hændelser som tornadoer ikke længere vises, men Thunderstorm Wind og Strong Wind hændelsestyper vises.

Operatoren contains svarer til has, men den svarer til en hvilken som helst understreng. Følgende forespørgsel returnerer f.eks. resultater som f.eks. Frost tåge og Frost/Frys.

StormEvents | where EventType contains "free"

Operatoren has er mere effektiv end operatoren contains, så du skal bruge has, uanset hvor du har mulighed for at vælge mellem de to.

Filtrer efter datetime værdier

Lad os se nærmere på de skader, der er sket i første halvdel af kalenderåret. Det kan være nyttigt at begrænse søgningen til hændelser inden for et bestemt tidsinterval. Nogle grænseflader med Kusto Query Language har en rullelistetidsvælger, men andre kræver, at du inkorporerer datofilteret i selve forespørgslen.

Da tidsintervaller er afgrænset af to yderpunkter, er det mest effektivt at konstruere en forespørgsel, hvor du vælger en værdi, der er mellem disse to gange.

Syntaksen for oprettelse af dette datointerval er som følger:

where between (datetime( værdi for klokkeslæt)..datetime())

  1. Lad os inkorporere dette datetime område i en slags forespørgsel, du allerede har set. Kør følgende forespørgsel:

    Kør forespørgslen

    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. Du bør få resultater, der ligner følgende billede:

    Skærmbillede af forespørgselsresultater for, hvor operatorer, der indeholder et tidsinterval.

  3. Bemærk, at alle datoerne er inden for første halvdel af året, måneder 1-6. Du kan også se, at selvom du har valgt hændelser fra staten Florida, vises staten ikke som en outputkolonne, fordi den ikke er angivet i operatoren project.