TL;DR InfluxDB技术技巧 - InfluxQL中使用单引号与双引号
作者:Regan Kuchan / 开发者
2016年7月21日
导航至
在这篇文章中,我们回顾了本周最有趣的InfluxDB和TICK堆栈相关的问题、使用单引号与双引号在InfluxQL中的解决方案、从GitHub、IRC和InfluxDB Google Group 中获取的教程和问答,您可能错过了这些。
查询中指定时间
问题:我发现当向InfluxDB写入数据时,行协议仅接受以纪元格式表示的时间。查询也只接受以纪元格式表示的时间吗?
答案:InfluxQL除了接受纪元时间戳之外,还接受几种不同的时间格式。查询可以与相对时间和绝对时间格式一起使用。
对于相对时间,使用now()
和一个有效的时间单位,以根据服务器当前的Unix时间指定时间。例如,选择所有在过去的10分钟内发生的测量einstein
的数据。
SELECT * FROM "einstein" WHERE time > now() - 10m
对于绝对时间,使用类似于RFC3339的日期时间字符串、RFC3339格式的日期时间字符串或纪元时间。例如,以下三个查询选择在2016年7月20日星期三16:00:00的absolutismus
测量中的所有数据。
SELECT * FROM "absolutismus" WHERE time = '2016-07-20 16:00:00'
SELECT * FROM "absolutismus" WHERE time = '2016-07-20T16:00:00Z'
SELECT * FROM "absolutismus" WHERE time = 1469030400000000000
有关在查询中指定时间的更多信息,请参阅数据探索。
查询中指定多个函数
问题:我想同时计算同一字段的最小值和最大值。目前,我使用分号分隔的两个查询来执行此操作,但看起来文本太多。有更简单的方法吗?
两个查询
curl -GET 'https://127.0.0.1:8086/query?db=claymation&pretty=true' --data-urlencode 'q=SELECT min("movement") FROM "take_1";SELECT max("movement") FROM "take_1"'
A: 是的!您可以在单个查询中包含多个函数;只需用逗号分隔函数即可
SELECT min("movement"),max("movement") FROM "take_1"
选择一个没有值的标签的数据
Q: 我想从测量中选择一个特定标签没有值字段的值。我已经尝试使用 ""
来做这个,但没有任何结果。在 InfluxQL 中有办法做到这一点吗?
> SELECT * FROM "vases"
name: vases
-----------
time origin priceless
2016-07-20T18:42:00Z 8
2016-07-20T18:42:00Z 1 yes
> SELECT * FROM "vases" WHERE priceless=""
A: 是的,使用单引号指定空标签值
> SELECT * FROM "vases" WHERE priceless=''
name: vases
-----------
time origin priceless
2016-07-20T18:42:00Z 8
有关查询中的单引号和双引号的信息,请参阅查询中的单引号和双引号!
有关更多 InfluxDB 小贴士,请参阅我们的常见问题解答页面,并在InfluxDB 用户组中自由提问。
下一步是什么?
- 在您的基础设施上寻找 InfluxDB 集群?现在可以开始评估InfluxDB 企业版 Beta。
- 下载并开始使用 InfluxDB 1.0 Beta 3。
- 安排与解决方案架构师进行免费 20 分钟咨询,以审查您的 InfluxDB 项目。
- 参加我们免费的虚拟培训研讨会。