多周期估计函数支持对不同时间段内的时序进行周期估计,通过傅立叶变换等一系列操作进行周期的提取。
函数列表
函数 | 说明 |
---|---|
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,1]。 |
示例:
- 查询分析
* | select ts_period_detect(stamp, value, 0.2, 1.0) from ( select __time__ - __time__ % 120 as stamp, avg(v) as value from log GROUP BY stamp order by stamp )
- 输出结果
显示项如下:
显示项 | 说明 |
---|---|
period_id | 周期编号的数组,长度为1,其中值为0时,表示原始序列。 |
time_series | 表示时间戳序列。 |
data_series | 表示每个时间戳对应的结果。
|
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 | 曲线的类别:
|