使用 influxctl CLI 写入 Line Protocol 数据
使用 influxctl
CLI 将 Line Protocol 数据写入 InfluxDB Clustered。
构建 Line Protocol
在 基本了解 Line Protocol 的基础上,您现在可以构建 Line Protocol 并将数据写入 InfluxDB。考虑一个用例,您从家中的传感器收集数据。每个传感器收集温度、湿度和一氧化碳读数。要收集此数据,请使用以下模式
- measurement:
home
- 标签
room
: 客厅或厨房
- 字段
temp
:温度,单位为 °C (浮点数)hum
:湿度百分比 (浮点数)co
:一氧化碳,单位为百万分之几 (整数)
- 时间戳:Unix 时间戳,精度为秒
- 标签
以下 Line Protocol 表示上述模式
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
在本教程中,您可以将此 Line Protocol 作为字符串直接传递给 influxctl write
命令,通过 stdin
传递,或者您可以将其保存到文件并从中读取。
将 Line Protocol 写入 InfluxDB
使用 influxctl write
命令 将 家庭传感器示例数据 写入您的 InfluxDB 集群。提供以下信息
使用
--database
标志的 数据库 名称使用
--token
标志的 数据库令牌(对目标数据库具有写入权限)使用
--precision
标志的时间戳精度,单位为秒 (s
)Line Protocol。通过以下方式之一传递 Line Protocol
- 命令行上的字符串
- 包含查询的文件路径
- 单个破折号 (
-
) 以从 stdin 读取查询
替换以下内容
DATABASE_NAME
:要写入的数据库的名称。DATABASE_TOKEN
:对目标数据库具有写入权限的数据库令牌。
在您的终端中,输入以下命令以创建示例数据文件
cat <<EOF > ./home.lp &&
LINE_PROTOCOL_FILEPATH=./home.lp home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000 home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000 home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600 home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600 home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200 home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200 home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800 home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800 home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400 home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400 home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000 home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000 EOF
输入以下 CLI 命令以从示例文件写入数据
influxctl write \ --database
DATABASE_NAME\ --tokenDATABASE_TOKEN\ --precision s \ $LINE_PROTOCOL_FILEPATH
替换以下内容
DATABASE_NAME
:要写入的数据库的名称。DATABASE_TOKEN
:对目标数据库具有写入权限的数据库令牌。$LINE_PROTOCOL_FILEPATH
:包含 Line Protocol 的文件的文件路径。可以是绝对文件路径或相对于当前工作目录的相对路径。
cat $LINE_PROTOCOL_FILEPATH | influxctl write \
--database DATABASE_NAME \
--token DATABASE_TOKEN \
--precision s \
-
替换以下内容
DATABASE_NAME
:要写入的数据库的名称。DATABASE_TOKEN
:对目标数据库具有写入权限的数据库令牌。$LINE_PROTOCOL_FILEPATH
:包含 Line Protocol 的文件的文件路径。可以是绝对文件路径或相对于当前工作目录的相对路径。
此页是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB Clustered 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度或支持合同的客户 可以 联系 InfluxData 支持。