Среднее измерение по нескольким устройствам

У меня есть несколько устройств, которые выдают данные временных рядов:

[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), так как оно смещено вниз, поскольку не учитывается, что на устройстве 1 было больше измерений. Нужно ли отслеживать среднее значение для каждой пары/тройки устройств? Может быть, лучше вообще не делать агрегации и получить максимальную гибкость? Или принято не разрешать такие кросс-девайсные запросы, если это просто хорошая функция?


person Yaron Naveh    schedule 14.07.2013    source источник


Ответы (1)


Рассматривали ли вы расчет взвешенного среднего?

Простой пример будет таким:

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

Это измерение будет учитывать количество измерений каждого устройства и поэтому не будет смещено вниз.

person Community    schedule 16.07.2013