TL;DR InfluxDB 技术技巧 - InfluxQL 查询示例
由 Jimmy Guerrero / 开发者
2016年7月7日
导航至
在这篇文章中,我们回顾了本周最有意思的 influxQL 查询示例、InfluxDB 和 TICK 堆栈相关的问题、解决方案、教程和问答,这些内容可能您已经错过了。GitHub、IRC 和 InfluxDB 的 Google 群组。
理解意外的 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 用户组 中自由提问。
接下来是什么?
- 在您的基础设施上寻找 InfluxDB 集群?现在可以开始评估 InfluxDB 企业版 Beta。
- 下载 并 开始使用 InfluxDB 1.0 Beta 2
- 安排一次与解决方案架构师 免费 20 分钟咨询,以审查您的 InfluxDB 项目
- 参加我们免费的 虚拟培训研讨会。