Influxdb 通量中单塔的多重操作

Influxdb 通量中单塔的多重操作,influxdb,flux,Influxdb,Flux,与InfluxQL相比,尝试在Flux中重新创建一些基础知识目前是相当困难的 我不知道如何要求多个投影 select max(temp) - min(temp) from my_measurement 我不知道如何在不断变化的情况下处理这件事 谢谢选项1-内置功能 最简单的方法可能是使用内置函数: 函数的作用是:输出指定列中最小值和最大值之间的差值 from(bucket:“示例bucket”) |>范围(起点:-5m) |>过滤器(fn:(r)=> r、 _测量==“cpu”和 r、 _字段

与InfluxQL相比,尝试在Flux中重新创建一些基础知识目前是相当困难的

我不知道如何要求多个投影

select max(temp) - min(temp) from my_measurement
我不知道如何在不断变化的情况下处理这件事

谢谢

选项1-内置功能 最简单的方法可能是使用内置函数:

函数的作用是:输出指定列中最小值和最大值之间的差值

from(bucket:“示例bucket”)
|>范围(起点:-5m)
|>过滤器(fn:(r)=>
r、 _测量==“cpu”和
r、 _字段==“使用情况_系统”
)
|>蔓延
选项2-自定义功能 如果您想要完全控制逻辑,那么为此创建一个。大致如下(假设您的数据至少有一个正值):

delta=(表=
桌子
|>减少(
//定义初始累加器记录
身份:{
最大值:0.0,
最小值:math.maxfloat,
增量:0.0
},
fn:(r,累加器)=>({
//更新每个reduce循环上的max和min
最大值:如果r.\U值>累加器最大值,则r.\U值否则累加器最大值,
最小值:如果r._值<累加器最小值,则r._值为其他累加器最小值,
//以三角洲为例
增量:累加器最大值-累加器最小值
})
)
//将输出表的_字段标签设置为值
//在outputField参数中提供
|>设置(键:“_字段”,值:outputField)
//将增量列重命名为_值
|>重命名(列:{delta:'.\u value})
//(可选)删除“最大”和“最小”列,因为不再需要它们
//|>下降(列:[“最大”、“最小”])
//在任何需要计算增量的地方应用自定义函数
从(桶:“我的桶”)
|>范围(开始时间:-1h)
//(可选)在此筛选以隔离所需的字段
//|>过滤器(fn:(r)=>)
|>delta()
这将产生上一个
范围
值的数据的最大值和最小值之间的差值(在本例中为-1h)。创建自定义函数后,可以在任何流上使用它