全部產品
Search
文件中心

Simple Log Service:變點檢測函數

更新時間:Jun 30, 2024

變點檢測函數一般用於對時序資料中的變點進行檢測。

變點檢測函數支援對如下兩種變點形態進行檢測:

  • 指定時間段內的某些統計特性發生了變化。

  • 序列資料中存在較為明顯的斷層。

函數列表

函數

說明

ts_cp_detect

尋找時序序列中具有不同統計特性的區間,區間端點即為變點。

ts_breakout_detect

尋找時序序列中,某統計量發生陡升或陡降的點。

ts_cp_detect

函數格式:

  • 若您無法確定視窗大小,可以使用如下格式的函數,該函數調用的演算法預設會使用長度為10的視窗進行檢測。

    select ts_cp_detect(x, y, samplePeriod)
  • 若您需要根據業務曲線進行效果調試,可以使用如下格式的函數,通過設定參數minSize進行效果調試。

    select ts_cp_detect(x, y, minSize) 

參數說明如下:

參數

說明

取值

x

時間列,從小到大排列。

格式為Unixtime時間戳記,單位為秒。

y

數值列,對應某時刻的資料。

-

minSize

最小連續區間長度。

最小值為3,最大值不超過當前輸入資料長度的1/10。

樣本:

  • 查詢分析

    * | select ts_cp_detect(stamp, value, 3) from (select '("__time__" - ("__time__" % 10))' as stamp, avg(v) as value from log GROUP BY stamp order by stamp) 
  • 輸出結果輸出結果

顯示項目如下:

顯示項目

說明

橫軸

unixtime

資料的時間戳記,單位為秒,例如1537071480。

縱軸

src

濾波前的資料,例如1956092.7647745228。

prob

該點為變點的機率,取值範圍為0~1。

ts_breakout_detect

函數格式:

select ts_breakout_detect(x, y, winSize) 

參數說明如下:

參數

說明

取值

x

時間列,從小到大排列。

格式為Unixtime時間戳記,單位為秒。

y

數值列,對應某時刻的資料。

-

winSize

最小連續區間長度。

最小值為3,最大值不超過當前輸入資料長度的1/10。

樣本:

  • 查詢分析

    * | select ts_breakout_detect(stamp, value, 3) from (select '("__time__" - ("__time__" % 10))' as stamp, avg(v) as value from log GROUP BY stamp order by stamp) 
  • 輸出結果輸出結果

顯示項目如下:

顯示項目

說明

橫軸

unixtime

資料的時間戳記,單位為秒,例如1537071480。

縱軸

src

濾波前的資料,例如1956092.7647745228。

prob

該點為變點的機率,取值範圍為0~1。