Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sürüm açılan listesini kullanarak hizmetler arasında geçiş yapın. Gezinti hakkında daha fazla bilgi edinin.
Şunlar için geçerlidir: ✅ Microsoft Fabric ✅ Azure Veri Gezgini ✅ Azure İzleyici ✅ Microsoft Sentinel
Toplama işlevleri , birden çok satırdan verileri gruplandırıp özet değer olarak birleştirir. Özet değeri, seçilen işleve (sayı, maksimum veya ortalama değer gibi) bağlıdır.
Bu eğitimde şunları öğreniyorsunuz:
Bu öğreticideki örneklerde, help kümesinde herkese açık olarak bulunan StormEvents tablosu kullanılır. Kendi verilerinizle keşfetmek için kendi ücretsiz kümenizi oluşturun.
Bu öğreticideki örneklerde, Hava durumu analiziörnek verileri içinde herkese açık olarak sunulan StormEvents tablosu kullanılır.
Bu eğitim, ilk eğitim olan Yaygın işleçleri öğrenin içeriğinin temeli üzerine inşa edilir.
Önkoşullar
Aşağıdaki sorguları çalıştırmak için örnek verilere erişimi olan bir sorgu ortamına ihtiyacınız vardır. Aşağıdaki seçeneklerden birini kullanın:
- Microsoft hesabı veya Microsoft Entra kullanıcı kimliği
- Microsoft Fabric özellikli kapasiteye sahip bir Fabric çalışma alanı
Summarize işlecini kullanma
Özetleme işleci, verileriniz üzerinde toplamalar gerçekleştirmek için gereklidir.
summarize işleci yan tümcesine by göre satırları birlikte gruplandırıp sağlanan toplama işlevini kullanarak her grubu tek bir satırda birleştirir.
Sayı toplama işleviyle kullanarak summarizeduruma göre olay sayısını bulun.
StormEvents
| summarize TotalStorms = count() by State
Çıktı
| State | TotalStorms |
|---|---|
| TEXAS | 4701 |
| KANSAS | 3166 |
| IOWA | 2337 |
| ILLINOIS | 2022 |
| MISSOURI | 2016 |
| ... | ... |
Sorgu sonuçlarını görselleştirme
Bir grafikte veya grafikte sorgu sonuçlarını görselleştirmek, verilerinizdeki desenleri, eğilimleri ve aykırı değerleri belirlemenize yardımcı olabilir. İşleme işlecini kullanarak bu görselleştirmeleri oluşturabilirsiniz.
Bu öğretici boyunca, sonuçlarınızı görüntülemek için render öğesini nasıl kullanacağınıza dair örnekler göreceksiniz. Kullanılabilir grafik türlerinden bazıları çubuk grafikler, çizgi grafikler, pasta grafikler ve dağılım grafikleridir. Şimdilik bir çubuk grafikte önceki sorgunun sonuçlarını görmek için kullanın render .
StormEvents
| summarize TotalStorms = count() by State
| render barchart
Satırları koşullu olarak sayma
Verilerinizi analiz ederken, satırları belirli bir koşula göre saymak için countif() kullanın. Bu işlev, verilen ölçütlere uyan satır sayısını anlamanıza yardımcı olur.
Aşağıdaki sorgu, hasara neden olan fırtınaları saymak için kullanır countif() . Sorgu daha sonra sonuçları filtrelemek ve fırtınaların neden olduğu en fazla mahsul zararının görüldüğü eyaletleri görüntülemek için top işlecini kullanır.
StormEvents
| summarize StormsWithCropDamage = countif(DamageCrops > 0) by State
| top 5 by StormsWithCropDamage
Çıktı
| State | Ürün Hasarına Neden Olan Fırtınalar |
|---|---|
| IOWA | 359 |
| NEBRASKA | 201 |
| MISSISSIPPI | 105 |
| KUZEY CAROLINA | 82 |
| MISSOURI | 78 |
Verileri bölmeler halinde gruplandırma
Verileri sayısal veya saat değerlerine göre toplamak için, önce bin() işlevini kullanarak verileri bölmeler halinde gruplandırın. kullanmak bin() , değerlerin belirli bir aralık içinde nasıl dağıtıldığını anlamanıza yardımcı olur ve farklı dönemleri karşılaştırmayı kolaylaştırır.
Aşağıdaki sorgu, 2007 yılındaki her hafta için ekin hasarına neden olan fırtınaların sayısını hesaplar.
7d bağımsız değişkeni bir haftayı temsil eder, çünkü işlev geçerli bir zaman aralığı değeri gerektirir.
StormEvents
| where StartTime between (datetime(2007-01-01) .. datetime(2007-12-31))
and DamageCrops > 0
| summarize EventCount = count() by bin(StartTime, 7d)
Çıktı
| Başlangıç Zamanı | Olay Sayısı |
|---|---|
| 2007-01-01T00:00:00Z | 16 |
| 2007-01-08T00:00:00Z | 20 |
| 2007-01-29T00:00:00Z | 8 |
| 2007-02-05T00:00:00Z | 1 |
| 2007-02-12T00:00:00Z | 3 |
| ... | ... |
Sonuçları görselleştirmek için sorgunun sonuna ekleyin | render timechart .
Not
bin() diğer programlama dillerindeki işleve floor() benzer. Her değeri sağladığınız modülün en yakın katına azaltır ve satırları gruplara atamaya izin verir summarize .
Min, max, avg ve sum değerini hesaplama
Kırpma hasarına neden olan fırtına türleri hakkında daha fazla bilgi edinmek için her olay türü için min(), max() ve avg() kırpma hasarlarını hesaplayın. Ardından, sonucu ortalama hasara göre sıralayın.
Birkaç hesaplanan sütun oluşturmak için tek summarize bir işleçte birden çok toplama işlevi kullanabilirsiniz.
StormEvents
| where DamageCrops > 0
| summarize
MaxCropDamage=max(DamageCrops),
MinCropDamage=min(DamageCrops),
AvgCropDamage=avg(DamageCrops)
by EventType
| sort by AvgCropDamage
Çıktı
| Olay Türü | MaxCropDamage | MinCropDamage | AvgCropDamage |
|---|---|---|---|
| Kırağı/Donma | 568600000 | 3000 | 9106087.5954198465 |
| Orman yangını | 21000000 | 10000 | 7268333.333333333 |
| Kuraklık | 700000000 | 2000 | 6763977.8761061952 |
| Sel | 500000000 | 1000 | 4844925.23364486 |
| Gök Gürültülü Fırtına | 22000000 | 100 | 920328.36538461538 |
| ... | ... | ... | ... |
Önceki sorgunun sonuçları Donma/Donma olaylarının ortalama olarak en fazla ürün hasarına neden olduğunu gösterir. Ancak, bin() sorgusu, ekin hasarı içeren olayların çoğunlukla yaz aylarında meydana geldiğini gösterir.
Önceki bin() sorgusunda olduğu count() gibi, zarara neden olan olay miktarı yerine toplam zarar görmüş ürün sayısını denetlemek için sum() kullanın.
StormEvents
| where StartTime between (datetime(2007-01-01) .. datetime(2007-12-31))
and DamageCrops > 0
| summarize CropDamage = sum(DamageCrops) by bin(StartTime, 7d)
| render timechart
Artık mahsul hasarının Ocak ayında zirve yaptığını görebilirsiniz; bunun nedeni muhtemelen kırağı/don olaylarıydı.
İpucu
Satırları koşullu say bölümünde yaptığınız gibi, koşullu toplamalar gerçekleştirmek için minif(), maxif(), avgif() ve sumif() kullanın.
Yüzdeleri hesaplama
Yüzdeleri hesaplamak, verilerinizdeki farklı değerlerin dağılımını ve oranını anlamanıza yardımcı olabilir. Bu bölüm, Kusto Sorgu Dili (KQL) kullanarak yüzdeleri hesaplamaya yönelik iki yaygın yöntemi kapsar.
yüzdeyi iki sütuna göre hesaplama
Her eyalette ekin hasarına neden olan fırtına olaylarının yüzdesini bulmak için count() ve countif kullanın. İlk olarak, her durumdaki toplam fırtına sayısını sayın. Ardından, her durumda ekin hasarına neden olan fırtına sayısını sayın.
Ardından, ekin hasarı olan fırtına sayısını toplam fırtına sayısına bölerek ve 100 ile çarparak iki sütun arasındaki yüzdeyi hesaplamak için extend kullanın.
Ondalık sonuç aldığınızdan emin olmak için, bölme işlemini gerçekleştirmeden önce tamsayı sayısı değerlerinden en az birini çifte dönüştürmek için todouble() işlevini kullanın.
StormEvents
| summarize
TotalStormsInState = count(),
StormsWithCropDamage = countif(DamageCrops > 0)
by State
| extend PercentWithCropDamage =
round((todouble(StormsWithCropDamage) / TotalStormsInState * 100), 2)
| sort by StormsWithCropDamage
Çıktı
| State | TotalStormsInState | Ürün Hasarına Neden Olan Fırtınalar | Ürün Hasarı Olan Yüzde |
|---|---|---|---|
| IOWA | 2337 | 359 | 15.36 |
| NEBRASKA | 1766 | 201 | 11,38 |
| MISSISSIPPI | 1218 | 105 | 8.62 |
| KUZEY CAROLINA | 1721 | 82 | 4.76 |
| MISSOURI | 2016 | 78 | 3.87 |
| ... | ... | ... | ... |
Not
Yüzdeleri hesaplarken, bölmedeki tamsayı değerlerinden en az birini todouble() veya toreal() ile dönüştürün. Bu dönüştürme, tamsayı bölme nedeniyle kırpılmış sonuçlar almamanızı sağlar. Daha fazla bilgi için bkz . Aritmetik işlemler için tür kuralları.
Tablo boyutuna göre yüzdeyi hesaplama
Olay türüne göre fırtına sayısını veritabanındaki toplam fırtına sayısıyla karşılaştırmak için önce veritabanındaki toplam fırtına sayısını değişken olarak kaydedin. Sorgu içindeki değişkenleri tanımlamak için Let deyimlerini kullanın.
Tablosal ifade deyimleri tablosal sonuçlar döndürdüğünden, count() işlevinin tablosal sonucunu skaler bir değere dönüştürmek için toscalar() işlevini kullanın. Ardından, yüzde hesaplamasında sayısal değeri kullanın.
let TotalStorms = toscalar(StormEvents | summarize count());
StormEvents
| summarize EventCount = count() by EventType
| project EventType, EventCount, Percentage = todouble(EventCount) / TotalStorms * 100.0
Çıktı
| Olay Türü | Olay Sayısı | Yüzde |
|---|---|---|
| Gök Gürültülü Fırtına | 13015 | 22.034673077574237 |
| Dolu | 12711 | 21.519994582331627 |
| Ani Sel | 3688 | 6.2438627975485055 |
| Kuraklık | 3616 | 6.1219652592015716 |
| Kış Hava Durumu | 3349 | 5.669928554498358 |
| ... | ... | ... |
Benzersiz değerleri ayıkla
Tablodaki satır seçimini benzersiz değerler dizisine dönüştürmek için make_set() kullanın.
Aşağıdaki sorgu, her durumda ölümlere neden olan olay türlerinin bir dizisini oluşturmak için kullanır make_set() . Sonuçta elde edilen tablo, her dizideki storm türlerinin sayısına göre sıralanır.
StormEvents
| where DeathsDirect > 0 or DeathsIndirect > 0
| summarize StormTypesWithDeaths = make_set(EventType) by State
| project State, StormTypesWithDeaths
| sort by array_length(StormTypesWithDeaths)
Çıktı
| State | Ölümlere Neden Olan Fırtına Türleri |
|---|---|
| CALIFORNIA | ["Gök Gürültülü Fırtına Rüzgarı","Yüksek Dalga","Soğuk/Rüzgar Üşümesi","Kuvvetli Rüzgar","Çeken Akıntı","Sıcak","Aşırı Sıcak","Orman Yangını","Toz Fırtınası","Astronomik Alçak Gelgit","Yoğun Sis","Kış Havası"] |
| TEXAS | ["Ani Sel", "Fırtına Rüzgarı", "Tornado", "Yıldırım", "Sel", "Buz Fırtınası", "Kış Havası", "Akıntı", "Aşırı Sıcak", "Yoğun Sis", "Kasırga (Tayfun)", "Soğuk/Rüzgar Soğuğu"] |
| OKLAHOMA | ["Ani Sel", "Tornado", "Soğuk/Rüzgar Soğukluğu", "Kış Fırtınası", "Yoğun Kar", "Aşırı Sıcak", "Sıcak", "Buz Fırtınası", "Kış Havası", "Yoğun Sis"] |
| NEW YORK | ["Sel", "Yıldırım", "Gök Gürültülü Fırtına Rüzgarı", "Ani Sel", "Kış Havası", "Buz Fırtınası", "Aşırı Soğuk/Rüzgar Soğukluğu", "Kış Fırtınası", "Yoğun Kar"] |
| KANSAS | ["Gök Gürültülü Fırtına Rüzgarı", "Yoğun Yağmur", "Kasırga", "Sel", "Ani Sel", "Şimşek", "Yoğun Kar", "Kış Havası", "Tipi"] |
| ... | ... |
Koşula göre demet verileri
case() işlevi, verileri belirtilen koşullara göre demetler halinde gruplandırmaktadır. İşlev, ilk karşılanan koşul için karşılık gelen sonuç ifadesini veya koşullardan hiçbiri karşılanmamışsa son else ifadesini döndürür.
Bu örnek, eyaletleri vatandaşlarının maruz kaldığı fırtına kaynaklı yaralanma sayısına göre gruplandırır.
StormEvents
| summarize InjuriesCount = sum(InjuriesDirect) by State
| extend InjuriesBucket = case (
InjuriesCount > 50,
"Large",
InjuriesCount > 10,
"Medium",
InjuriesCount > 0,
"Small",
"No injuries"
)
| sort by State asc
Çıktı
| State | Yaralanma Sayısı | YaralanmalarBucket |
|---|---|---|
| ALABAMA | 494 | Büyük |
| ALASKA | 0 | Yaralanma yok |
| AMERİKAN SAMOASI | 0 | Yaralanma yok |
| ARİZONA | 6 | Küçük |
| ARKANSAS | 54 | Büyük |
| ATLANTIK KUZEY | 15 | Orta |
| ... | ... | ... |
Büyük, orta veya az sayıda yaralanmayla sonuçlanan fırtınaların yaşandığı durumların oranını görselleştirmek için bir pasta grafik oluşturun.
StormEvents
| summarize InjuriesCount = sum(InjuriesDirect) by State
| extend InjuriesBucket = case (
InjuriesCount > 50,
"Large",
InjuriesCount > 10,
"Medium",
InjuriesCount > 0,
"Small",
"No injuries"
)
| summarize InjuryBucketByState=count() by InjuriesBucket
| render piechart
Kayan pencere boyunca toplulaştırmalar gerçekleştirme
Aşağıdaki örnek, kayan pencere kullanarak sütunların nasıl özetleneceğini gösterir.
Sorgu, yedi günlük kayan bir pencere kullanarak hortum, sel ve orman yangınlarının neden olduğu en az, en fazla ve ortalama maddi hasarı hesaplar. Sonuç kümesindeki her kayıt önceki yedi günü toplar ve sonuçlar analiz döneminde günlük bir kayıt içerir.
Sorgunun adım adım açıklaması aşağıdadır:
- Her kaydı,
windowStartöğesine göre tek bir günde gruplandırın. - Her kayıt için aralığın bitişini ayarlamak üzere kutu değerine yedi gün ekleyin. Değer,
windowStartilewindowEndaralığının dışındaysa, değeri buna göre ayarlayın. - Kaydın geçerli gününden başlayarak her kayıt için yedi günlük bir dizi oluşturun.
- Her kaydı aralarında bir günlük aralıklarla yedi kayda çoğaltmak için mv-expand komutunu kullanarak 3. adımdaki diziyi genişletin.
- Her gün için agregasyonları uygulayın. 4. adım nedeniyle, bu adım aslında önceki yedi günü özetler.
- Son sonucun ilk yedi gününü hariç tutun çünkü bunlar için yedi günlük bir geri arama süresi yoktur.
let windowStart = datetime(2007-07-01);
let windowEnd = windowStart + 13d;
StormEvents
| where EventType in ("Tornado", "Flood", "Wildfire")
| extend bin = bin_at(startofday(StartTime), 1d, windowStart) // 1
| extend endRange = iff(bin + 7d > windowEnd, windowEnd,
iff(bin + 7d - 1d < windowStart, windowStart,
iff(bin + 7d - 1d < bin, bin, bin + 7d - 1d))) // 2
| extend range = range(bin, endRange, 1d) // 3
| mv-expand range to typeof(datetime) // 4
| summarize min(DamageProperty), max(DamageProperty), round(avg(DamageProperty)) by Timestamp=bin_at(range, 1d, windowStart), EventType // 5
| where Timestamp >= windowStart + 7d; // 6
Çıktı
Aşağıdaki sonuç tablosu kırpılmıştır. Çıkışın tamamını görmek için sorguyu çalıştırın.
| Zaman damgası | Olay Türü | min_DamageProperty | max_DamageProperty | avg_DamageProperty |
|---|---|---|---|---|
| 2007-07-08T00:00:00Z | Hortum | 0 | 30000 | 6905 |
| 2007-07-08T00:00:00Z | Sel | 0 | 200000 | 9261 |
| 2007-07-08T00:00:00Z | Orman yangını | 0 | 200000 | 14033 |
| 2007-07-09T00:00:00Z | Hortum | 0 | 100000 | 14783 |
| 2007-07-09T00:00:00Z | Sel | 0 | 200000 | 12529 |
| 2007-07-09T00:00:00Z | Orman yangını | 0 | 200000 | 14033 |
| 2007-07-10T00:00:00Z | Hortum | 0 | 100000 | 31400 |
| 2007-07-10T00:00:00Z | Sel | 0 | 200000 | 12263 |
| 2007-07-10T00:00:00Z | Orman yangını | 0 | 200000 | 11694 |
| ... | ... | ... |
Sonraki adım
Sık kullanılan sorgu işleçleri ve toplama işlevleri hakkında bilgi edindiğinize göre, birden çok tablodaki verileri birleştirmeyi öğrenmek için sonraki öğreticiye gidin.