InfluxDB中的简单查询语言帮助 - 创建聚合表

时间:2016-05-23 15:25:22

标签: aggregate influxdb

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

名称:温度

时间|价值|公制|测量

X | 25 |度(C)|温度

X | 10 |度(C)|温度

和一个这样的

name:cpu_usage

时间|公制|价值|测量

X | %使用率| 73 | cpu_usage

X | %使用率| 75 | cpu_usage

如何将这些内容添加到这样的表中:

名:聚合

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

X |温度|度(C)| 17.5

X | cpu_usage | %使用率| 74

基本上,我想创建另一个表,其中包含来自不同表的平均值。但是,我还希望保留其他表中的一些列名。现在,我遇到的问题是你不能混合聚合函数和非聚合函数,所以它不会让我做" SELECT度量,度量,均值(值)FROM cpu_usage INTO聚合。并且,我不知道如何合并/加入表格(我不认为它已经被支持了),所以如果我要计算平均值,将它存储在临时表中,我就不会这样做了。知道如何将其与当前表格结合起来。

1 个答案:

答案 0 :(得分:1)

从上面的示例中很难说<div class="container"> <div class="left">left</div> <div class="middle">middle</div> <div class="right">right</div> </div>metric是标记还是字段。假设它们是标签,那么您正在使用的数据如下所示

measurement

然后是查询

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 *

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

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