TL;DR InfluxDB 技术提示 - 来自时间桶的空结果
作者:Regan Kuchan / 开发者
2016 年 7 月 14 日
导航至
在这篇文章中,我们回顾了本周最有趣的 InfluxDB 和 TICK-stack 相关问题、来自时间桶的空结果的解决方法、来自 GitHub、IRC 和 InfluxDB Google Group 的操作指南和问答,您可能错过了。
检查 WHERE 子句中的时间范围顺序
问: 我的查询中时间范围的顺序会对性能产生任何影响吗?例如,以下两个查询中哪一个更快?
SELECT ... FROM ... WHERE time > 'datestamp1' AND time < 'datestamp2'
SELECT ... FROM ... WHERE time < 'datestamp2' AND time > 'datestamp1'
答: 不会。我们已经测试了您的问题,结果表明 InfluxDB 完成这两个查询所花费的时间只有微不足道的差异。
理解 fill(previous)
问: 我在 GROUP BY time()
查询中使用了 fill(previous)
,但对于某些时间桶仍然得到空结果。这是预期的行为吗?
原始数据
> SELECT * FROM "cupcakes"
name: cupcakes
--------------
time chocolate
2016-07-12T16:50:00Z 3
2016-07-12T16:50:10Z 2
2016-07-12T16:50:40Z 12
2016-07-12T16:50:50Z 11
GROUP BY time()
查询
> SELECT max("chocolate") FROM "cupcakes" WHERE time >= '2016-07-12T16:50:20Z' AND time <= '2016-07-12T16:51:10Z' GROUP BY time(20s) fill(previous)
name: cupcakes
--------------
time max
2016-07-12T16:50:20Z
2016-07-12T16:50:40Z 12
2016-07-12T16:51:00Z 12
我本以为在时间戳等于 2016-07-12T16:50:20Z
的情况下,max
的值应该为 3
。
答: InfluxDB 不会用 2016-07-12T16:50:00Z
-2016-07-12T16:50:10Z
时间桶的结果填充 2016-07-12T16:50:20Z
-2016-07-12T16:50:30Z
时间桶,因为您的查询的时间范围不包括较早的时间桶。
虽然这是 fill(previous)
的预期行为,但 GitHub 上的一个开放功能请求 feature request 建议,即使先前的值落在查询的时间范围之外,fill(previous)
也应该填充结果。
使用 HTTP API 指定查询时间戳精度
问: 有没有办法更改 HTTP API 返回的时间戳精度?我希望我的时间戳精度为小时。
$ curl -GET 'http://localhost:8086/query?db=census&pretty=true' --data-urlencode 'q=SELECT * FROM "rainforest"'
{
"results": [
{
"series": [
{
"name": "rainforest",
"columns": [
"time",
"toad_count"
],
"values": [
[
"1984-11-03T14:13:20Z",
67
]
]
}
]
}
]
}
答: 使用 epoch
查询字符串参数来指定不同的时间戳精度。请注意,此选项以 epoch 格式返回时间。
$ curl -GET 'http://localhost:8086/query?db=census&pretty=true&epoch=h' --data-urlencode 'q=SELECT * FROM "rainforest"'
{
"results": [
{
"series": [
{
"name": "rainforest",
"columns": [
"time",
"toad_count"
],
"values": [
[
130094,
67
]
]
}
]
}
]
}
有关查询字符串参数的更多信息,请查看 API 参考文档。
有关更多 InfluxDB 技巧,请参阅我们的 常见问题解答 页面,并随时在 InfluxDB 用户组中发布您的问题。
下一步是什么?
- 在您的基础设施上寻找 InfluxDB 集群?开始使用 InfluxDB 企业版 Beta 版,现在可用于评估。
- 下载并开始使用 InfluxDB 1.0 Beta 2
- 安排与解决方案架构师的免费 20 分钟咨询,以审查您的 InfluxDB 项目
- 参加我们的免费虚拟培训研讨会之一。