使用 influxctl 命令行工具写入行协议数据
使用 influxctl
命令行工具 将行协议数据写入 InfluxDB 集群。
构建行协议
在了解行协议基本原理的基础上,您可以构建行协议并将数据写入 InfluxDB。假设您需要从家中的传感器收集数据。每个传感器收集温度、湿度和一氧化碳读数。要收集这些数据,请使用以下模式
- 度量:
home
- 标签
room
: 客厅或厨房
- 字段
temp
: 温度(浮点数,单位:°C)hum
: 湿度百分比(浮点数)co
: 一氧化碳(单位:百万分之几,整数)
- 时间戳:以秒为精度的 Unix 时间戳
- 标签
以下行协议表示上述模式
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
对于本教程,您可以直接将此行协议作为字符串传递给 influxctl write
命令,通过 stdin
,或者您可以将它保存到文件中并从中读取。
将行协议写入 InfluxDB
使用 influxctl write
命令 将 家庭传感器示例数据 写入您的 InfluxDB 集群。提供以下信息
使用
--database
标志指定 数据库名称使用
--token
标志指定 数据库令牌(在目标数据库上有写权限)使用
--precision
标志指定时间戳精度为秒(s
)行协议。以下方式之一传递行协议
- 命令行上的字符串
- 包含查询的文件的路径
- 单个短横线(
-
)从 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
:包含行协议的文件的文件路径。可以是绝对路径,也可以是相对于当前工作目录的相对路径。
cat $LINE_PROTOCOL_FILEPATH | influxctl write \
--database DATABASE_NAME \
--token DATABASE_TOKEN \
--precision s \
-
替换以下内容
DATABASE_NAME
:要写入的数据库的名称。DATABASE_TOKEN
:具有目标数据库写权限的数据库令牌。$LINE_PROTOCOL_FILEPATH
:包含行协议的文件的文件路径。可以是绝对路径,也可以是相对于当前工作目录的相对路径。
这个页面有用吗?
感谢您的反馈!