В настоящее время я вычисляю среднее значение для одного измерения в источнике данных Druid, используя запрос временных рядов через pydruid. Это основано на примере в документации (https://github.com/druid-io/pydruid):
from pydruid.client import PyDruid
from pydruid.utils.aggregators import count, doublesum
client = PyDruid()
client.timeseries(
datasource='test_datasource',
granularity='hour',
intervals='2019-05-13T11:00:00.000/2019-05-23T17:00:00.000',
aggregations={
'sum':doublesum('dimension_name'),
'count': count('rows')
},
post_aggregations={
'average': (
Field('sum')/ Field('count')
)
}
)
Моя проблема в том, что я не знаю, что делает счетчик («строк»). Кажется, это дает общее количество строк для источника данных и не фильтруется по измерению. Поэтому я не знаю, будет ли среднее значение неправильным, если одна строка в рассматриваемом измерении имеет нулевое значение.
Мне было интересно, знает ли кто-нибудь, как правильно рассчитать среднее значение?
Большое спасибо