全部產品
Search
文件中心

Simple Log Service:多周期估計函數

更新時間:Jun 30, 2024

多周期估計函數支援對不同時間段內的時序進行周期估計,通過傅立葉變換等一系列操作進行周期的提取。

函數列表

函數

說明

ts_period_detect

對不同時間段內的時序資料進行周期估計。

ts_period_classify

通過傅立葉變換,計算輸入時序曲線的周期性。該方法可以較好地用於快速判斷曲線的周期性。

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

曲線的類別:

  • type = -1:表示曲線長度太短(小於64個點)。

  • type = -2:表示曲線缺失率很高(缺失率超過20%)。

  • type = 0:表示曲線有明顯的周期性。