当前位置: 代码迷 >> 综合 >> 【InfluxDB V2.0】单表、跨表聚合Flux查询
  详细解决方案

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

热度:108   发布时间:2023-11-26 08:51:24.0

目录

一、单表数据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
  相关解决方案