多周期估计函数支持对不同时间段内的时序进行周期估计,通过傅立叶变换等一系列操作进行周期的提取。
函数列表
|
函数 |
说明 |
|
对不同时间段内的时序数据进行周期估计。 |
|
|
通过傅立叶变换,计算输入时序曲线的周期性。该方法可以较好地用于快速判断曲线的周期性。 |
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 |
曲线的类别:
|