DRUID SQL:为什么这个 Druid SQL 的“count”=0使用 pydruid 函数:timeseries?

问题描述

因此,我使用 Druid sql 创建了以下代码

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 (将#修改为@)