我正在将我的 InfluxDB1.8 版本迁移到 InfluxDB2.0 我正在使用 influxDB2.0 数据库并使用 grafana 来显示结果。 我作为数据插入的是我的P1表的结果,虽然结果是总值,但我想计算并显示每天的结果。 插入的是当前(气体使用)值。通过计算一天开始和结束的差异,我得到了我每天的使用结果。
我确实找到了一种方法来执行此操作 1 天。具有传播功能。但我没有让它工作超过 1 天的时间。
但是现在要在更长的时间范围内显示每日使用情况。我没有找到正确的选择来让它工作 周结果
有人有想法吗?
查询1天:
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "Gas-usage")
|> filter(fn: (r) => r["_field"] == "value")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> spread(column: "_value")```
我对 1.8 做了一些检查,那里的工作原理是:
SELECT spread("value")
FROM "Gas-usage"
WHERE $timeFilter
GROUP BY time(1d) fill(null) tz('Europe/Berlin')
这个查询在 influxdb 2.0 中的等价物是什么?
尝试更改聚合窗口,如下所示:
|> aggregateWindow(every: 1d, fn: mean)
在 aggreagateWindow 函数中使用传播函数。
应该是这样的:
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "Gas-usage")
|> filter(fn: (r) => r["_field"] == "value")
|> aggregateWindow(every: 1d, fn: spread, createEmpty: false)
你是个天才。我是 SO 的新手,所以它不允许我直接附加图像,但传播功能是我唯一缺少的部分。图中最上面的图表用于手动检查每日总数是否正确。
编辑:increase() 不是我想要的。我应该一直在使用 cumulativeSum()。下面的查询被编辑为正确的。
from (bucket: "${buckets}")
|> range(start: -7d)
|> filter(fn: (r) => r._measurement == "Tstat")
|> filter(fn: (r) => r["Location"] == "${site}")
|> filter(fn: (r) => r["_field"] == "compHeat1" or r["_field"] == "auxHeat1" or r["_field"] == "compCool1")
|> cumulativeSum(columns: ["_value"])
|> aggregateWindow(every: 1d, fn: spread, createEmpty: false)
|> yield(name: "spread")