0

我有一些发出时间序列数据的设备:

[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 有更多的测量值。我是否需要跟踪每个设备对/三重奏的平均值?也许最好根本不进行聚合并获得最大的灵活性?或者如果这只是一个很好的功能,是否可以接受不允许这样的跨设备查询?

4

1 回答 1

1

您是否考虑过计算加权平均值

一个简单的例子是这样的:

(No of measurements of d1)*d1 measurement + (No of measurements of d2)*d2 measurement
_____________________________________________________________________________________
                   Total number of measurements of d1 & d2

此测量将考虑每个设备的测量次数,因此不会向下偏移。

于 2013-07-16T03:28:16.750 回答