TL;DR InfluxDB技术技巧 - 使用InfluxDB在线协议写入和导出数据

导航到

在本周总结中,我们回顾了与InfluxDB和TICK-stack相关的最有趣的问题,包括使用InfluxDB通过行协议写入和导出数据,解决方案、教程和问答,这些内容来自GitHub,IRC和InfluxDB谷歌小组,这些内容您可能在上周或之前错过。

从文件写入数据

问:我有大量的点采用行协议,想要通过HTTP API写入InfluxDB。除了在请求体中以换行符分隔每个点之外,还有其他方法可以做到吗?

答:您可以使用HTTP API从文件中写入数据到InfluxDB。例如

$ curl -i -XPOST "https://127.0.0.1:8086/write?db=mydb" --data-binary @bridges.txt

以下是bridges.txt中的数据样本

bridges,type=cable_stayed visitors=607 1478133069000000000
bridges,type=cable_stayed visitors=608 1478133071000000000
bridges,type=suspension visitors=231 1478133069000000000
bridges,type=suspension visitors=234 1478133071000000000

导出数据

问:我想以行协议格式从InfluxDB导出数据。我该如何操作?

答:influx_inspect工具允许您完成这项操作。以下示例将来自mydb数据库和autogen 保留策略的数据导出到名为export的文件中。

influx_inspect export -datadir "/var/lib/influxdb/data" -waldir "/var/lib/influxdb/wal" -out "export" -database mydb -retention autogen

以下是export中的数据样本

# INFLUXDB EXPORT: 1677-09-21T00:12:43Z - 2262-04-11T23:47:16Z
# DDL
CREATE DATABASE mydb WITH NAME autogen
# DML
# CONTEXT-DATABASE:mydb
# CONTEXT-RETENTION-POLICY:autogen
# writing tsm data
mymeas,color=blue value=800 1478129348953855972
mymeas,color=blue value=900 1478129351427777943
# writing wal data
bridges,type=cable_stayed visitors=607 1478133069000000000
bridges,type=cable_stayed visitors=608 1478133071000000000
bridges,type=suspension visitors=231 1478133069000000000
bridges,type=suspenstion visitors=234 1478133071000000000

请注意,此示例使用了influx_inspect工具1.1版本中可用的语法。1.1版本的候选版本可在下载页面找到。

设置(几乎)无限期的分片组持续时间

问:我尝试创建一个具有无限分片组持续时间保留策略。似乎CREATE RETENTION POLICY查询成功,但分片组持续时间设置为七天,而不是INF

> CREATE RETENTION POLICY "ever_after" ON "final_frontier" DURATION INF REPLICATION 1 SHARD DURATION INF

> SHOW RETENTION POLICIES ON "final_frontier"
name        duration  shardGroupDuration  replicaN  default
----        --------  ------------------  --------  -------
autogen     0s        168h0m0s            1         true
ever_after  0s        168h0m0s            1         false

答:分片组持续时间不能无限。作为一个解决方案,我们建议指定一个1000w分片组持续时间,以实现极长的分片组持续时间。有关分片持续时间管理的更多信息,请参阅模式设计文档。

GitHub上有一个未解决的问题,关于InfluxDB在CREATE RETENTION POLICY查询尝试将分片组持续时间设置为INF时返回错误。

有关更多InfluxDB技巧,请参阅我们的常见问题解答页面,并请随时在InfluxDB用户组中提出您的问题!

接下来是什么?

  • 下载开始使用InfluxDB!
  • 安排一次与解决方案架构师的免费20分钟咨询,以审查您的InfluxDB项目。
  • 参加我们免费的虚拟培训研讨会。
  • 有问题需要立即从InfluxData支持团队获得答案?无限事件的支持订阅仅需每月399美元。查看所有支持选项这里