为了方便对样本数据进行分析和处理,对数据进行平滑、滤波等预处理操作。
函数 | 说明 |
针对输入的时序曲线进行滤波,从而发现时序曲线形态。物联网设备数据采集的原始数据中,大都含有各种各样的噪声影响。通过滑动平均函数,采集相邻数据的信息,对数据曲线进行平滑,便于进行数据分析。 | |
针对输入的时序曲线进行滤波,从而发现时序曲线形态。物联网设备数据采集的原始数据中,大都含有各种各样的噪声影响。通过加权平均函数,采集相邻数据的信息并赋予不同的权重指标,对数据曲线进行平滑,便于进行数据分析。 |
滑动平均函数
只支持华东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