Øvelse – Filtrere data ved hjelp av hvor operatoren

Fullført

Husk at du har filtrert bestemte kolonner inn eller ut av resultatene som vises. I denne enheten lærer du hvordan du svarer på spørsmål om hva slags meteorologiske hendelser som fant sted i forskjellige områder eller tidsrom, og hvilke typer hendelser som forårsaket skade.

Bruk operatoren where

Frem til nå har alle operatorene du har brukt, returnert valgte kolonner. La oss nå ta en titt på bestemte rader i dataene.

Operatoren where filtrerer resultater som oppfyller en bestemt betingelse. I dette første eksemplet sammenligner du en heltallskolonne med en minimumsverdi ved hjelp av den numeriske operatoren større enn (>). Spesielt vil du bare se stormer som skadet egenskap, så du vil se på rader med data der skaden på egenskapen er større enn null.

  1. Kjør følgende spørring:

    Kjør spørringen

    StormEvents
    | where DamageProperty > 0
    | project State, EventType, DamageProperty
    | take 10
    
  2. Du bør få resultater som ser ut som følgende bilde:

    Skjermbilde av spørringsresultatene for en der operator med en numerisk operator som er større enn null.

  3. Legg merke til at alle returnerte rader faktisk har DamageProperty verdier som er større enn null.

  4. På samme måte kan du filtrere hvor tidspunktet for en hendelse oppstod for mer enn et bestemt antall dager siden. Kjør for eksempel følgende spørring, der 365d betyr 365 dager:

    Kjør spørringen

    StormEvents
    | where DamageProperty > 0
    | where StartTime > ago(365d)
    | project State, EventType, DamageProperty
    
  5. Legg merke til at denne spørringen ikke returnerer noen resultater. Fordi dataene er fra 2007, er det ingen poster fra det siste året.

Filtrere ved hjelp av en strengverdi

Det ser ut til at ganske mange typer stormer har forårsaket skade over hele USA. La oss begrense det til stormer som skjedde på et bestemt sted, som delstaten Florida.

  1. Kjør følgende spørring, som bruker en annen where operator med strengverdien "FLORIDA":

    Kjør spørringen

    StormEvents
    | where DamageCrops > 0
    | where State == "FLORIDA"
    | project State, EventType, DamageCrops
    
  2. Du bør få resultater som ser ut som følgende bilde:

    Skjermbilde av spørringsresultater for to operatorer.

  3. Legg merke til at alle poster som returneres fra denne spørringen, er fra Florida og har beskjæringsskader som er større enn null.

Filtrer ved hjelp av operatoren has

En av hendelsestypene i resultatene for den siste spørringen kalles tordenværsvind. La oss se om det er noen andre typer vind som forårsaket skade på eiendom i Florida. Vi søker etter en streng med wind ved hjelp av operatoren has. Operatoren has er et søk som ikke skiller mellom store og små bokstaver, som samsvarer med hele termen.

  1. Kjør følgende spørring:

    Kjør spørringen

    StormEvents
    | where DamageProperty > 0
    | where State == "FLORIDA"
    | where EventType has "wind"
    | project StartTime, EventType, DamageProperty
    
  2. Du bør få resultater som ser ut som følgende bilde:

    Skjermbilde av spørringsresultater for hvor og har operatorer.

  3. Legg merke til i resultatene at hendelser som tornadoer ikke lenger vises, men Tordenvær Wind og Strong Wind hendelsestyper vises.

Operatoren contains ligner på has, men den samsvarer med alle delstrenger. Følgende spørring returnerer for eksempel resultater som Frysing av tåke og Frost/Frys.

StormEvents | where EventType contains "free"

Operatoren has er mer utførlig enn operatoren contains, så du bør bruke has uansett hvor du har et valg mellom de to.

Filtrere etter datetime verdier

La oss se nærmere på skaden som ble gjort i første halvdel av kalenderåret. Det kan være nyttig å begrense søket til hendelser innenfor et bestemt tidsintervall. Noen grensesnitt med Kusto-spørringsspråk har en rullegardintidsvelger, men andre krever at du innlemmer datofilteret i selve spørringen.

Siden tidsområder er bundet av to ytterpunkter, er det mest effektivt å konstruere en spørring der du velger en verdi som er mellom disse to gangene.

Syntaksen for å konstruere dette datointervallet er som følger:

where tidbetween(datetime(verdi)..datetime(verdi))

  1. La oss innlemme dette datetime området i en type spørring du allerede har sett. Kjør følgende spørring:

    Kjør spørringen

    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 som ser ut som følgende bilde:

    Skjermbilde av spørringsresultater for hvor operatorer som inkluderer et tidsintervall.

  3. Legg merke til at alle datoene er innenfor første halvdel av året, måneder én til seks. Du legger kanskje også merke til at selv om du har valgt hendelser fra delstaten Florida, vises ikke tilstanden som en utdatakolonne, fordi den ikke ble angitt i operatoren project.