问题描述
我花了 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...