operator reduce
Berlaku untuk: ✅Microsoft Fabric✅✅
Mengelompokkan sekumpulan string bersama-sama berdasarkan kesamaan nilai.
Untuk setiap grup tersebut, operator mengembalikan pattern
, , count
dan 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] by
Expr [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
, , count
dan 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="-_"
Konten terkait
Catatan
Implementasi operator reduce
sebagian besar didasarkan pada makalah A Data Clustering Algorithm for Mining Patterns From Event Logs, karya Risto Vaarandi.