influxdb - 自月初以来按月汇总,使用 Flux 语言时区偏移
问题描述
我已经填充了数据库(Influxdb 2.0.7),所以它在一年中的每一天都包含 1 的值:
_time:time _value:int
------------------------------ --------------------------
2021-01-01T00:00:00.000000000Z 1
2021-01-02T00:00:00.000000000Z 1
2021-01-03T00:00:00.000000000Z 1
2021-01-04T00:00:00.000000000Z 1
2021-01-05T00:00:00.000000000Z 1
2021-01-06T00:00:00.000000000Z 1
...
现在我想查询数据库,以便对每个月的数据求和:
from(bucket: "my_bucket")
|> range(start: 1609459200, stop: 1640995200)
...
|> window(every: 1mo, offset: 0s, createEmpty: true)
|> sum()
这适用于0s 偏移量:
Table: keys: [_start, _stop]
_start:time _stop:time _value:int
------------------------------ ------------------------------ --------------------------
2021-01-01T00:00:00.000000000Z 2021-02-01T00:00:00.000000000Z 31
Table: keys: [_start, _stop]
_start:time _stop:time _value:int
------------------------------ ------------------------------ --------------------------
2021-02-01T00:00:00.000000000Z 2021-03-01T00:00:00.000000000Z 28
Table: keys: [_start, _stop]
_start:time _stop:time _value:int
------------------------------ ------------------------------ --------------------------
2021-03-01T00:00:00.000000000Z 2021-04-01T00:00:00.000000000Z 31
Table: keys: [_start, _stop]
_start:time _stop:time _value:int
------------------------------ ------------------------------ --------------------------
2021-04-01T00:00:00.000000000Z 2021-05-01T00:00:00.000000000Z 30
...
但是,如果我将偏移量设置为负数(-7200s = 移动间隔到 +02:00 时区偏移量),它会返回奇怪的结果:
from(bucket: "my_bucket")
|> range(start: 1609459200, stop: 1640995200)
...
|> window(every: 1mo, offset: -7200s, createEmpty: true)
|> sum()
请注意,第 3 个月有 28 个项目而不是 31 个项目,并且窗口以 2021-03-28 而不是 2021-03-31T22:00:00 结束。
Table: keys: [_start, _stop]
_start:time _stop:time _value:int
------------------------------ ------------------------------ --------------------------
2021-01-01T00:00:00.000000000Z 2021-01-31T22:00:00.000000000Z 31
Table: keys: [_start, _stop]
_start:time _stop:time _value:int
------------------------------ ------------------------------ --------------------------
2021-01-31T22:00:00.000000000Z 2021-02-28T22:00:00.000000000Z 28
Table: keys: [_start, _stop]
_start:time _stop:time _value:int
------------------------------ ------------------------------ --------------------------
2021-02-28T22:00:00.000000000Z 2021-03-28T22:00:00.000000000Z 28
Table: keys: [_start, _stop]
_start:time _stop:time _value:int
------------------------------ ------------------------------ --------------------------
2021-03-31T22:00:00.000000000Z 2021-04-30T22:00:00.000000000Z 30
知道为什么 Flux 语言会返回这样的结果吗?还是我查询有问题?
解决方案
推荐阅读
- azure - Azure 防火墙日志分析。如何使用网络规则查找内部网络流量
- c# - 如何检查来自 URL 的字符串值是否存在于 Enum 中并将其值在结果中分配给变量?
- python - Python Pool.map() 没有终止,但仅在调试模式下
- npm - .npmrc 中是否可以有两个具有不同身份验证数据的私有注册表?
- python-3.x - 如何使用python过滤掉列的第一个值,然后是第二个值,然后是第三个等等,直到第n个
- laravel - DOMPDF 在 Ubuntu 服务器上已弃用?
- sql - 使用 Logstash 和 Kibana 从两个不同的数据库中提取数据
- ragel - 在 ragel 中扫描“引用字符串”的正确方法是什么?
- java - 如何从 corba idl 获取 JAVA 对象
- php - 您可以通过为您网站中不同类型的文件制作单独的文件来使您的 public_html 更有条理吗?