理解一条语句:SELECT difference(sum("value")) FROM "mq_enqueue" WHERE "channel" =~ /ActiveMQ_TEST/ AND $timeFilter GROUP BY time($interval)
最近使用grafana在查询InfluxDB中,用到了这一条语句
SELECT difference(sum("value")) FROM "mq_enqueue" WHERE "channel" =~ /ActiveMQ_TEST/ AND $timeFilter GROUP BY time($interval)
这里把学习结果整理一遍:
difference()是influxdb内置函数,用于获取相邻数据之间的差值
sum()是influxdb内置函数,用于获取所有数据之和,例如sum("value")即获取field-key为value的对应的值的和
GROUP BY time($interval),指定一个时间间隔,划定一个时间段,然后对该时间段内的数据进行操作,$interval的值可以在grafana里指定,默认等于数据写入的时间间隔
difference()支持嵌套函数
difference(sum("value"))表示先做sum再做difference
WHERE "channel" =~ /ActiveMQ_TEST/ ,influxdb查询语句支持正则表达式
所以,整体的意思就是:
对于指定时间段内的,channel的值包含ActiveMQ_TEST的字段为value的数据先进行sum求和,然后difference求差
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步