多周期估計函數支援對不同時間段內的時序進行周期估計,通過傅立葉變換等一系列操作進行周期的提取。
函數列表
|
函數 |
說明 |
|
對不同時間段內的時序資料進行周期估計。 |
|
|
通過傅立葉變換,計算輸入時序曲線的周期性。該方法可以較好地用於快速判斷曲線的周期性。 |
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(時間軸名稱,即伸縮組 ID)、prob(機率值)和 type(類型標記,
-1.0表示異常,0.0表示正常)。例如,伸縮組asg-2zgicin6zf5ewg188pg5的 prob 為1.0、type 為-1.0,表示該時間軸被判定為異常。
顯示項目如下:
|
顯示項目 |
說明 |
|
line_name |
曲線名稱。 |
|
prob |
時序曲線中主周期的佔比,範圍為[0, 1],實驗中可以取0.15。 |
|
type |
曲線的類別:
|