TL;DR InfluxDB技术技巧 - InfluxQL中使用单引号与双引号

导航至

在这篇文章中,我们回顾了本周最有趣的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 用户组中自由提问。

下一步是什么?