【问题标题】:InfluxDB Flux - Getting last and first values as a columnInfluxDB Flux - 将最后一个值和第一个值作为一列
【发布时间】:2021-02-14 13:54:30
【问题描述】:

我正在尝试使用 last() 和 first() 函数创建两个具有第一个值和最后一个值的新列。但是,当我尝试映射新列时,该功能不起作用。这是下面的示例代码。这可以使用 Flux 吗?

from(bucket: "bucket")

  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "price_info")
  |> filter(fn: (r) => r["_field"] == "price")
  |> map(fn: (r) => ({r with  
  open: last(float(v: r._value)),
  close: first(float(v: r._value)),
  })

【问题讨论】:

  • 你发现了吗?我正在尝试做类似的事情......
  • 不抱歉。我一直无法弄清楚这一点。我也在 InfluxDB 论坛上问过,但没有回应。我回到支持它的地方使用 influxQL。

标签: influxdb flux-influxdb


【解决方案1】:

我没有直接回答这个问题,但它可能会有所帮助。 我想在firstlast 之间进行一些计算,这是我的方法,我不知道这是否正确。

这个想法是创建 2 个表,一个只有 first 值,另一个只有 last 值,然后在两者之间执行联合。

data = from(bucket: "bucket")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "plop")

l = data
|> last()
|> map(fn:(r) => ({ r with _time: time(v: "2011-01-01T01:01:01.0Z") }))

f = data
|> first()
|> map(fn:(r) => ({ r with _time: time(v: "2010-01-01T01:01:01.0Z") }))

union(tables: [f, l])
|> sort(columns: ["_time"])
|> difference()

由于未知原因,我必须设置错误的日期,只是为了能够对值进行排序并考虑到firstlast 之前。

【讨论】:

    【解决方案2】:

    只是一个简短的谢谢。我也在为此苦苦挣扎。这是我现在的代码:

    First = from(bucket: "FirstBucket")
      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
      |> filter(fn: (r) => r["_measurement"] == "mqtt_consumer")
      |> filter(fn: (r) => r["topic"] == "Counters/Watermeter 1")
      |> filter(fn: (r) => r["_field"] == "Counter")
      |> first()
      |> yield(name: "First")
    
    Last = from(bucket: "FirstBucket")
      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
      |> filter(fn: (r) => r["_measurement"] == "mqtt_consumer")
      |> filter(fn: (r) => r["topic"] == "Counters/Watermeter 1")
      |> filter(fn: (r) => r["_field"] == "Counter")
      |> last()
      |> yield(name: "Last")
    
    union(tables: [First, Last])
    |> difference()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多