influxctl 写入
该 influxctl write 命令将 行协议 写入 InfluxDB 集群。
以以下方式提供行协议:
- 命令行上的字符串
- 一个指向包含行协议的文件的路径
- 一个单一的破折号 (
-) 从标准输入读取行协议
重要说明
- 此命令每次执行仅支持一个写请求,但支持多行行协议,并将根据
--batch-size批处理数据。 - 此命令并不旨在成为一个完整的、功能丰富的写入工具。 它旨在用于调试、筛选和初步探索。
InfluxDB连接配置
您的 InfluxDB 集群主机和端口已在您的 influxctl 连接配置文件中配置。默认使用 TLS 和 443 端口。您可以在连接配置文件中设置用于 query 和 write 命令的默认数据库和令牌,或者使用 --database 和 --token 标志通过命令传递它们。命令行标志将覆盖连接配置文件中的设置。
用法
influxctl write [flags] <LINE_PROTOCOL>
参数
| 参数 | 描述 |
|---|---|
| LINE_PROTOCOL | 写入的行协议(命令行字符串、文件路径或-以从标准输入读取) |
标志
| 标志 | 描述 | |
|---|---|---|
--batch-size | 每批次要写入的指标数量(默认值为 10000) | |
--database | 要写入的数据库 | |
--precision | 数据时间戳的精度 (ns (默认), us, ms, 或 s) | |
--timeout | 客户端超时(默认为 10 秒) | |
--token | 具有对目标数据库写权限的数据库令牌 | |
-h | --help | 输出命令帮助 |
另见 influxctl 全局标志.
示例
- 将行协议写入InfluxDB 3
- 将行协议写入InfluxDB 3,使用非默认时间戳精度
- 以自定义批量大小将行协议写入InfluxDB 3
- 使用自定义客户端超时将行协议写入InfluxDB 3
- 使用连接配置文件中的凭据将行协议写入InfluxDB 3
在下面的示例中,替换以下内容:
DATABASE_TOKEN: 具有写入权限的目标数据库的数据库令牌DATABASE_NAME: 要写入的数据库名称
将行协议写入InfluxDB 3
influxctl write \
--token DATABASE_TOKEN \
--database DATABASE_NAME \
/path/to/metrics.lp
cat ./metrics.lp | influxctl write \
--token DATABASE_TOKEN \
--database DATABASE_NAME \
-
使用非默认时间戳精度将行协议写入 InfluxDB 3
influxctl write \
--token DATABASE_TOKEN \
--database DATABASE_NAME \
--precision s \
/path/to/metrics.lp
cat ./metrics.lp | influxctl write \
--token DATABASE_TOKEN \
--database DATABASE_NAME \
--precision s \
-
以自定义批大小将线协议写入InfluxDB 3
influxctl write \
--token DATABASE_TOKEN \
--database DATABASE_NAME \
--batch-size 5000 \
/path/to/metrics.lp
cat ./metrics.lp | influxctl write \
--token DATABASE_TOKEN \
--database DATABASE_NAME \
--batch-size 5000 \
-
使用自定义客户端超时将行协议写入InfluxDB 3
influxctl write \
--token DATABASE_TOKEN \
--database DATABASE_NAME \
--timeout 20 \
/path/to/metrics.lp
cat ./metrics.lp | influxctl write \
--token DATABASE_TOKEN \
--database DATABASE_NAME \
--timeout 20 \
-
使用连接配置文件中的凭据将行协议写入InfluxDB 3
以下示例使用了在 default 连接配置文件 中定义的 database 和 token。