influxdb - InfluxDB Flux 连接系列
问题描述
我在 influxdb 中有以下数据
server,operation=ADD queryMs=7.9810 1620608972904452000
server,operation=GET queryMs=12.2430 1620608972909339200
server,operation=UPDATE queryMs=11.5780 1620608972909655400
server,operation=ADD queryMs=11.2460 1620608972910445700
server,operation=GET queryMs=15.0620 1620608972911305000
etc...
我想实现一个系列的所有operation
s。
我试过了|> group(columns: ["_field"])
,这就是我需要的,但是查询非常慢!
from(bucket: "initial")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "server")
|> filter(fn: (r) => r["_field"] == "queryMs")
|> group(columns: ["_field"])
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> yield(name: "mean")
解决方案
这工作得更快
union(tables: [
from(bucket: "initial")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "server")
|> filter(fn: (r) => r["_field"] == "queryMs")
|> filter(fn: (r) => r["operation"] == "GET")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false),
from(bucket: "initial")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "server")
|> filter(fn: (r) => r["_field"] == "queryMs")
|> filter(fn: (r) => r["operation"] == "ADD")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false),
from(bucket: "initial")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "server")
|> filter(fn: (r) => r["_field"] == "queryMs")
|> filter(fn: (r) => r["operation"] == "UPDATE")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false),
])
|> drop(columns:["operation"])
|> sort(columns: ["_time"], desc: false)
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> yield(name: "mean")
推荐阅读
- c# - C# 三角距离 - 打开 CV/Emgu
- sql - 用逗号分隔案例语句结果
- html - 按钮不会在中间对齐
- java - org.openqa.selenium.SessionNotCreatedException:会话未从断开连接创建:无法连接到渲染器
- vba - 将驱动器链接映射到链接表的 UNC 链接
- javascript - VueJs3 从 VueJs 2 迁移内联模板
- cookies - 如何将域中的 cookie 设置为子域
- vba - 摆脱 MS Access/VBA 中 csv 文件中数据的双引号
- amazon-web-services - 创建 DynamoDB GlobalSecondaryIndex 以仅包含具有特定属性的项目
- java - 调用方法还是强制转换(优先级)?