【问题标题】:Query InfluxDB for specific hours each day which fall across different days because of UTC and my time zone由于 UTC 和我的时区,每天查询 InfluxDB 的特定时间,这些时间跨越不同的日子
【发布时间】:2019-10-12 05:27:21
【问题描述】:

我正在查询 influxdb 以在 grafana 中生成图表。 Influxdb 包含 kW 太阳能发电量,每 5 秒有一个时间戳。我想汇总每天下午 4 点到 9 点的太阳能发电量。在 UTC 中,这变为 2300 到 0400。我可以做 2300 到 0000 和单独的 0000 到 0400,但我不知道如何将这些与 grafana 一起添加。或者在一个查询中执行 2300-0400 会很好。这是我对 2300 到 0000 和 0000 到 0400 的 2 个查询:

SELECT first("integral") FROM (  SELECT integral("kW",1h) FROM "solar"  WHERE TIME >'2019-10-04T23:00:00Z' GROUP BY time(1h))  WHERE TIME >'2019-10-04T23:00:00Z' GROUP BY time(24h,23h)
SELECT first("integral") FROM (  SELECT integral("kW",1h) FROM "solar"  WHERE TIME >'2019-10-05' GROUP BY time(4h))  WHERE TIME >'2019-10-05' GROUP BY time(24h)

更新: 以下适用于我想要的时间跨度的 1 小时:

SELECT first("integral") FROM (  SELECT integral("kW",1h) FROM "solar"  WHERE TIME >'2019-10-04 16:00:00' GROUP BY time(1h))  WHERE TIME >'2019-10-04 16:00:00' GROUP BY time(24h,16h) tz('America/Los_Angeles')

但是,如果我将时间跨度增加到 2 小时,它会返回错误的结果:

SELECT first("integral") FROM (  SELECT integral("kW",1h) FROM "solar"  WHERE TIME >'2019-10-04 16:00:00' GROUP BY time(2h))  WHERE TIME >'2019-10-04 16:00:00' GROUP BY time(24h,16h) tz('America/Los_Angeles') 

【问题讨论】:

    标签: time intervals grafana influxdb


    【解决方案1】:

    您可以使用时区TZ 子句https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/#the-time-zone-clause

    您也可以从time(5h) 的 23:00 组开始(基本上包括第二天的数据并保存在当天的 23:00 点),然后取最后一个(而不是第一个) 24 小时内的结果。

    类似(注意额外的as kW 别名)

    SELECT last("kW") FROM (  SELECT integral("kW",1h) as kW FROM "solar"  WHERE TIME >'2019-10-04T23:00:00Z' GROUP BY time(5h))  WHERE TIME >'2019-10-04T23:00:00Z' GROUP BY time(24h)
    

    或者做上面的 + TZ。
    不确定在您的用例中究竟有什么用。

    【讨论】:

    • 我不确定 time(5h) 是否能持续多天。我认为您是先服用还是最后服用并不重要,因为 5 小时不分为 24 小时。所以第一天它可能会起作用,但第二天的“第一”或“最后”时间段是不同的。
    • 请参阅上面的更新。使用时区规范,我可以返回我想要的时间跨度的 1h,但是如果我将它增加到 2h,那么它不会返回正确的值。困惑。
    • 关于您的第一个评论,它适用于您给它的任何时间段,因此它应该包含第二天的数据,但您是对的,5 小时的时间段不适合 24 小时,我以某种方式说服自己确实如此……关于您的第二条评论,这在某种程度上取决于您的数据。如果按 2 小时分组,是否必须调整积分才能在 2 小时内工作?
    • 积分是一个多小时才能得到kWh。我有一种感觉,因为它转换为 Z,然后又过了两天。我会仔细检查,只要它们不超过两天,所有这些不同的时间跨度都会在更早的时间段内起作用。我可能应该在某个地方的 influxdb 网站上发帖?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    相关资源
    最近更新 更多