我有一些设备可以发出时间序列数据:
[deviceID],[time],[value]
我使用石墨来跟踪这些数据,但问题也适用于其他数据库。
我已将数据保留/精度定义为5秒 - 因此每个设备每5秒只有一个值,这是在此期间所做的所有观察的平均值。例如,如果这些是真实的测量值:
device1 1/1/2012 08:00:00 12
device1 1/1/2012 08:00:01 10
device2 1/1/2012 08:00:01 2
device1 1/1/2012 08:00:02 14
然后保存的数据将是:
device1 1/1/2012 08:00:00 12
device2 1/1/2012 08:00:00 2
如何查询这段时间内两台设备的平均值?我不能仅仅对保存的数据(= 7)取平均值,因为它偏向下,因为它不认为device1有更多的测量值。我是否需要跟踪每个设备对/三重奏的平均值?也许最好不要进行聚合并获得最大的灵活性?或者接受不允许这样的跨设备查询,如果这只是一个很好的功能?
答案 0 :(得分:1)
您是否考虑过计算weighted mean?
一个简单的例子是这样的:
(No of measurements of d1)*d1 measurement + (No of measurements of d2)*d2 measurement
_____________________________________________________________________________________
Total number of measurements of d1 & d2
此测量将考虑每个设备的测量次数,因此不会向下偏差。