TL;DR InfluxDB 技术提示 - 使用 InfluxDB 写入和导出 Line Protocol 格式的数据
作者:Regan Kuchan / 开发者
2016 年 11 月 03 日
导航至
在本周的博文中,我们回顾了与 InfluxDB 和 TICK-stack 相关的最有趣的问题,包括使用 InfluxDB 写入和导出 Line Protocol 格式的数据、解决方法、操作指南以及来自 GitHub、IRC 和 InfluxDB Google Group 社区的问答,这些内容您可能在上周左右错过了。
从文件写入数据
问:我有很多 Line Protocol 行协议 格式的点,我想使用 HTTP API 将它们写入 InfluxDB。除了在请求正文中用换行符分隔每个点之外,还有其他方法吗?
答:您可以使用 HTTP API 从文件 将数据写入 InfluxDB。例如:
$ curl -i -XPOST "http://localhost: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
导出数据
问:我想以 Line Protocol 格式从 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
请注意,该示例使用了 1.1 版本的 influx_inspect
工具中可用的语法。版本 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
的分片组持续时间,以实现极长的分片组持续时间。有关分片持续时间管理的更多信息,请参阅 Schema Design 文档。
GitHub 上有一个 开放 issue,用于 InfluxDB 在 CREATE RETENTION POLICY
查询尝试将分片组持续时间设置为 INF
时返回错误。
有关更多 InfluxDB 提示,请参阅我们的 常见问题解答 页面,并随时在 InfluxDB 用户组 中发布您的问题!
下一步是什么?
- 下载 并 开始使用 InfluxDB!
- 与解决方案架构师安排 免费的 20 分钟咨询,以审查您的 InfluxDB 项目。
- 参加我们的免费 虚拟培训研讨会 之一。
- 有问题需要 InfluxData 支持团队立即解答?包含无限事件的支持订阅起价仅为每月 399 美元。在此处查看所有支持选项 here。