跳到主要内容

LineProtocol

将 InfluxDB 行协议文件导入 IEDB 。通过上传 .lp.txt 文件(纯文本或 gzip 压缩),实现从 InfluxDB 一键迁移。

流式传输与批量传输

本页介绍如何通过批量文件导入POST /api/v1/import/lp。有关行协议的流式写入(实时写入),请参阅 API 参考 中的 POST /api/v1/write/line-protocol

接口

POST /api/v1/import/lp

请求头

Header必填默认描述
Authorization-Bearer $TOKEN

查询参数

范围必需的默认描述
db-目标数据库
measurement(全部)从行协议文件中筛选出单个测量表
precisionns时间戳精度:ns``us
ms``s

示例1

curl -X POST "http://localhost:8000/api/v1/import/lp?db=mydb" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@export.lp"

示例2

# 导入秒精度时间戳的行协议文件
curl -X POST "http://localhost:8000/api/v1/import/lp?db=mydb&precision=s" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@export_seconds.lp"

响应

{
"status": "ok",
"result": {
"database": "mydb",
"measurements": ["cpu", "mem", "disk"],
"rows_imported": 150000,
"precision": "ns",
"duration_ms": 342
}
}

InfluxDB 迁移

从 InfluxDB 导出并直接导入到 IEDB:

# 从 InfluxDB 1.x 导入
influx -execute "SELECT * FROM cpu" -database mydb -format lp > export.lp

# 导入 IEDB
curl -X POST "http://localhost:8000/api/v1/import/lp?db=mydb" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@export.lp"

工作原理

数据流经 IEDB 的高性能列式数据写入管道(ArrowBuffer -> ArrowWriter -> Parquet -> 存储)——与流式行协议数据写入使用的路径相同。这意味着批量导入也能受益于相同的吞吐量、排序优化和按小时分区。

提示

  • 多重测量——一个行协议文件可以包含多个测量表;所有测量表都在一次请求中导入。
  • 精度感知——时间戳会从指定的精度无损转换为 IEDB 的内部微秒格式。
  • 支持 Gzip——压缩文件(.lp.gz)会自动检测并通过特征字节进行解压缩。
  • **RBAC——**对文件中的每个测量表检查写入权限。
  • 最大文件大小:500 MB(解压缩后)。

错误响应

地位描述
400数据库缺失、精度无效或未上传文件
403一个或多个测量数据的写入权限不足
413文件大小超过 500 MB 限制
500导入执行错误