问题描述
SELECT TIME_FLOOR(__time,'PT1h') AS "__time_time_floor",AVG("value"),COUNT(*) AS "Count"
FROM "database"
WHERE "__time" >= CURRENT_TIMESTAMP - INTERVAL '1' DAY AND "device" = 'device_1'AND
"metric"='metric_1'
GROUP BY 1
ORDER BY "__time_time_floor" DESC;
基本上,我有四列:时间戳、设备、指标和值。对于每一分钟和特定的设备/指标组合(例如设备 #1 和指标 #1),数据库存储一个值。上面的代码将一小时内输出的所有值取平均值,所以我每小时只能得到 1 个值。
我正在尝试使用时间序列将此代码传输到 pydruid。这是我目前所拥有的:
time_from = '2020-11-19T06:00:00-06:00'
time_to = '2020-11-21T06:00:00-06:00'
time_range=(time_from,time_to)
# Connect to Druid using http
client = pydruid('website','druid/v2')
ts = client.timeseries(
datasource='name_of_datasource',granularity='hour',intervals='/'.join(time_range),aggregations={'value': doublesum('value'),'count': doublesum('count')},post_aggregations={'avg_value': (Field('value') / Field('count'))},filter=(Dimension("device") == "device_1") &
(Dimension("metric") == "metric_1"))
df = ts.export_pandas()
print(df)
问题在于所有计数值都为零。我不知道为什么。将不胜感激这方面的任何帮助。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)