我在clickhouse有一张table。用于保存统计数据和度量。
结构如下:
datetime|metric_name|metric_value
我想保持统计和限制数量的访问在1分钟,1小时,1天等。所以我需要在最后一分钟,每小时或每一天的事件计数,我想准备一个图表统计。
我不知道该怎么问。我得到的统计指标计数的基础上准确的例如1分钟,1小时,1天等。
我曾经在inflxdb上工作过:
SELECT SUM(value) FROM `TABLE` WHERE `metric_name`=`metric_value` AND time >= now() - 1h GROUP BY time(5m) fill(0)
事实上,我想得到前1个小时每5分钟每一个度量的数量。
我不知道如何使用聚合解决这个问题
1条答案
按热度按时间pes8fvy91#
clickhouse具有生成日期/日期时间组存储桶的功能,例如tostartofweek、tostartofhour、tostartoffiveminute。你也可以使用
intDiv
函数手动划分值范围。然而fill
功能仍在路线图中。例如,您可以重写inflow sql,而不必像这样填充clickhouse,
你也可以参考这个讨论https://github.com/yandex/clickhouse/issues/379
更新
有一个
timeSlots
可以帮助生成空桶的函数。下面是一个有效的例子