跳到主要内容

CSV

通过 REST API 将 CSV 文件导入 IEDB。分析引擎读取文件,自动检测列类型,按小时对数据进行分区,并将优化的 Parquet 文件写入存储。

接口

POST /api/v1/import/csv

请求头

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

查询参数

参数必填默认值描述
db-目标数据库
measurement-目标测量表
time_columntimeCSV 中时间戳列的名称
time_formatauto-detect时间戳格式:epoch_sepoch_msepoch_usepoch_ns,或留空以自动检测
delimiter,列分隔符字符
skip_rows0在 CSV 表头之前需要跳过的行数(如标题行、元数据行)

示例1

curl -X POST "http://localhost:8000/api/v1/import/csv?db=iot&measurement=sensors" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@sensor_data.csv"

示例2

# TSV 文件,使用秒级 epoch 时间戳,并跳过前 2 行元数据
curl -X POST "http://localhost:8000/api/v1/import/csv?db=satellites&measurement=telemetry&time_column=ts&time_format=epoch_s&delimiter=%09&skip_rows=2" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@telemetry_export.tsv"

响应

{
"status": "ok",
"result": {
"database": "iot",
"measurement": "sensors",
"rows_imported": 50000,
"partitions_created": 3,
"time_range_min": "2026-01-15T00:00:00Z",
"time_range_max": "2026-01-15T02:30:00Z",
"columns": ["time", "temperature", "humidity", "device_id"],
"duration_ms": 245
}
}

提示

  • 与行协议(Line Protocol)导入不同,在 CSV 导入时,测量表(measurement)参数是必需的
  • 时间列在输出的 Parquet 文件中会被重命名为 time
  • 为了获得最佳查询性能,数据将按小时自动分区。
  • Gzip 压缩的 CSV 文件(.csv.gz)会自动检测并解压缩。
  • 最大文件大小:500 MB(解压缩后)。
  • RBAC:检查目标测量表的写入权限。
  • 分析引擎会自动检测列类型。数值列 numberic 会变成DOUBLE ,文本列 text 会变成 VARCHAR

错误响应

地位描述
400数据库、测量表或文件缺失
403写入权限不足
413文件大小超过 500 MB 限制
500导入执行错误