Aracılığıyla paylaş


reduce işleci

Şunlar için geçerlidir: ✅Microsoft Fabric

Değer benzerliğine göre bir dizi dizeyi birlikte gruplandırın.

Bu tür her grup için işleç bir pattern, countve representativedöndürür. Karakterin pattern joker karakteri temsil ettiği * grubu en iyi şekilde açıklar. count, gruptaki değerlerin sayısıdır ve representative grubundaki özgün değerlerden biridir.

Sözdizimi

T|reduce [kind= ReduceKind] byİfade [with [ threshold= Eşik] [,characters=Karakterler]]

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Zorunlu Açıklama
İfade string ✔️ Azaltılan değer.
Threshold real Azaltma işlemini tetikleyebilmek için gruplandırma ölçütleriyle eşleştirmek için gereken en düşük satır kesirini belirleyen 0 ile 1 arasında bir değer. Varsayılan değer 0,1'dir.

Büyük girişler için küçük bir eşik değeri ayarlamanızı öneririz. Daha küçük bir eşik değeriyle, daha benzer değerler birlikte gruplandırılır ve bu da daha az ama daha benzer gruplara neden olur. Daha büyük bir eşik değeri daha az benzerlik gerektirir ve bu da daha az benzer olan daha fazla grupla sonuçlanır. Bkz. Örnekler.
Karakterler string Terimler arasında ayrı olan karakterlerin listesi. Varsayılan değer, ascii olmayan her sayısal karakterdir. Örnekler için bkz . Karakter Davranışı parametresi.
ReduceKind string Tek geçerli değer olur source. belirtilirsesource, işleci sütunu tarafından Patterntoplama yerine tablodaki var olan satırlara eklerPattern.

Döndürülenler

, patternve countbaşlıklı representativegrup ve sütun sayısı kadar satırı olan bir tablo. En pattern iyi, karakterin joker karakteri veya rastgele ekleme dizesi için yer tutucuyu temsil ettiği * grubu açıklar. count, gruptaki değerlerin sayısıdır ve representative grubundaki özgün değerlerden biridir.

Örneğin, sonucu reduce by city şunları içerebilir:

Desen Sayı Vekil
San* 5182 San Bernard
Aziz* 2846 Saint Lucy
Moskova 3726 Moskova
*-üzerinde-* 2730 Bire Bir
Paris 2716 Paris

Örnekler

Bu bölümdeki örnekte, kullanmaya başlamanıza yardımcı olması için söz diziminin nasıl kullanılacağı gösterilmektedir.

Bu makaledeki örneklerde, Örnekleri veritabanındaki StormEvents tablosu gibi yardım kümesiiçindeki genel kullanıma açık tablolar kullanılır.

Bu makaledeki örneklerde, Weather analytics örnek veriiçindeki StormEvents tablosu gibi genel kullanıma açık tablolar kullanılır.

Küçük eşik değeri

Bu sorgu bir sayı aralığı oluşturur, birleştirilmiş dizeler ve rastgele tamsayılar içeren yeni bir sütun oluşturur ve sonra satırları belirli azaltma parametreleriyle yeni sütuna göre gruplandırmaktadır.

range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText  with threshold=0.001 , characters = "X" 

Çıktı

Desen Sayı Vekil
MachineLearning* 1000 MachineLearningX4

Büyük eşik değeri

Bu sorgu bir sayı aralığı oluşturur, birleştirilmiş dizeler ve rastgele tamsayılar içeren yeni bir sütun oluşturur ve sonra satırları belirli azaltma parametreleriyle yeni sütuna göre gruplandırmaktadır.

range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText  with threshold=0.9 , characters = "X" 

Çıktı

Sonuç yalnızca MyText değerinin satırların en az 90% göründüğü grupları içerir.

Desen Sayı Vekil
MachineLearning* 177 MachineLearningX9
MachineLearning* 102 MachineLearningX0
MachineLearning* 106 MachineLearningX1
MachineLearning* 96 MachineLearningX6
MachineLearning* 110 MachineLearningX4
MachineLearning* 100 MachineLearningX3
MachineLearning* 99 MachineLearningX8
MachineLearning* 104 MachineLearningX7
MachineLearning* 106 MachineLearningX2

Characters parametresinin davranışı

Karakterler parametresi belirtilmemişse, ascii olmayan her sayısal karakter bir terim ayırıcısı olur.

range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str

Çıktı

Desen Sayı Vekil
Diğer 10

Ancak, "Z" öğesinin bir ayırıcı olduğunu belirtirseniz, str içindeki her değer iki terimdir: foo ve tostring(x):

range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"

Çıktı

Desen Sayı Vekil
Foo* 10 fooZ1

Temizlenmiş girişe uygula reduce

Aşağıdaki örnekte, azaltılmakta olan sütundaki GUID'lerin azaltmadan önce değiştirildiği bir "temizlenmiş" girişe reduce işlecinin nasıl uygulanabileceği gösterilmektedir:

İzleme tablosundan birkaç kayıtla başlayın. Ardından rastgele GUID'ler içeren Metin sütununu azaltın. Rastgele GUID'ler azaltma işlemini engelledikçe, bunların tümünü "GUID" dizesiyle değiştirin. Şimdi azaltma işlemini gerçekleştirin. Ekli '-' veya '_' karakterleri olan başka "rastgele" tanımlayıcılar varsa, karakterleri terim ayırıcısı olmayan karakterler olarak değerlendirin.

Trace
| take 10000
| extend Text = replace(@"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}", "GUID", Text)
| reduce by Text with characters="-_"

Not

işlecinin reduce uygulanması büyük ölçüde Risto Vaarandi tarafından yapılan Olay Günlüklerinden Araştırma Desenleri için A Veri Kümeleme Algoritması kağıdını temel alır.