Alıştırma - Where işlecini kullanarak verileri filtreleme

Tamamlandı

Görüntülenen sonuçlarda belirli sütunları filtrelediğiniz veya filtrelediğiniz anımsayın. Bu ünitede farklı bölgelerde veya zaman dilimlerinde ne tür meteorolojik olayların gerçekleştiği ve hangi tür olayların hasara neden olduğu hakkındaki soruları nasıl yanıtlayacağınızı öğreneceksiniz.

işlecini where kullanma

Bu noktaya kadar, kullandığınız tüm işleçler seçili sütunları döndürdü. Şimdi verilerin belirli satırlarına göz atalım.

işleç, where belirli bir koşulu karşılayan sonuçları filtreler. Bu ilk örnekte, (>) değerinden büyük sayısal işlecini kullanarak bir tamsayı sütununu en düşük değerle karşılaştıracaksınız. Özellikle, yalnızca özelliği zarar gören fırtınaları görmek istiyorsunuz, bu nedenle özellikte oluşan hasarın sıfırdan büyük olduğu veri satırlarına bakacaksınız.

  1. Aşağıdaki sorguyu çalıştırın:

    Sorguyu çalıştırma

    StormEvents
    | where DamageProperty > 0
    | project State, EventType, DamageProperty
    | take 10
    
  2. Aşağıdaki görüntüye benzer sonuçlar almalısınız:

    Screenshot of query results of a where operator with a numerical operator of greater than zero.

  3. Döndürülen tüm satırların aslında DamageProperty değerlerinin sıfırdan büyük olduğuna dikkat edin.

  4. Benzer şekilde, bir olayın gerçekleştiği zamanı belirli bir günden daha uzun bir süre önce filtreleyebilirsiniz. Örneğin, 365 gün anlamına gelen 365d aşağıdaki sorguyu çalıştırın:

    Sorguyu çalıştırma

    StormEvents
    | where DamageProperty > 0
    | where StartTime > ago(365d)
    | project State, EventType, DamageProperty
    
  5. Bu sorguda sonuç döndürüldüğüne dikkat edin. Veriler 2007'ye ait olduğundan, geçen yıla ait kayıt yok.

Dize değeri kullanarak filtreleme

Görünüşe göre birkaç tür fırtına ABD'nin her yerinde hasara neden olmuş. Bunu Florida eyaleti gibi belirli bir yerde gerçekleşen fırtınalara göre daraltalım.

  1. Dize değeriyle "FLORIDA"ikinci where bir işleç kullanan aşağıdaki sorguyu çalıştırın:

    Sorguyu çalıştırma

    StormEvents
    | where DamageCrops > 0
    | where State == "FLORIDA"
    | project State, EventType, DamageCrops
    
  2. Aşağıdaki görüntüye benzer sonuçlar almalısınız:

    Screenshot of query results for two where operators.

  3. Bu sorgudan döndürülen tüm kayıtların Florida'dan olduğuna ve ekin hasarının sıfırdan büyük olduğuna dikkat edin.

işlecini has kullanarak filtreleme

Son sorgunun sonuçlarındaki olay türlerinden biri Thunderstorm Wind olarak adlandırılır. Florida'da mal hasarına neden olan başka rüzgar var mı bir bakalım. işlecini kullanarak dize eşleşmesinde wind arama yapacağız has . işleci has , tam bir terimle eşleşen büyük/küçük harfe duyarlı olmayan bir aramadır.

  1. Aşağıdaki sorguyu çalıştırın:

    Sorguyu çalıştırma

    StormEvents
    | where DamageProperty > 0
    | where State == "FLORIDA"
    | where EventType has "wind"
    | project StartTime, EventType, DamageProperty
    
  2. Aşağıdaki görüntüye benzer sonuçlar almalısınız:

    Screenshot of query results for where and has operators.

  3. Sonuçlarda kasırga gibi olayların artık görünmediğini, ancak Fırtına Rüzgarı ve Güçlü Rüzgar olay türlerinin göründüğüne dikkat edin.

işleci contains ile hasbenzerdir, ancak herhangi bir alt dizede eşleşir. Örneğin, aşağıdaki sorgu Donma sis ve Donma/Donma gibi sonuçlar döndürür.

StormEvents | where EventType contains "free"

işleç has , işleçten contains daha yüksek performanslıdır, bu nedenle ikisi arasında seçim yapmanız gereken her yerde kullanmanız has gerekir.

Değerlere göre datetime filtreleme

Şimdi takvim yılının ilk yarısında oluşan hasara daha yakından bakalım. Aramanızı belirli bir zaman aralığındaki olaylarla sınırlamak yararlı olabilir. Kusto Sorgu Dili olan bazı arabirimlerin açılan zaman seçicisi vardır, ancak bazıları tarih filtresini sorgunun kendisine eklemenizi gerektirir.

Zaman aralıkları iki uç noktayla sınırlandığından, bu iki kez arasında bir değer seçtiğiniz bir sorgu oluşturmak en verimli yöntemdir.

Bu tarih aralığını oluşturmak için söz dizimi aşağıdaki gibidir:

wheresaat(datetime(betweendeğeri değeri)..datetime())

  1. Şimdi bu datetime aralığı daha önce gördüğünüz bir sorgu türüne ekleyelim. Aşağıdaki sorguyu çalıştırın:

    Sorguyu çalıştırma

    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. Aşağıdaki görüntüye benzer sonuçlar almalısınız:

    Screenshot of query results for where operators that include a time range.

  3. Tüm tarihlerin yılın ilk yarısında( bir ile altı ay arasında) olduğuna dikkat edin. Florida eyaletinden olayları seçmiş olsanız bile işleçte project belirtilmediğinden eyaletin çıkış sütunu olarak görünmediğini de fark edebilirsiniz.