Ćwiczenie — filtrowanie danych przy użyciu operatora where

Ukończone

Pamiętaj, że niektóre kolumny zostały przefiltrowane w wyświetlonych wynikach lub poza nie. W tej lekcji dowiesz się, jak odpowiedzieć na pytania dotyczące tego, jakie rodzaje zdarzeń meteorologicznych miały miejsce w różnych regionach lub przedziałach czasu oraz jakie typy zdarzeń spowodowały szkody.

where Korzystanie z operatora

Do tego momentu wszystkie użyte operatory zwróciły wybrane kolumny. Teraz przyjrzyjmy się konkretnym wierszom danych.

Operator where filtruje wyniki spełniające określony warunek. W tym pierwszym przykładzie porównasz kolumnę całkowitą z minimalną wartością przy użyciu operatora liczbowego większego niż (>). W szczególności chcesz zobaczyć tylko burze, które uszkodziły właściwość, więc przyjrzysz się wierszom danych, w których uszkodzenie nieruchomości jest większe niż zero.

  1. Uruchom poniższe zapytanie:

    Uruchamianie zapytania

    StormEvents
    | where DamageProperty > 0
    | project State, EventType, DamageProperty
    | take 10
    
  2. Powinny zostać wyświetlone wyniki, które wyglądają jak na poniższej ilustracji:

    Zrzut ekranu przedstawiający wyniki zapytania operatora where z operatorem liczbowym większym niż zero.

  3. Zwróć uwagę, że wszystkie zwrócone wiersze mają w rzeczywistości wartości DamageProperty większe niż zero.

  4. Podobnie można filtrować czas wystąpienia zdarzenia więcej niż określoną liczbę dni temu. Na przykład uruchom następujące zapytanie, gdzie 365d oznacza 365 dni:

    Uruchamianie zapytania

    StormEvents
    | where DamageProperty > 0
    | where StartTime > ago(365d)
    | project State, EventType, DamageProperty
    
  5. Zwróć uwagę, że to zapytanie nie zwraca żadnych wyników. Ponieważ dane pochodzą z 2007 r., nie ma żadnych rekordów z ostatniego roku.

Filtrowanie przy użyciu wartości ciągu

Wygląda na to, że kilka rodzajów burz spowodowały szkody w całym USA. Zawęźmy to do burz, które miały miejsce w określonej lokalizacji, jak stan Florydy.

  1. Uruchom następujące zapytanie, które używa drugiego where operatora z wartością "FLORIDA"ciągu :

    Uruchamianie zapytania

    StormEvents
    | where DamageCrops > 0
    | where State == "FLORIDA"
    | project State, EventType, DamageCrops
    
  2. Powinny zostać wyświetlone wyniki, które wyglądają jak na poniższej ilustracji:

    Zrzut ekranu przedstawiający wyniki zapytania dla dwóch operatorów.

  3. Zwróć uwagę, że wszystkie rekordy zwrócone z tego zapytania pochodzą z Florydy i mają uszkodzenia upraw większe niż zero.

Filtrowanie przy użyciu has operatora

Jednym z typów zdarzeń w wynikach ostatniego zapytania jest nazwany Thunderstorm Wind. Sprawdźmy, czy istnieją inne rodzaje wiatru, które spowodowały szkody w nieruchomości na Florydzie. Wyszukamy dopasowanie wind ciągu przy użyciu has operatora . Operator has jest wyszukiwaniem bez uwzględniania wielkości liter, które pasuje do pełnego terminu.

  1. Uruchom poniższe zapytanie:

    Uruchamianie zapytania

    StormEvents
    | where DamageProperty > 0
    | where State == "FLORIDA"
    | where EventType has "wind"
    | project StartTime, EventType, DamageProperty
    
  2. Powinny zostać wyświetlone wyniki, które wyglądają jak na poniższej ilustracji:

    Zrzut ekranu przedstawiający wyniki zapytania dla lokalizacji i zawiera operatory.

  3. Zwróć uwagę, że w wynikach zdarzenia takie jak tornada nie pojawiają się już, ale pojawiają się typy zdarzeń Thunderstorm Wind i Strong Wind .

Operator contains jest podobny do has, ale pasuje do dowolnego podciągu. Na przykład następujące zapytanie zwraca wyniki, takie jak Mroźna mgła i Frost/Freeze.

StormEvents | where EventType contains "free"

Operator has jest bardziej wydajny niż contains operator, dlatego należy użyć has niezależnie od tego, gdzie masz wybór między nimi.

Filtrowanie według datetime wartości

Przyjrzyjmy się bliżej szkodom wyrządzonym w pierwszej połowie roku kalendarzowego. Może być przydatne ograniczenie wyszukiwania do zdarzeń w określonym zakresie czasu. Niektóre interfejsy z język zapytań Kusto mają selektor czasu listy rozwijanej, ale inne wymagają włączenia filtru daty do samego zapytania.

Ponieważ zakresy czasu są ograniczone przez dwie skrajności, najbardziej wydajne jest konstruowanie zapytania, w którym wybierasz wartość między tymi dwoma razy.

Składnia tworzenia tego zakresu dat jest następująca:

whereGodzina between (datetime(wartość wartości)..datetime())

  1. Dołączmy ten datetime zakres do rodzaju zapytania, które zostało już wyświetlone. Uruchom poniższe zapytanie:

    Uruchamianie zapytania

    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. Powinny zostać wyświetlone wyniki, które wyglądają jak na poniższej ilustracji:

    Zrzut ekranu przedstawiający wyniki zapytania, gdzie operatory, które zawierają zakres czasu.

  3. Zwróć uwagę, że wszystkie daty znajdują się w pierwszej połowie roku, od jednego do sześciu miesięcy. Możesz również zauważyć, że mimo że wybrano zdarzenia ze stanu Floryda, stan nie jest wyświetlany jako kolumna danych wyjściowych, ponieważ nie został określony w project operatorze.