TL;DR InfluxDB技术技巧 - 使用InfluxDB在线协议写入和导出数据
By Regan Kuchan / 开发者
Nov 03, 2016
导航到
在本周总结中,我们回顾了与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美元。查看所有支持选项这里。