【问题标题】:Simple query language help in InfluxDB - creating an aggregate tableInfluxDB 中的简单查询语言帮助 - 创建聚合表
【发布时间】:2016-05-23 15:25:22
【问题描述】:

我正在尝试学习 InfluxDB 的查询语言来创建聚合表,但我遇到了问题。这是我的难题。 假设我有一张这样的桌子:

名称:温度

时间 |价值 |公制 |测量

X | 25 |度(C) |温度

X | 10 |度(C) |温度

还有一个这样的

名称:cpu_usage

时间 |公制 |价值 |测量

X | %使用 | 73 | cpu_usage

X | %使用 | 75 | cpu_usage

我怎样才能将这些放入这样的表格中:

名称:聚合

时间 |测量 |公制 |平均值

X |温度 |度(C) | 17.5

X | cpu_usage | %使用 | 74

基本上,我想用不同表的平均值创建另一个表。但是,我还想保留其他表中的一些列名。现在,我遇到的问题是你不能混合聚合函数和非聚合函数,所以它不会让我做“从 cpu_usage 到聚合中选择指标、测量、平均值(值)。而且,我没有想法如何合并/加入表(我认为它不再受支持),所以如果我要计算平均值,将其存储在临时表中,我不知道如何将它与当前表结合起来。

【问题讨论】:

    标签: aggregate influxdb


    【解决方案1】:

    从上面的示例中很难判断 metricmeasurement 是标签还是字段。假设它们是标签,因此您正在使用的数据如下所示

    temperature,metric=degrees(C),measurement=temperature value=25 X
    temperature,metric=degrees(C),measurement=temperature value=10 X
    
    cpu_usage,metric=%usage,measurement=cpu_usage value=75 X
    cpu_usage,metric=%usage,measurement=cpu_usage value=73 X
    

    然后是查询

    SELECT mean(value) as usage INTO aggregate FROM cpu_usage GROUP BY *
    SELECT mean(value) as temp INTO aggregate FROM temperature GROUP BY *
    

    应该给你你正在寻找的输出。

    话虽如此,这不是最佳做法

    我会建议做一些类似以下的事情:

    写出如下所示的点:

    temperature,metric=degrees(C) value=25 X
    temperature,metric=degrees(C) value=10 X
    
    cpu_usage,metric=%usage value=75 X
    cpu_usage,metric=%usage value=73 X
    

    并且有将测量写入不同retention policies的查询:

    SELECT mean(value) as value INTO mydb.aggregate.cpu_usage FROM cpu_usage GROUP BY *
    SELECT mean(value) as value INTO mydb.aggregate.temperature FROM temperature GROUP BY *
    

    【讨论】:

      猜你喜欢
      • 2020-09-08
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 2021-06-02
      • 2013-07-30
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多