全部产品
Search
文档中心

Simple Log Service:Fungsi Prediksi dan Deteksi Anomali

更新时间:Jun 26, 2025

Untuk mendeteksi anomali, Anda dapat menggunakan fungsi prediksi dan deteksi anomali untuk memprediksi kurva deret waktu serta mengidentifikasi Ksigma dan kuantil dari kesalahan antara kurva yang diprediksi dan kurva aktual.

Daftar Fungsi

Fungsi

Deskripsi

ts_predicate_simple

Menggunakan parameter default untuk memodelkan data deret waktu dan melakukan prediksi deret waktu sederhana serta deteksi anomali.

ts_predicate_ar

Menggunakan model autoregresif (AR) untuk memodelkan data deret waktu dan melakukan prediksi deret waktu sederhana serta deteksi anomali.

ts_predicate_arma

Menggunakan model autoregresif moving average (ARMA) untuk memodelkan data deret waktu dan melakukan prediksi deret waktu sederhana serta deteksi anomali.

ts_predicate_arima

Menggunakan model autoregresif integrated moving average (ARIMA) untuk memodelkan data deret waktu dan melakukan prediksi deret waktu sederhana serta deteksi anomali.

ts_regression_predict

Memperkirakan tren kurva deret waktu periodik dengan akurat.

Skenario: Fungsi ini dapat digunakan untuk memprediksi data metering, lalu lintas jaringan, data keuangan, dan data bisnis lainnya yang mengikuti aturan tertentu.

ts_anomaly_filter

Menyaring anomali yang terdeteksi selama deteksi anomali pada beberapa kurva deret waktu berdasarkan mode anomali kustom. Fungsi ini membantu Anda menemukan kurva abnormal dengan cepat.

ts_predicate_simple

Format fungsi:

select ts_predicate_simple(x, y, nPred, isSmooth) 

Tabel berikut mencantumkan parameter dari format fungsi.

Parameter

Deskripsi

Nilai

x

Urutan waktu. Titik-titik waktu diurutkan secara menaik sepanjang sumbu horizontal.

Setiap titik waktu adalah timestamp Unix. Satuan: detik.

y

Urutan data numerik yang sesuai dengan setiap titik waktu yang ditentukan.

Tidak tersedia.

nPred

Jumlah titik untuk prediksi.

Nilainya bertipe data long dan harus sama dengan atau lebih besar dari 1.

isSmooth

Menentukan apakah akan menyaring data mentah.

Nilainya bertipe data Boolean. Nilai defaultnya adalah true, yang menunjukkan bahwa data mentah disaring.

Contoh:

  • Pernyataan query adalah sebagai berikut:

    * | select ts_predicate_simple(stamp, value, 6) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp)
  • Hasil keluaranThe following figure shows the output result.

Tabel berikut mencantumkan item tampilan.

Item Tampilan

Deskripsi

Sumbu horizontal

unixtime

Timestamp Unix dari data. Satuan: detik.

Sumbu vertikal

src

Data mentah.

predict

Data yang dihasilkan setelah operasi penyaringan dilakukan.

upper

Batas atas interval kepercayaan. Tingkat kepercayaan adalah 0,85, yang tidak dapat diubah.

lower

Batas bawah interval kepercayaan. Tingkat kepercayaan adalah 0,85, yang tidak dapat diubah.

anomaly_prob

Probabilitas bahwa titik tersebut merupakan anomali. Nilai valid: [0, 1].

ts_predicate_ar

Format fungsi:

select ts_predicate_ar(x, y, p, nPred, isSmooth) 

Tabel berikut mencantumkan parameter dari format fungsi.

Parameter

Deskripsi

Nilai

x

Urutan waktu. Titik-titik waktu diurutkan secara menaik sepanjang sumbu horizontal.

Setiap titik waktu adalah timestamp Unix. Satuan: detik.

y

Urutan data numerik yang sesuai dengan setiap titik waktu yang ditentukan.

Tidak tersedia.

p

Orde model AR.

Nilainya bertipe data long. Nilai valid: 2, 3, 4, 5, 6, 7, dan 8.

nPred

Jumlah titik untuk prediksi.

Nilainya bertipe data long. Nilai valid: [1, 5 × p].

isSmooth

Menentukan apakah akan menyaring data mentah.

Nilainya bertipe data Boolean. Nilai defaultnya adalah true, yang menunjukkan bahwa data mentah disaring.

Contoh pernyataan query adalah sebagai berikut:

* | select ts_predicate_ar(stamp, value, 3, 4) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp)
Catatan

Hasil keluaran serupa dengan fungsi ts_predicate_simple. Untuk informasi lebih lanjut, lihat hasil keluaran fungsi ts_predicate_simple.

ts_predicate_arma

Format fungsi:

select ts_predicate_arma(x, y, p, q, nPred, isSmooth) 

Tabel berikut mencantumkan parameter dari format fungsi.

Parameter

Deskripsi

Nilai

x

Urutan waktu. Titik-titik waktu diurutkan secara menaik sepanjang sumbu horizontal.

Setiap titik waktu adalah timestamp Unix. Satuan: detik.

y

Urutan data numerik yang sesuai dengan setiap titik waktu yang ditentukan.

Tidak tersedia.

p

Orde model AR.

Nilainya bertipe data long. Nilai valid: [2, 100].

q

Orde model ARMA.

Nilainya bertipe data long. Nilai valid: 2, 3, 4, 5, 6, 7, dan 8.

nPred

Jumlah titik untuk prediksi.

Nilainya bertipe data long. Nilai valid: [1, 5 × p].

isSmooth

Menentukan apakah akan menyaring data mentah.

Nilainya bertipe data Boolean. Nilai defaultnya adalah true, yang menunjukkan bahwa data mentah disaring.

Contoh pernyataan query adalah sebagai berikut:

* | select ts_predicate_arma(stamp, value, 3, 2, 4) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp) 
Catatan

Hasil keluaran serupa dengan fungsi ts_predicate_simple. Untuk informasi lebih lanjut, lihat hasil keluaran fungsi ts_predicate_simple.

ts_predicate_arima

Format fungsi:

select ts_predicate_arima(x, y, p, d, q, nPred, isSmooth) 

Tabel berikut mencantumkan parameter dari format fungsi.

Parameter

Deskripsi

Nilai

x

Urutan waktu. Titik-titik waktu diurutkan secara menaik sepanjang sumbu horizontal.

Setiap titik waktu adalah timestamp Unix. Satuan: detik.

y

Urutan data numerik yang sesuai dengan setiap titik waktu yang ditentukan.

Tidak tersedia.

p

Orde model AR.

Nilainya bertipe data long. Nilai valid: 2, 3, 4, 5, 6, 7, dan 8.

d

Orde model ARIMA.

Nilainya bertipe data long. Nilai valid: [1, 3].

q

Orde model ARMA.

Nilainya bertipe data long. Nilai valid: 2, 3, 4, 5, 6, 7, dan 8.

nPred

Jumlah titik untuk prediksi.

Nilainya bertipe data long. Nilai valid: [1, 5 × p].

isSmooth

Menentukan apakah akan menyaring data mentah.

Nilainya bertipe data Boolean. Nilai defaultnya adalah true, yang menunjukkan bahwa data mentah disaring.

Contoh pernyataan query adalah sebagai berikut:

* | select ts_predicate_arima(stamp, value, 3, 1, 2, 4) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp)
Catatan

Hasilkeluaran serupa dengan fungsi ts_predicate_simple. Untuk informasi lebih lanjut, lihat hasil keluaran fungsi ts_predicate_simple.

ts_regression_predict

Format fungsi:

select ts_regression_predict(x, y, nPred, algotype,processType)

Tabel berikut mencantumkan parameter dari format fungsi.

Parameter

Deskripsi

Nilai

x

Urutan waktu. Titik-titik waktu diurutkan secara menaik sepanjang sumbu horizontal.

Setiap titik waktu adalah timestamp Unix. Satuan: detik.

y

Urutan data numerik yang sesuai dengan setiap titik waktu yang ditentukan.

Tidak tersedia.

nPred

Jumlah titik untuk prediksi.

Nilainya bertipe data long. Nilai valid: [1, 500].

algotype

Tipe algoritma untuk prediksi.

Nilai valid:

  • origin: menggunakan algoritma Gradient Boosted Regression Tree (GBRT) untuk prediksi.

  • forest: menggunakan algoritma GBRT untuk prediksi berdasarkan komponen tren yang diuraikan oleh Seasonal and Trend decomposition menggunakan Loess (STL), dan kemudian menggunakan model aditif untuk menjumlahkan komponen yang diuraikan dan mendapatkan data yang diprediksi.

  • linear: menggunakan algoritma Regresi Linear untuk prediksi berdasarkan komponen tren yang diuraikan oleh STL, dan kemudian menggunakan model aditif untuk menjumlahkan komponen yang diuraikan dan mendapatkan data yang diprediksi.

processType

Menentukan apakah akan memproses data sebelumnya.

Nilai valid:

  • 0: Tidak ada pemrosesan data tambahan yang dilakukan.

  • 1: Data abnormal dihapus sebelum prediksi.

Contoh:

  • Pernyataan query adalah sebagai berikut:

    * and h : nu2h05202.nu8 and m: NET |  select ts_regression_predict(stamp, value, 200, 'origin') from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log group by stamp order by stamp)
  • Hasil keluaranThe following figure shows the output result.

Tabel berikut mencantumkan item tampilan.

Item Tampilan

Deskripsi

Sumbu horizontal

unixtime

Timestamp Unix dari data. Satuan: detik.

Sumbu vertikal

src

Data mentah.

predict

Data yang dihasilkan setelah operasi penyaringan dilakukan.

ts_anomaly_filter

Format fungsi:

select ts_anomaly_filter(lineName, ts, ds, preds, probs, nWatch, anomalyType)

Tabel berikut mencantumkan parameter dari format fungsi.

Parameter

Deskripsi

Nilai

lineName

Nama setiap kurva. Nilainya bertipe varchar.

Tidak tersedia

ts

Urutan waktu dari kurva, yang menunjukkan waktu pada kurva saat ini. Nilai parameter adalah array poin waktu bertipe data double yang diurutkan secara menaik.

Tidak tersedia

ds

Urutan nilai aktual dari kurva. Nilai parameter adalah array poin data bertipe data double. Nilai parameter ini memiliki panjang yang sama dengan nilai parameter ts.

Tidak tersedia

preds

Urutan nilai prediksi dari kurva. Nilai parameter adalah array poin data bertipe data double. Nilai parameter ini memiliki panjang yang sama dengan nilai parameter ts.

Tidak tersedia

probs

Urutan hasil deteksi anomali dari kurva. Nilai parameter adalah array poin data bertipe data double. Nilai parameter ini memiliki panjang yang sama dengan nilai parameter ts.

Tidak tersedia

nWatch

Jumlah nilai aktual yang baru-baru ini diamati pada kurva. Nilainya bertipe data long. Nilainya harus lebih kecil dari jumlah poin waktu pada kurva.

Tidak tersedia

anomalyType

Tipe anomali yang akan disaring. Nilainya bertipe data long.

Nilai valid:

  • 0: semua anomali

  • 1: anomali positif

  • -1: anomali negatif

Contoh:

  • Pernyataan query adalah sebagai berikut:

    * | select res.name, res.ts, res.ds, res.preds, res.probs 
         from ( 
             select ts_anomaly_filter(name, ts, ds, preds, probs, cast(5 as bigint), cast(1 as bigint)) as res 
           from (
             select name, res[1] as ts, res[2] as ds, res[3] as preds, res[4] as uppers, res[5] as lowers, res[6] as probs 
         from (
             select name, array_transpose(ts_predicate_ar(stamp, value, 10)) as res 
             from (
               select name, stamp, value from log where name like '%asg-%') group by name)) );
  • Hasil keluaran

    | name                     | ts                                                   | ds          | preds     | probs       |
    | ------------------------ | ---------------------------------------------------- | ----------- | --------- | ----------- |
    | asg-bp1hylzdi2wx7civ0ivk | [1.5513696E9, 1.5513732E9, 1.5513768E9, 1.5513804E9] | [1,2,3,NaN] | [1,2,3,4] | [0,0,1,NaN] |