多周期估計函數支持對不同時間段內的時序進行周期估計,通過傅立葉變換等一系列操作進行周期的提取。
函數列表
函數 | 說明 |
對不同時間段內的時序數據進行周期估計。 | |
通過傅立葉變換,計算輸入時序曲線的周期性。該方法可以較好地用于快速判斷曲線的周期性。 |
ts_period_detect
函數格式:
select ts_period_detect(x,y,minPeriod,maxPeriod)
參數說明如下:
參數 | 說明 | 取值 |
x | 時間列,從小到大排列。 | 格式為Unixtime時間戳,單位為秒。 |
y | 數值列,對應某時刻的數據。 | 無 |
minPeriod | 根據您的時序曲線,預估周期最小長度占序列總長度的比例。 | 小數形式,取值范圍為(0,1]。 |
maxPeriod | 根據您的時序曲線,預估周期最大長度占序列總長度的比例。 重要 maxPeriod必須大于minPeriod,且不超過0.5。如果您設置的maxPeriod超過0.5,系統默認按0.5執行。 | 小數形式,取值范圍為(0,1]。 |
示例:
查詢分析
* | select ts_period_detect(stamp, value, 0.2, 0.5) from ( select '("__time__" - ("__time__" % 120))' as stamp, avg(v) as value from log GROUP BY stamp order by stamp )
返回結果
返回結果為數組類型,包括Unix時間戳、統計的數值(例如平均流量)以及周期狀態碼(一個1.0狀態碼代表下圖中的一個紅圈)。您可以使用時序圖展示返回結果,如下圖所示:
下圖中兩個紅圈之間的陰影部分表示一個周期,各個周期間的曲線趨于相同。
ts_period_classify
函數格式:
select ts_period_classify(stamp,value,instanceName)
參數說明如下:
參數 | 說明 | 取值 |
stamp | 時間列,從小到大排列。 | 格式為Unixtime時間戳,單位為秒。 |
value | 數值列,對應某時刻的數據。 | 無 |
instanceName | 曲線對應的名稱。 | 無 |
示例:
查詢分析
* and h : nu2h05202.nu8 | select ts_period_classify(stamp, value, name) from log
返回結果
顯示項如下:
顯示項 | 說明 |
line_name | 曲線名稱。 |
prob | 時序曲線中主周期的占比,范圍為[0, 1],實驗中可以取0.15。 |
type | 曲線的類別:
|