TL;DR InfluxDB技术技巧 - 编写历史数据,设置InfluxDB中的时间戳精度,以及查找您的日志文件

导航至

在这周的文章中,我们回顾了来自GitHub、IRC和InfluxData社区最有趣的InfluxDB和TICK-stack相关问题、解决方案、教程和问答,这些可能在上周您可能错过。

编写历史数据

问: 我正在向InfluxDB写入大量的稀疏历史数据。我的数据从1800年开始,到2016年结束,记录的是每天法国斗牛犬的平均数量。

我注意到InfluxDB支持历史数据,但很多默认设置似乎针对的是实时数据用例。对于稀疏的历史数据用例,有没有配置建议或模式指南?

答: 我们有几条建议供希望将稀疏历史数据写入InfluxDB的用户参考。

首先,将您的保留策略分片组持续时间延长至涵盖数年。默认分片组持续时间为一周,如果您的数据覆盖216年——那么,将会有很多分片!拥有极其大量的分片对InfluxDB来说效率低下。使用ALTER RETENTION POLICY 查询来增加您数据保留策略的分片组持续时间。

其次,我们建议临时降低cache-snapshot-write-cold-duration 配置设置。如果您正在写入大量历史数据,默认设置(10m)可能导致系统为每个分片将所有数据保留在缓存中。在写入历史数据时,将cache-snapshot-write-cold-duration 设置临时降低至10s可以使过程更加高效。

在InfluxDB CLI中设置写入的时间戳精度

问题:我正在使用InfluxDB的命令行界面(CLI)写入数据。我发现我可以指定查询返回中的时间戳精度,但关于写入操作,我能否在INSERT命令中指定秒级精度的时间戳?我的尝试似乎表明这是不可能的。

> insert blocks,color=blue number=90 1489529196s
ERR: 
{"error":"unable to parse 'blocks,color=blue number=90 1489529196s': bad timestamp"}

回答:CLI的precision命令实际上同时设置了查询和写入操作的时间戳精度。以下是一个示例:

$ influx    <---- Connect to the CLI
Connected to https://127.0.0.1:8086 version 1.2.2
InfluxDB shell version: 1.2.2

> precision s    <---- Set the query and write precision to seconds

> USE "tldr"
Using database tldr

> INSERT blocks,color=blue number=90 1489529196    <---- Write a point with a second-
                                                         precision timestamp

> SELECT * FROM "blocks"
name: blocks
time color number
---- ----- ------
1489529196 blue 90    <---- Admire your work

请注意,precision命令的rfc3339选项仅适用于查询。如果你指定了precision rfc3339,InfluxDB会假设所有写入的时间戳都是以纳秒为单位的。

我的日志文件在哪里

问题:我似乎找不到我的InfluxDB日志!我正在使用开源版本1.2.1。你能帮帮我吗?

回答:从1.0.0版本开始,systemd操作系统默认不再将文件写入/var/log/influxdb。你可以使用命令journaldctl -u influxdb访问InfluxDB日志,或者你可以使用journalctl -u influxdb > influxd.log将日志写入文件。

在System V操作系统上,日志存储在/var/log/influxdb/下。

下一步是什么

  • 下载TICK-stack的下载已在我们“下载”页面上启用。
  • 云上部署:开始使用InfluxDB Cloud的免费试用版,包括完全托管的集群、Kapacitor和Grafana。
  • 服务器上部署:想要在您的服务器上运行InfluxDB集群?尝试InfluxDB Enterprise的免费14天试用版,它具有直观的UI,用于部署、监控和重新平衡集群,以及管理备份和恢复。
  • 分享你的故事:300多家公司分享了他们如何通过InfluxDB取得成功的故事。提交你的故事,并作为感谢获得限量版卫衣。