Bagikan melalui


operator reduce

Berlaku untuk: ✅Microsoft Fabric

Mengelompokkan sekumpulan string bersama-sama berdasarkan kesamaan nilai.

Untuk setiap grup tersebut, operator mengembalikan pattern, , countdan representative. Yang pattern terbaik menggambarkan grup, di mana * karakter mewakili kartubebas. count adalah jumlah nilai dalam grup, dan representative merupakan salah satu nilai asli dalam grup.

Sintaks

T|reduce [kind= ReduceKind] byExpr [with [threshold= Threshold] [,characters=Characters]]

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Tipe Wajib Deskripsi
Expr string ✔️ Nilai yang akan dikurangi.
Ambang real Nilai antara 0 dan 1 yang menentukan pecahan minimum baris yang diperlukan untuk mencocokkan kriteria pengelompokan untuk memicu operasi pengurangan. Nilai defaultnya adalah 0,1.

Sebaiknya tetapkan nilai ambang kecil untuk input besar. Dengan nilai ambang yang lebih kecil, nilai yang lebih mirip dikelompokkan bersama-sama, menghasilkan grup yang lebih sedikit tetapi lebih mirip. Nilai ambang yang lebih besar membutuhkan lebih sedikit kesamaan, sehingga menghasilkan lebih banyak grup yang kurang serupa. Lihat Contoh.
Karakter string Daftar karakter yang memisahkan antara istilah. Defaultnya adalah setiap karakter numerik non-ascii. Misalnya, lihat Perilaku parameter Karakter.
ReduceKind string Satu-satunya nilai yang valid adalah source. Jika source ditentukan, operator menambahkan Pattern kolom ke baris yang ada dalam tabel alih-alih mengagregasi dengan Pattern.

Mengembalikan

Tabel dengan baris sebanyak ada grup dan kolom berjudul pattern, , countdan representative. Yang pattern terbaik menggambarkan grup, di mana * karakter mewakili kartubebas, atau tempat penampung untuk string penyisipan arbitrer. count adalah jumlah nilai dalam grup, dan representative merupakan salah satu nilai asli dalam grup.

Misalnya, hasil dari reduce by city mungkin mencakup:

Pola Hitung Perwakilan
San * 5182 San Bernard
Saint * 2846 Saint Lucy
Moscow 3726 Moscow
* -on- * 2730 One -on- One
Paris 2716 Paris

Contoh

Contoh di bagian ini memperlihatkan cara menggunakan sintaks untuk membantu Anda memulai.

Contoh dalam artikel ini menggunakan tabel yang tersedia untuk umum di membantu kluster, seperti tabel StormEvents di database Sampel.

Contoh dalam artikel ini menggunakan tabel yang tersedia untuk umum, seperti tabel StormEvents di analitik Cuaca data sampel.

Nilai ambang kecil

Kueri ini menghasilkan rentang angka, membuat kolom baru dengan string yang digabungkan dan bilangan bulat acak, lalu mengelompokkan baris menurut kolom baru dengan parameter pengurangan tertentu.

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" 

Hasil

Pola Hitung Perwakilan
MachineLearning* 1000 MachineLearningX4

Nilai ambang besar

Kueri ini menghasilkan rentang angka, membuat kolom baru dengan string yang digabungkan dan bilangan bulat acak, lalu mengelompokkan baris menurut kolom baru dengan parameter pengurangan tertentu.

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" 

Hasil

Hasilnya hanya mencakup grup di mana nilai MyText muncul setidaknya dalam 90% baris.

Pola Hitung Perwakilan
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

Perilaku parameter Characters

Jika parameter Karakter tidak ditentukan, maka setiap karakter numerik non-ascii menjadi pemisah istilah.

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

Hasil

Pola Hitung Perwakilan
Lainnya… 10

Namun, jika Anda menentukan bahwa "Z" adalah pemisah, maka seolah-olah setiap nilai dalam str adalah dua istilah: foo dan tostring(x):

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

Hasil

Pola Hitung Perwakilan
Foo* 10 fooZ1

Terapkan reduce ke input yang disanitasi

Contoh berikut menunjukkan bagaimana operator reduce diterapkan ke input "dibersihkan", di mana GUID dalam kolom yang dikurangi diganti sebelum mengurangi:

Mulai dengan beberapa rekaman dari tabel Lacak. Kemudian kurangi kolom Teks yang menyertakan GUID acak. Saat GUID acak mengganggu operasi pengurangan, ganti semuanya dengan string "GUID". Sekarang lakukan operasi pengurangan. Jika ada pengidentifikasi "kuasi-acak" lainnya dengan karakter '-' atau '_' yang disematkan di dalamnya, perlakukan karakter sebagai non-pemecah istilah.

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="-_"

Catatan

Implementasi operator reduce sebagian besar didasarkan pada makalah A Data Clustering Algorithm for Mining Patterns From Event Logs, karya Risto Vaarandi.