【InfluxDB V2.0】单表、跨表聚合Flux查询

目录

一、单表数据Flux

二、单表聚合Flux

三、跨表数据聚合Flux

四、flux常用数据格式


一、单表数据Flux

实例用量计费与定价计费Flux案例

用量计费查询:

from(bucket: "bucket2")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "huawei-instance")
  |> filter(fn: (r) => r["_field"] == "count")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")

定价计费查询:

from(bucket: "bucket2")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "huawei-price-instance")
  |> filter(fn: (r) => r["_field"] == "price")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")

二、单表聚合Flux

实例日用量合并月用量统计展示:

from(bucket: "bucket2")
  |> range(start: -1mo, stop: now())
  |> filter(fn: (r) => r["_measurement"] == "huawei-price-instance-hour")
  |> filter(fn: (r) => r["_field"] == "price")
  |> aggregateWindow(every: 1d, fn: sum, createEmpty: true)
  |> yield(name: "sum")

三、跨表数据聚合Flux

注意:不同measurement数据合并使用join()函数,默认使用inner 合并,单measurement模型字段需要合并时,需保障不同的measurement需要具备相同的列。

 功能示例:实例乘积聚合函数展示:

//使用 bucket2 的 huawei-instance 作为table一,取字段count的值,单位为5s
instanceCount = from(bucket: "bucket2")
	  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
	  |> filter(fn: (r) => r["_measurement"] == "huawei-instance")
	  |> filter(fn: (r) => r["_field"] == "count")
	  |> truncateTimeColumn(unit:5s)

//使用 bucket2 的 huawei-price-instance 作为table2,取字段price的值
instancePrice = from(bucket: "bucket2")
    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
    |> filter(fn: (r) => r["_measurement"] == "huawei-price-instance")
    |> filter(fn: (r) => r["_field"] == "price")
    |> truncateTimeColumn(unit:5s)
//合并table1与table2的指定字段的值作为一个新的结果输出,table1与table2需要具有相同的_time与instanceType属性
join(tables: {count:instanceCount, price:instancePrice}, on: ["_time","instanceType"])
	  |> map(fn: (r) => ({
		  _time: r._time,
           instanceType: r.instanceType,
		  _value: r._value_count * r._value_price
		}))

四、flux常用数据格式

flux常用时间单位:

单位字段
y
mo
d
h
m
s
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值