数据抽稀
如传感器5s上报一次数据,某些场景下,为了性能考虑,需要20s或者5min返回一个point
select last(mileage) from device_data_old where deviceId= '00130846142' and time> now() -60m group by time(5m);
注意: 03:40
取的是03:44:55
时间点的值。即time返回的是滚动窗口的开始时间。
https://docs.influxdata.com/influxdb/v2/query-data/influxql/functions/selectors/
滚动平均算法(Rolling Average)
select MOVING_AVERAGE(speed,10) from device_data_old where deviceId= '00130846142' and time> now() -60m;
滚动平均的计算步骤如下:
- 选择窗口大小:确定滚动窗口的大小(通常是一个固定的时间段或数据点的数量)。
- 计算子集平均值:对于时间序列中的每一个数据点,计算以该点为中心的滚动窗口内所有数据点的平均值。
- 移动窗口:将窗口从数据集的开始位置逐渐向右移动,每次移动一个数据点,重复步骤2,直到数据集的末尾。
滚动平均在许多领域都有广泛的应用:
- 股票市场分析:用于平滑股价波动,识别股票价格的长期趋势,常用的窗口大小有20日、50日和200日等。
- 信号处理:用于滤波和平滑信号,减少噪声影响,提高信号的稳定性。
- 经济数据分析:用于分析经济指标(如GDP、失业率等)的变化趋势,帮助制定经济政策。
- 工业生产:用于监控生产过程中的参数变化,及时发现并处理异常情况。
- 气象学:用于平滑温度、降水量等气象数据,识别长期气候趋势。