InfluxQL 到带有重采样和组的新任务 FLUX

问题描述

我花了 6 个小时尝试将 influxQL 转换为 FLUX 查询。 任何人都可以做到吗?

CREATE CONTINUOUS QUERY Trade_to_candles_60 ON mydb 
RESAMPLE EVERY 10s FOR 10m 
BEGIN SELECT first(price) AS open,last(price) AS close,max(price) AS high,min(price) AS low,sum(amount) AS volume INTO 
candles_1m FROM Trades WHERE 
GROUP BY time(1m),pair,exchange END

解决方法

按照 influxdata 在其文档 (here) 中提供的示例,我将这个连续查询拆分为四个通量任务,如下所示:

import "experimental"

options task = {
  name: "trade_to_candles_60_open",every: 10s
}

from(bucket: "mydb/")
  |> range(start: experimental.subDuration(d: 10m,from: now()))
  |> filter(fn: (r) =>
    r._measurement == "trades" and
    r._field == "price"
  )
  |> group(columns: ["pair","exchange"])
  |> aggregateWindow(every: 1m,fn: first)
  |> set(key: "_field",as: "open")
  |> to(bucket: "mydb/candles_1m")

我个人认为 influxdata 不提供任何 CQ 到通量任务转换器并不严重。我尝试从 1.8 迁移到 2.0,但这是一场噩梦:无法在 1.8 中测试通量任务,无法在 2.0 中使用 CQ 来简化迁移。每个 CQ 都必须在通量任务中手动重写,我有数百个 CQ...