Parquet Import
Import existing Parquet files directly into Arc. Useful for data lake integration, analytics pipeline output, or migrating from other columnar stores.
:::info Available since v26.02.1 Parquet bulk import is available starting Arc v26.02.1 (February 2026). :::
:::note Changed in v26.06.2
Parquet import now reads the file in-process (via Apache Arrow) instead of through DuckDB. The request and response are unchanged. Two things to be aware of: DECIMAL columns are imported as DOUBLE, and empty files / duplicate column names / a time_column rename that collides with an existing time column are rejected with 400.
:::
Endpoint
POST /api/v1/import/parquet
Headers
| Header | Required | Default | Description |
|---|---|---|---|
Authorization | Yes | - | Bearer $ARC_TOKEN |
X-Arc-Database | Yes | - | Target database name (or use db query param) |
Query Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
measurement | Yes | - | Target measurement name |
time_column | No | time | Name of the timestamp column in the Parquet file |
Example
curl -X POST "http://localhost:8000/api/v1/import/parquet?measurement=metrics" \
-H "Authorization: Bearer $ARC_TOKEN" \
-H "X-Arc-Database: production" \
-F "file=@data_export.parquet"
Response
{
"status": "ok",
"result": {
"database": "production",
"measurement": "metrics",
"rows_imported": 1200000,
"partitions_created": 8,
"time_range_min": "2026-01-01T00:00:00Z",
"time_range_max": "2026-01-01T07:45:00Z",
"columns": ["time", "host", "region", "cpu_usage", "mem_usage"],
"duration_ms": 890
}
}
Notes
- The Parquet file must contain a timestamp column (default name:
time). Use thetime_columnparameter if your column has a different name. The time column may be an ArrowTIMESTAMP(any unit), an integer epoch column (any width), a floating-point epoch column (usetime_format, or auto-detect by magnitude), or a timestamp string column. - Arc reads the Parquet file in-process via Apache Arrow and repartitions the data into Arc's hourly partition layout regardless of the source file's structure. Supported column types: integer (all widths, signed and unsigned), floating point, boolean, string, binary/byte-array, decimal (imported as
DOUBLE), and timestamp. DECIMALcolumns are imported asDOUBLE. If you need exact decimal precision, use Line Protocol ingestion with a configured decimal column.- Maximum file size: 500 MB.
- RBAC: write permissions are checked for the target measurement.
Error Responses
| Status | Description |
|---|---|
400 | Missing database/measurement/file; empty file or no rows; time_column not found; empty or duplicate column names; a time_column rename that collides with an existing time column; or a NaN/Inf value in a floating-point time column |
403 | Insufficient write permissions |
413 | File exceeds 500 MB size limit |
422 | Unreadable Parquet file, or an unsupported column type |
500 | Import execution error |