influxdb Uniq查询

influxdb Uniq查询,influxdb,Influxdb,我正在尝试对INFLUX-DB进行查询,以获得唯一的值。下面是我使用的查询 select host AS Host,(value/100) AS Load from metrics where time > now() - 1h and command='Check_load_current' and value>4000; 查询的输出为 我真正想要的是唯一的“主机”值。例如,如果负载值不同,我希望“host-1”作为输出仅重复一次(最新值)。如何实现这一点?任何帮助都会非常有

我正在尝试对INFLUX-DB进行查询,以获得唯一的值。下面是我使用的查询

select host AS Host,(value/100) AS Load from metrics  where time > now() - 1h and command='Check_load_current' and value>4000;
查询的输出为


我真正想要的是唯一的“主机”值。例如,如果负载值不同,我希望“host-1”作为输出仅重复一次(最新值)。如何实现这一点?任何帮助都会非常有用。

如果您只想获取每个唯一的
主机
标记的最新值,请执行以下操作:

SELECT host AS Host, last(value)/100 AS Load
FROM metrics
GROUP BY host

Q:我想从每个唯一的“主机”获取最新的值,我该如何实现

给定以下数据库:

time                host   value
----                ----   -----
1529508443000000000 host01 42.72
1529508609000000000 host05 53.94
1529508856000000000 host01 40.37
1529508913000000000 host02 41.02
1529508937000000000 host01 44.49
<> <强> >考虑将问题分解。

首先,您可以使用“Groupby”操作将“标记值”分组到各自的存储桶中

Select * from number group by "host"

name: number
tags: host=host01
time                value
----                -----
1529508443000000000 42.72
1529508856000000000 40.37
1529508937000000000 44.49

name: number
tags: host=host02
time                value
----                -----
1529508913000000000 41.02

name: number
tags: host=host05
time                value
----                -----
1529508609000000000 53.94
接下来,您需要将每个bucket中的数据按降序排列,然后告诉
influxdb
仅返回每个bucket的前1行

因此,将“orderbydesc”和“limit1”过滤器添加到第一个查询中,它应该会产生所需的结果

> select * from number group by "host" order by desc limit 1;
name: number
tags: host=host05
time                value
----                -----
1529508609000000000 53.94

name: number
tags: host=host02
time                value
----                -----
1529508913000000000 41.02

name: number
tags: host=host01
time                value
----                -----
1529508937000000000 44.49
参考资料:


看看这个问题:。他们也在做类似的事情。谢谢你的回复。我尝试使用“分组方式”,但它以分组方式显示host-1和host-2的所有值。通常,当您使用时间序列数据库时,您获得的数据将由其他程序(例如可视化工具)处理,而不是人工处理。您不应该在意输出的外观,因为它提供了您所要求的内容。但是,如果您希望从CLI执行查询并以另一种格式获取输出,则可以这样指定输出:
influxdb-execute“SELECT…”-outcsv
,也可以指定json。您得到的输出将不会分组,而是作为一个列表返回。我使用了“选择主机作为主机,(值/100)作为从metrics where time>now()-1h加载,并使用command='Check\u Load\u current'和value>4000按主机顺序按时间描述限制1分组”,这几乎解决了我的问题。