TL;DR InfluxDB 技术提示 - 时间戳精度、多字段函数、常用字段值

导航至

在这篇文章中,我们回顾了本周最有趣的 InfluxDB 和 TICK-stack 相关问题、时间戳精度、多字段函数和常用字段值解决方法、操作指南以及来自 GitHub、IRC 和您可能错过的 InfluxDB Google Group 的问答。

时间戳精度的性能影响

问:我正在使用 HTTP API 将秒分辨率数据写入 InfluxDB。 如果我不使用 precision 查询字符串参数指定纳秒精度时间戳,或者使用 precision 参数指定秒精度时间戳,会有影响吗?

那么,使用以下两个请求之一有什么好处吗?

curl -i -XPOST "http://localhost:8086/write?db=weather" --data-binary 'temperature,location=1 value=90 1472666050000000000'

curl -i -XPOST "http://localhost:8086/write?db=weather&precision=s" --data-binary 'temperature,location=1 value=90 1472666050'

答:是的。 为了最大化性能,我们建议在将数据写入 InfluxDB 时使用尽可能粗糙的时间戳精度。 指定 precision=s 是最佳选择!

对多个字段执行相同的功能

问:我想计算单个测量中每个字段的平均值。 目前,我正在使用下面的查询,这需要很长时间才能写出来。 有更好的方法吗?

> SELECT mean("alarm") AS "ave_alarm",mean("guests") AS "ave_guests",mean("temperature") AS "ave_temperature" FROM "home"
name: home
----------
time  ave_alarm  ave_guests  ave_temperature
0     0          1           70

答:有! 从 1.0 版本开始,聚合函数支持使用 * 来指定测量中的所有字段。

> SELECT mean(*) FROM "home"
name: home
----------
time  mean_alarm  mean_guests  mean_temperature
0     0           1            70

查找最常用的字段值

问:有没有办法找到字段中最常用的字段值?

答:从 1.0 版本开始,InfluxDB 支持 mode() 函数,该函数查找字段中最频繁的值。 查看功能页面了解更多信息。

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

下一步是什么?