【问题标题】:clickhouse - how get count datetime per 1minute or 1day ,clickhouse - 如何每 1 分钟或 1 天获取计数日期时间,
【发布时间】:2019-05-29 04:05:19
【问题描述】:

我在Clickhouse 有一张桌子。用于保留统计信息和指标。
结构是:

datetime|metric_name|metric_value

我想在 1 分钟、1 小时、1 天等内保留统计信息并限制访问次数。因此,我需要每个 metric_name 在最后一分钟、一小时或一天的事件计数,并且我想在图表中准备统计数据。
我不知道如何进行查询。我根据确切的值(例如 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分钟每个指标的个数。

我不知道如何使用聚合来解决这个问题

【问题讨论】:

    标签: clickhouse


    【解决方案1】:

    ClickHouse 具有生成日期/日期时间组桶的功能,例如 toStartOfWeek、toStartOfHour、toStartOfFiveMinute。您还可以使用intDiv 函数手动划分值范围。不过,fill 功能仍在路线图中。

    比如你可以这样重写influx sql而不填ClickHouse,

    SELECT SUM(value) FROM `TABLE` WHERE `metric_name`=`metric_value` AND 
    time >= now() - 1h GROUP BY toStartOfFiveMinute(time)
    

    也可以参考这个讨论https://github.com/yandex/ClickHouse/issues/379

    更新

    有一个timeSlots 函数可以帮助生成空桶。这是一个工作示例

    SELECT
        slot,
        metric_value_sum
    FROM
    (
        SELECT
            toStartOfFiveMinute(datetime) AS slot,
            SUM(metric_value) AS metric_value_sum
        FROM metrics
        WHERE (metric_name = 'k1') AND (datetime >= (now() - toIntervalHour(1)))
        GROUP BY slot
    )
    ANY RIGHT JOIN
    (
        SELECT arrayJoin(timeSlots(now() - toIntervalHour(1), toUInt32(3600), 300)) AS slot
    ) USING (slot)
    

    【讨论】:

    • 谢谢。在您看来,填写空值。以下方法是否合适且最佳? stackoverflow.com/a/50325639/1348284
    • 感谢您的更新!我如何在任何范围内使用 intDiv 而不是 toStartOfFiveMinute?例如,过去 2 分钟每 10 秒一次。
    • 这是每 10 秒循环一次的表达式 toDateTime(intDiv(toUInt32(now()), 10) * 10); 希望你明白
    • 此查询:SELECT SUM(value) FROM TABLE WHERE metric_name = metric_value AND time >= now() - 1h GROUP BY toStartOfFiveMinute(time) 返回异常:DB::Exception: Column created_at is not under aggregate function and not in GROUP BY..
    猜你喜欢
    • 2021-11-04
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 2021-12-09
    • 1970-01-01
    相关资源
    最近更新 更多