为了方便对样本数据进行分析和处理,对数据进行平滑、滤波等预处理操作。
函数 | 说明 |
针对输入的时序曲线进行滤波,从而发现时序曲线形态。物联网设备数据采集的原始数据中,大都含有各种各样的噪声影响。通过滑动平均函数,采集相邻数据的信息,对数据曲线进行平滑,便于进行数据分析。 | |
针对输入的时序曲线进行滤波,从而发现时序曲线形态。物联网设备数据采集的原始数据中,大都含有各种各样的噪声影响。通过加权平均函数,采集相邻数据的信息并赋予不同的权重指标,对数据曲线进行平滑,便于进行数据分析。 |
滑动平均函数
只支持华东2(上海)地域。
滑动平均函数支持的最大数据量为5000万行。
用于离线调度的滑动平均函数。
针对输入的时序曲线进行滤波,从而发现时序曲线形态。物联网设备数据采集的原始数据中,大都含有各种各样的噪声影响。通过滑动平均函数,采集相邻数据的信息,对数据曲线进行平滑,便于进行数据分析。
函数格式
SELECT WEIGHTED_AVERAGE(num,windowSize)
输入参数
num
:必选。double类型。数值列。windowSize
:必选。int类型。窗口大小,范围为1-20。
输出参数
output
:double类型。第一个滑动窗口的末尾,从输入数值序列的第一个值开始。输出为(值1+ 值2 + … + 值n)/windowSize
(不足windowSize
则按窗口内数值的实际数量算)。
函数示例
使用滑动平均函数。
从表
Values
中选取num,b,c,d
四列的值,并计算num
列的滑动平均值,窗口长度为2。表Values
的值是(1,1,1,1),(2,2,2,2),(3,3,3,3)
。SELECT MOVING_AVERAGE(num,2),b,c,d FROM Values (1,1,1,1),(2,2,2,2),(3,3,3,3) t(num,b,c,d);
num
列的数据分别是1、2、3。滑动窗口的末尾从1开始,因为第一个滑动窗口只有1,所以输出的平均值为1。窗口向后滑动,第二个滑动窗口内有数值1、2,所以输出(1+2)/2=1.5。窗口继续滑动,第三个滑动窗口内有数值2、3,所以输出(2+3)/2=2.5。_c0
b
c
d
1.0
1
1
1
1.5
2
2
2
2.5
3
3
3
指定滑动平均的计算顺序。
如果需要指定滑动平均的计算顺序,可以使用
ORDER BY
和一个外部的列。本示例中,表Values
的初始值是(3,3),(1,1),(2,2)
,在子语句中使用ORDER BY userTimestamp
对表Values
进行排序,排序后的表Values
值是(1,1),(2,2),(3,3)
。然后使用MOVING_AVERAGE
函数,取第一列num
的平均值。SELECT MOVING_AVERAGE(num,2),userTimestamp FROM (SELECT * FROM Values (3,3),(1,1),(2,2) t(num,userTimestamp) ORDER BY userTimestamp);
_c0
userTimestamp
1.0
1
1.5
2
2.5
3
加权平均函数
只支持华东2(上海)地域。
加权平均函数支持的最大数据量为5000万行。
用于离线调度的加权平均函数。
针对输入的时序曲线进行滤波,从而发现时序曲线形态。物联网设备数据采集的原始数据中,大都含有各种各样的噪声影响。通过加权平均函数,采集相邻数据的信息并赋予不同的权重指标,对数据曲线进行平滑,便于进行数据分析。
函数格式
SELECT WEIGHTED_AVERAGE(num,weight,windowSize)
输入参数
num
:必选。double类型。数值列。weight
:必选。double类型。权重列。windowSize
:必选。int类型。窗口大小,范围为1-20。
输出参数
output
:double类型。第一个滑动窗口的末尾,从输入数值序列的第一个值开始。输出为(值1 × 权重1 + 值2 × 权重2 + … + 值n × 权重n)/(权重1 + 权重2 + … + 权重n)。如果窗口内数值的数量不足windowSize
,则按数值的实际数量算。
函数示例
使用加权平均函数。
从表
Values
中选取num,weight,c,d
四列的值,并计算num
列的加权平均值,窗口长度为2。表Values
的值是(1,1,1,1),(2,2,2,2),(3,3,3,3)
。SELECT WEIGHTED_AVERAGE(num,weight,2),c,d FROM Values (1,1,1,1),(2,2,2,2),(3,3,3,3) t(num,weight,c,d);
num
列的数据分别是1、2、3,权重weight
分别是1、2、3。滑动窗口末尾从1开始,因为第一个滑动窗口只有1,所以输出的平均值为(1x1)/1=1。窗口向后滑动一位,第二个滑动窗口内有数值1、2,所以输出(1x1+2x2)/3=5/3。窗口继续滑动一位,第三个滑动窗口内有数值(2x2+3x3)/5=2.6。_c0
c
d
1.0
1
1
1.6666666666666667
2
2
2.6
3
3
指定加权平均的计算顺序。
如果需要指定加权平均的计算顺序,可以使用
ORDER BY
和一个外部的列。本示例中,表Values
的初始值是(3,3,3),(1,1,1),(2,2,2)
,在子语句中使用ORDER BY userTimestamp
对表Values
进行排序,排序后的表Values
值是(1,1,1),(2,2,2),(3,3,3)
。然后使用WEIGHTED_AVERAGE
函数,取第一列num
的加权平均值。SELECT WEIGHTED_AVERAGE(num,weight,2),userTimestamp FROM (SELECT * FROM Values (3,3,3),(1,1,1),(2,2,2) t(num,weight,userTimestamp) ORDER BY userTimestamp);
_c1
userTimestamp
1.0
1
1.6666666666666667
2
2.6
3