TL;DR InfluxDB 技术提示 - InfluxQL 查询示例

导航至

在这篇文章中,我们回顾了本周最有趣的 influxQL 查询示例、InfluxDB 和 TICK-stack 相关问题、解决方法、操作指南以及来自 GitHub、IRC 和 InfluxDB Google Group 的问答,您可能错过了。

理解意外的 fill() 行为

问:我在查询中使用了 fill(0),但它没有返回任何结果。这是预期的行为吗?

答:如果您的数据都不在查询的时间范围内,即使您的查询包含 fill(),查询也不会返回任何结果。这是 fill() 当前的工作方式,但有一个开放的 问题 要更改这种行为。

例如

写入一个数据点

> INSERT invisible person=7 1467842220000000000
> SELECT * FROM "invisible"
name: invisible
---------------
time                   person
2016-07-06T21:57:00Z   7

使用 fill(0) 并查询包含该点的时间范围

> SELECT mean("person") FROM "invisible" WHERE time >= '2016-07-06T21:57:00Z' AND time <= '2016-07-06T21:59:00Z' GROUP BY time(1m) fill(0)
name: invisible
---------------
time                   mean
2016-07-06T21:57:00Z   7
2016-07-06T21:58:00Z   0
2016-07-06T21:59:00Z   0

使用 fill(0) 并查询不包含该点的时间范围

> SELECT mean("person") FROM "invisible" WHERE time >= '2016-07-06T21:58:00Z' AND time <= '2016-07-06T21:59:00Z' GROUP BY time(1m) fill(0)

查询测量中的最新点

问:我正在尝试查找测量中的最后一个点。我已经包含了我用来执行此操作的查询,但我想知道 - 是否有更好的方法来执行此操作?

> SELECT "dance_id" FROM "ballroom" ORDER BY time DESC LIMIT 1
name: ballroom
--------------
time                   dance_id
2016-07-06T20:26:10Z   103

答:是的!有一个 InfluxQL 函数 (LAST()) 返回测量中的最后一个点

> SELECT last("dance_id") FROM "ballroom"
name: ballroom
--------------
time                   last
2016-07-06T20:26:10Z   103

InfluxDB 技术提示视频

查看下面来自 2016 年 6 月 InfluxDB Meetup 的视频,了解有关序列基数、INTO 查询等的提示。

有关更多 InfluxDB 提示,请参阅我们的 常见问题解答页面,并随时在 InfluxDB 用户组中发布您的问题。

下一步是什么?