Alıştırma - Where işlecini kullanarak verileri filtreleme
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.
Aşağıdaki sorguyu çalıştırın:
StormEvents | where DamageProperty > 0 | project State, EventType, DamageProperty | take 10
Aşağıdaki görüntüye benzer sonuçlar almalısınız:
Döndürülen tüm satırların aslında DamageProperty değerlerinin sıfırdan büyük olduğuna dikkat edin.
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:StormEvents | where DamageProperty > 0 | where StartTime > ago(365d) | project State, EventType, DamageProperty
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.
Dize değeriyle
"FLORIDA"
ikinciwhere
bir işleç kullanan aşağıdaki sorguyu çalıştırın:StormEvents | where DamageCrops > 0 | where State == "FLORIDA" | project State, EventType, DamageCrops
Aşağıdaki görüntüye benzer sonuçlar almalısınız:
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.
Aşağıdaki sorguyu çalıştırın:
StormEvents | where DamageProperty > 0 | where State == "FLORIDA" | where EventType has "wind" | project StartTime, EventType, DamageProperty
Aşağıdaki görüntüye benzer sonuçlar almalısınız:
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 has
benzerdir, 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:
where
Saatbetween
(datetime(
değer)..datetime(
değeri))
Şimdi bu
datetime
aralığı daha önce gördüğünüz bir sorgu türüne ekleyelim. Aşağıdaki sorguyu çalıştırın:StormEvents | where StartTime between (datetime(2007-01-01)..datetime(2007-06-01)) | where DamageProperty > 0 | where State == "FLORIDA" | project StartTime, EventType, DamageProperty | take 50
Aşağıdaki görüntüye benzer sonuçlar almalısınız:
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.