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

导航至

在这篇文章中,我们回顾了本周最有趣的 InfluxDB 和 TICK-stack 相关问题、在 InfluxQL 中使用单引号与双引号的解决方法、操作指南以及来自 GitHub、IRC 和您可能错过的 InfluxDB Google Group 的问答。

在查询中指定时间

问:我看到当我将数据写入 InfluxDB 时,Line Protocol 仅接受 epoch 格式的时间。查询也只接受 epoch 格式的时间吗?

答:除了 epoch 时间戳之外,InfluxQL 还接受多种不同的时间格式。查询可以使用相对时间格式和绝对时间格式。

对于相对时间,请使用 now() 和有效的时间持续时间单位,以指定基于服务器当前 Unix 时间的时间。例如,从测量值 einstein 中选择过去 10 分钟内发生的所有时间戳

SELECT * FROM "einstein" WHERE time > now() - 10m

对于绝对时间,请使用 RFC3339 类似格式的日期时间字符串、RFC3339 格式的日期时间字符串或 epoch 时间。例如,以下三个查询从测量值 absolutismus 中选择时间为 2016 年 7 月 20 日星期三 16:00:00 的所有内容

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 'http://localhost:8086/query?db=claymation&pretty=true' --data-urlencode 'q=SELECT min("movement") FROM "take_1";SELECT max("movement") FROM "take_1"'

答:是的!您可以在单个查询中包含多个函数;只需用逗号分隔函数即可

SELECT min("movement"),max("movement") FROM "take_1"

选择标签没有值的数据

问:我想从特定标签没有值的测量值中选择字段值。我尝试使用 "" 来执行此操作,但我没有得到任何结果。有没有办法在 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=""

答:是的,使用单引号指定空标签值

> SELECT * FROM "vases" WHERE priceless=''
name: vases
-----------
time                   origin   priceless
2016-07-20T18:42:00Z   8

查看查询中的单引号和双引号以获取更多信息!

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

下一步是什么?