全部产品
Search
文档中心

Simple Log Service:Fungsi penambangan pola (analisis drill-down data tabular)

更新时间:Nov 09, 2025

Fungsi penambangan pola menganalisis sampel dengan beberapa atribut berdasarkan kondisi tertentu. Fungsi ini mengidentifikasi serangkaian pola yang memengaruhi cara data dipartisi dan membantu Anda mendiagnosis penyebab perbedaan secara cepat.

diff_patterns

Fungsi ini membandingkan dua set data dengan struktur yang sama untuk menemukan pola atribut diskrit (dimensi) yang berbeda di antara keduanya. Fungsi ini dirancang untuk membandingkan templat (itemset frekuensi) dalam data tabular.

Sintaksis

diff_patterns($TABLE, $HEADER, $SPLIT_COLUMN, $TEST_VAL, $CONTROL_VAL, $METRIC_COLUMN, $WEIGHT_COLUMN, $PARAM)

Parameter

Penting

Pastikan bahwa $SPLIT_COLUMN berisi baris untuk $TEST_VAL dan $CONTROL_VAL saat menggunakan fungsi statistik perbedaan pola. Fungsi tidak dapat melakukan perbandingan jika data untuk kelompok uji atau kelompok kontrol hilang.

Parameter

Tipe data

Diperlukan

Deskripsi

$TABLE

row<array<T>, array<E>, ..., array<F>>

Ya

Tabel input untuk fungsi diff_patterns. Setiap kolom adalah kolom dimensi untuk analisis drill-down.

$HEADER

array<varchar>

Ya

Nama kolom. Nama-nama ini sesuai dengan kolom dalam $TABLE. Jumlah nama header harus sesuai dengan jumlah kolom tabel.

$SPLIT_COLUMN

varchar

Ya

Nama kolom target yang digunakan untuk membedakan antar kelompok. Kategori tag saat ini hanya mendukung tipe string.

$TEST_VAL

varchar

Ya

Nilai dalam $SPLIT_COLUMN yang sesuai dengan kelompok uji.

Pastikan bahwa $TEST_VAL ada dalam $SPLIT_COLUMN. Jika tidak, kedua kelompok tidak dapat dibedakan. Biasanya, $TEST_VAL sesuai dengan nilai abnormal.

$CONTROL_VAL

varchar

Ya

Nilai dalam $SPLIT_COLUMN yang sesuai dengan kelompok kontrol.

Pastikan bahwa $CONTROL_VAL ada dalam $SPLIT_COLUMN. Jika tidak, kedua kelompok tidak dapat dibedakan. $CONTROL_VAL sesuai dengan nilai normal.

$METRIC_COLUMN

double/int

Tidak

Kolom metrik. Nilai defaultnya adalah '', yang berarti tidak ada kolom metrik yang ditentukan.

Jika Anda ingin menganalisis dampak kombinasi dimensi pada metrik tertentu selain kelompok data, tentukan kolom metrik. Sebagai contoh, jika kolom 'qps' mencatat metrik Anda, algoritma dapat menghitung perbedaan metrik ini untuk berbagai kombinasi dimensi.

$WEIGHT_COLUMN

varchar

Tidak

Kolom bobot. Nilai defaultnya adalah '', yang berarti tidak ada kolom bobot yang ditentukan.

Jika parameter ini tidak disetel, semua baris diasumsikan memiliki bobot yang sama. Jika kolom bobot disetel, semua perhitungan mempertimbangkan bobot. Sebagai contoh, baris dengan bobot 2 diperlakukan seolah-olah muncul dua kali dibandingkan baris dengan bobot 1.

$PARAM

varchar

Tidak

Untuk informasi lebih lanjut, lihat detail parameter param.

Detail parameter param

Nama parameter

Deskripsi

Tipe

Diperlukan

Default

Nilai valid

minimum_support_fraction

Support minimum dari pola output dalam kelompok uji. Sebagai contoh, jika sebuah pola muncul dengan frekuensi 0,1 dalam kelompok uji, support-nya adalah 0,1. Parameter ini mengontrol jumlah pola output dengan menyesuaikan sensitivitas.

double

Tidak

0,05

(0, 1)

allow_sample

Menentukan apakah sampling diizinkan untuk perhitungan.

bool

Tidak

true

[true, false]

agg_op

Sebuah pola menyaring beberapa baris data. Fungsi kemudian menghitung nilai agregat dari baris-baris ini dalam METRIC_COLUMN. Parameter ini menentukan operasi agregasi yang akan digunakan. Jika METRIC_COLUMN tidak ditentukan, nilai defaultnya adalah 1 untuk kelompok uji dan 0 untuk kelompok kontrol.

string

Tidak

"avg"

["sum", "avg", "max", "min", "count", "p95"]

shapley_value_min_fraction

Fraction Shapley value minimum untuk suatu kondisi. Parameter ini mengontrol jumlah kondisi dalam sebuah pola.

double

Tidak

0,1

(0, 1)

Contoh

  • Analisis query:

    Bendera `set session enable_remote_functions=true` diperlukan karena fitur ini dalam pratinjau publik. Anda harus menambahkan bendera ini secara manual. Persyaratan ini akan dihapus di versi mendatang.
    * | set session enable_remote_functions=true ;
    with t0 as (select  JSON_EXTRACT_SCALAR(entity, '$.platform') AS platform,  JSON_EXTRACT_SCALAR(entity, '$.region') AS region, cast(value as double) as value, if((value > 100), 'true', 'false') as anomaly_label from log), 
    t1 as ( select array_agg(platform) as platform, array_agg(region) as region, array_agg(anomaly_label) as anomaly_label, array_agg(value) as value from t0),
    t2 as (select row(platform, region, anomaly_label, value) as table_row from t1),
    t3 as (select diff_patterns(table_row, ARRAY['platform', 'region', 'anomaly_label', 'value'],'anomaly_label', 'true', 'false', 'value') as ret from t2)
    select * from t3
  • Output:

    [["\"platform\"='Amazon Prime'","\"platform\"='Console'","\"platform\"='VR'","\"platform\"='Mobile'","\"platform\"='PC'","\"platform\"='Hulu'","\"platform\"='Netflix' AND \"region\"='Asia'","\"platform\"='YouTube'","\"platform\"='Disney+' AND \"region\"='South America'"],[18720,56921,44516,47520,44640,8640,4320,15840,4320],[0,4999,7324,5760,4320,0,0,1440,0],[0.05248902272841978,0.15960083668399478,0.12481844742405635,0.13324136538752713,0.1251661311216164,0.024225702797732206,0.012112851398866103,0.04441378846250904,0.012112851398866103],[0.0,0.0032988991351195829,0.004833194091941553,0.003801092022062172,0.0028508190165466289,0.0,0.0,0.000950273005515543,0.0],[0.05248902272841978,0.1563019375488752,0.1199852533321148,0.12944027336546497,0.12231531210506977,0.024225702797732206,0.012112851398866103,0.0434635154569935,0.012112851398866103],[608.6946996258738,552.6152340898742,501.3011076154948,525.0147121416072,580.8151715760738,409.282718625793,631.6115865793741,603.7699053925991,526.960199868643],[0.0,58.46518308219622,55.396758003518488,49.12926473747681,44.68946999270535,0.0,0.0,20.76262974302821,0.0],null]

Detail nilai kembali

Parameter

Tipe

Deskripsi

Contoh

$RET.patterns

array<varchar>

Templat tabel, yaitu itemset frekuensi.

["\"platform\"='Amazon Prime'","\"platform\"='Console'","\"platform\"='VR'","\"platform\"='Mobile'","\"platform\"='PC'","\"platform\"='Hulu'","\"platform\"='Netflix' AND \"region\"='Asia'","\"platform\"='YouTube'","\"platform\"='Disney+' AND \"region\"='South America'"]

$RET.test_supports

array<bigint>

Frekuensi templat yang sesuai dalam kelompok uji.

[18720,56921,44516,47520,44640,8640,4320,15840,4320],[0,4999,7324,5760,4320,0,0,1440,0]

$RET.control_supports

array<bigint>

Frekuensi templat yang sesuai dalam kelompok kontrol.

Dengan perbandingan, hasil yang muncul lebih awal dalam output diff_patterns memiliki frekuensi jauh lebih tinggi dalam kelompok uji (kelompok abnormal) daripada dalam kelompok kontrol (kelompok normal).

0,4999,7324,5760,4320,0,0,1440,0]

$RET.test_ratio

array<double>

Rasio templat yang sesuai dalam kelompok uji (label=1) terhadap total set data uji.

[0.05248902272841978,0.15960083668399478,0.12481844742405635,0.13324136538752713,0.1251661311216164,0.024225702797732206,0.012112851398866103,0.04441378846250904,0.012112851398866103]

$RET.control_ratio

array<double>

Rasio templat yang sesuai dalam kelompok kontrol (label=0) terhadap total set validasi.

[0.0,0.0032988991351195829,0.004833194091941553,0.003801092022062172,0.0028508190165466289,0.0,0.0,0.000950273005515543,0.0]

$RET.difference

array<double>

Perbedaan antara data kelompok uji dan data kelompok kontrol.

[0.05248902272841978,0.1563019375488752,0.1199852533321148,0.12944027336546497,0.12231531210506977,0.024225702797732206,0.012112851398866103,0.0434635154569935,0.012112851398866103]

$RET.test_average_metric

array<double>

Nilai rata-rata METRIC_COLUMN untuk data yang cocok dengan pola. Jika METRIC_COLUMN adalah '', nilai kembali ini tidak bermakna.

[608.6946996258738,552.6152340898742,501.3011076154948,525.0147121416072,580.8151715760738,409.282718625793,631.6115865793741,603.7699053925991,526.960199868643]

$RET.control_average_metric

array<double>

Nilai rata-rata METRIC_COLUMN untuk data yang tidak cocok dengan pola. Jika METRIC_COLUMN adalah '', nilai kembali ini tidak bermakna.

[0.0,58.46518308219622,55.396758003518488,49.12926473747681,44.68946999270535,0.0,0.0,20.76262974302821,0.0]

$RET.error_msg

varchar/null

Pesan kesalahan. Jika tidak ada kesalahan yang terjadi, nilai kembalinya adalah null.

null