首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Grafana中用插值法从稀疏数据集中绘制日增量数据?

如何在Grafana中用插值法从稀疏数据集中绘制日增量数据?
EN

Stack Overflow用户
提问于 2022-10-12 08:49:33
回答 1查看 49关注 0票数 0

如何在Grafana中的条形图中绘制时间分组增量数据,但在计算增量之前使用需要插值的稀疏数据源?

我的数据源是一个InfluxDB,它具有稀疏的累积值时间序列(例如:煤气表读数)。数据点通常相隔几天。我的目标是创建一个每天增值的条形图。对于缺失的值,线性插值将做得很好。

我想出了

代码语言:javascript
复制
SELECT spread("value") FROM "gas" WHERE $timeFilter GROUP BY time(1d) fill(linear)

但是这不能工作,因为fill(linear)命令是在spread(value)命令之后执行的。如果我使用的时间段远远大于输入数据的粒度(例如,时间(14d)),它将显示正确的条形图,但一旦使用较小的周期,条形图就会折叠为0。

如何在差分运算前应用插补?

EN

回答 1

Stack Overflow用户

发布于 2022-10-12 13:45:44

您所描述的情况是由以下事实引起的: fill()只在查询中没有时间()期间在组中有任何内容时才填充数据。如果得到spread=0,那么在此期间可能只有一个值,因此不使用fill()。我可以给你建议的是,使用子查询与较低的组周期时间,准备插值你的原始信号。这就是一个例子:

代码语言:javascript
复制
SELECT spread("interpolated_value") FROM (
  SELECT first("value") as "interpolated_value" from "gas" 
  WHERE $timeFilter 
  GROUP BY time(10s) fill(linear)
) 
GROUP BY time(1d) fill(none)

Subquery将为每10s期间准备值(我建议尽可能将此值设置为您可以接受的最高值)。如果在10s周期是值,它将选择第一个,如果在此期间没有值,它将进行插值。

在主查询中,使用准备好的插值值集来计算价差。

以上仅描述了如何在短周期内获得内插数据。我强烈建议考虑这些数据的可用性。由线性插值数据计算天平可能有可疑的可靠性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74039009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档