BasekickLabs

Line Protocol Bulk Import

Bulk-load InfluxDB Line Protocol files through POST /api/v1/import/lp, including gzip-compressed .lp and .txt files, with optional measurement filtering.

Import InfluxDB Line Protocol files into Arc. Enables one-command migration from InfluxDB by uploading .lp or .txt files (plain or gzip-compressed).

Endpoint

POST /api/v1/import/lp

Headers

HeaderRequiredDefaultDescription
AuthorizationYes-Bearer $ARC_TOKEN
X-Arc-DatabaseYes-Target database name (or use db query param)

Query parameters

ParameterRequiredDefaultDescription
measurementNo(all)Filter to a single measurement from the LP file
precisionNonsTimestamp precision: ns, us, ms, s

Basic example

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

Example with precision

# Import LP file with second-precision timestamps
curl -X POST "http://localhost:8000/api/v1/import/lp?precision=s" \
  -H "Authorization: Bearer $ARC_TOKEN" \
  -H "X-Arc-Database: mydb" \
  -F "file=@export_seconds.lp"

Response

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

InfluxDB migration

Export from InfluxDB and import directly into Arc. For InfluxDB 1.x, use influx_inspect export (the influx CLI does not support Line Protocol output):

# Export from InfluxDB 1.x (reads TSM and WAL directly)
influx_inspect export \
  -datadir /var/lib/influxdb/data \
  -waldir /var/lib/influxdb/wal \
  -database mydb -lponly -out export.lp

# Import to Arc
curl -X POST "http://localhost:8000/api/v1/import/lp" \
  -H "X-Arc-Database: mydb" \
  -H "Authorization: Bearer $ARC_TOKEN" \
  -F "file=@export.lp"

How it works

Data flows through Arc's high-performance columnar ingest pipeline (ArrowBuffer -> ArrowWriter -> Parquet -> storage) -- the same path used by streaming LP ingestion. This means bulk imports benefit from the same throughput, sort optimization, and hourly partitioning.

Notes

  • Multi-measurement -- a single LP file can contain multiple measurements; all are imported in one request.
  • Precision-aware -- timestamps are losslessly converted from the specified precision to Arc's internal microsecond format.
  • Gzip support -- compressed files (.lp.gz) are automatically detected and decompressed via magic bytes.
  • RBAC -- write permissions are checked for every measurement in the file.
  • Maximum file size: 500 MB (after decompression).

Error responses

StatusDescription
400Missing database, invalid precision, or no file uploaded
403Insufficient write permissions for one or more measurements
413File exceeds 500 MB size limit
500Import execution error

On this page