在Grafana InfluxDB中选择字符串FROM

我在InfluxDB中有一些销售数据,基本上每10秒钟我记录一次来自SQL的销售总数,然后将其分解为字段中不同项目的销售量。 因此,行可能看起来像:

import API from 'API'

export default class UserInfo extends React.Component {
    constructor() {
        super();
        this.state = { result: undefined };
    }

    async componentDidmount() {
        let result = await API.getUser();
        this.setState({ result });
    }

    render() {
        return(
            <div classname="UserInfo">
                {this.state.result && this.state.result.name}
            </div>
        )
    }
}

(这是此问题的伪数据,不反映图像中的数字,这些图像是我对实际数据进行的生产测试得出的)

重要的是要强调这是累积性的,每个条目都随着销售数量的增长而增加。

然后我可以使用Grafana向我显示时间(1d)的差异(max(sales))组,以显示总销售额(在这种情况下为每天)

在Grafana InfluxDB中选择字符串FROM

我还想做的是在一张表,一个创纪录的销售表中显示每组(每天)的最多销售额,以及我们过去的表现。

所以我在Grafana中有3个查询:

time        Bicycles Shovels Hats Candles Sales
01/01/2019     12       6      2     4      24
02/01/2019     14       9      3     5      31

在随后的查询中交换自行车和帽子(无论如何)的“销售额”,最后得到的表如下:

在Grafana InfluxDB中选择字符串FROM

问题是我不知道哪一行是哪个字段。正常情况下(在SQL中),我会执行SELECT'Sales'作为Type等操作,以添加其中带有“ Sales”的列。但是在Grafana或Influx中我都看不到这是一个选择。

  1. 我记录的数据有误吗,我可以利用标签吗?
  2. 如何识别此表中的行?
xyzz108 回答:在Grafana InfluxDB中选择字符串FROM

是的,您的数据结构看起来不太好。而不是一条记录:

time        Bicycles Shovels Hats Candles Sales
01/01/2019     12       6      2     4      24

使用不同的item标签保存多个记录(sales是int字段):

time           item      sales 
01/01/2019     Bicycles  12  
01/01/2019     Shovels   6
01/01/2019     Hats      2
01/01/2019     Candles   4

然后按时间分组和item标签+ SPREAD函数可用于删除子查询,例如

SELECT time,SPREAD(sales) 
FROM "autogen"."Paid_Orders" 
WHERE $timeFilter 
GROUP BY time(1d),"item" fill(none)
本文链接:https://www.f2er.com/3157969.html

大家都在问