InfluxDB 中的简单查询语言帮助 - 创建聚合 table
Simple query language help in InfluxDB - creating an aggregate table
我正在尝试学习 InfluxDB 的查询语言来创建聚合 table,但我遇到了问题。这是我的难题。
假设我有这样的 table:
名称:温度
时间 |价值 |公制 |测量
X | 25 |度(摄氏度) |温度
X | 10 |度(摄氏度) |温度
还有这样一个
姓名:cpu_usage
时间 |公制 |价值 |测量
X | %用法 | 73 | cpu_usage
X | %用法 | 75 | cpu_usage
我怎样才能把它们变成这样的 table:
名称:聚合
时间 |测量 |公制 |平均值
X |温度 |度(摄氏度) | 17.5
X | cpu_usage | %用法 | 74
基本上,我想用不同 table 的平均值创建另一个 table。但是,我还想保留其他 table 中的一些列名。现在,我遇到的问题是你不能混合聚合和非聚合函数,所以它不会让我做 "SELECT metric, measurement, mean(value) FROM cpu_usage INTO 聚合。而且,我不知道如何 merge/join tables(我认为它不再受支持),所以如果我要计算平均值,请将其存储在临时 table,我不知道如何将它与当前的 tables 结合起来。
很难从上面的示例中判断 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 *
应该会为您提供所需的输出。
也就是说,这不是最佳做法。
我建议您执行以下操作:
写下类似的点:
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 *
我正在尝试学习 InfluxDB 的查询语言来创建聚合 table,但我遇到了问题。这是我的难题。 假设我有这样的 table:
名称:温度
时间 |价值 |公制 |测量
X | 25 |度(摄氏度) |温度
X | 10 |度(摄氏度) |温度
还有这样一个
姓名:cpu_usage
时间 |公制 |价值 |测量
X | %用法 | 73 | cpu_usage
X | %用法 | 75 | cpu_usage
我怎样才能把它们变成这样的 table:
名称:聚合
时间 |测量 |公制 |平均值
X |温度 |度(摄氏度) | 17.5
X | cpu_usage | %用法 | 74
基本上,我想用不同 table 的平均值创建另一个 table。但是,我还想保留其他 table 中的一些列名。现在,我遇到的问题是你不能混合聚合和非聚合函数,所以它不会让我做 "SELECT metric, measurement, mean(value) FROM cpu_usage INTO 聚合。而且,我不知道如何 merge/join tables(我认为它不再受支持),所以如果我要计算平均值,请将其存储在临时 table,我不知道如何将它与当前的 tables 结合起来。
很难从上面的示例中判断 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 *
应该会为您提供所需的输出。
也就是说,这不是最佳做法。
我建议您执行以下操作:
写下类似的点:
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 *