Migrate from InfluxDB
Arc speaks Line Protocol natively, so live ingestion is a URL change. Dual-write with Telegraf, bulk-migrate your TSM files with tsm2arc, and keep standard SQL. Works for InfluxDB 1.x, 2.x, and 3.x.
Every command in the guide was tested against InfluxDB 1.8.10 and Arc 26.06.3.
Why teams move
InfluxDB is the migration Arc was built to make painless. You keep Line Protocol, keep Telegraf, keep your SQL patterns, and gain throughput and portable storage.
Drop-in ingestion
Native Line Protocol
Arc accepts InfluxDB Line Protocol on /write (1.x) and /api/v2/write (2.x). Point Telegraf or any InfluxDB client at Arc, dual-write during the migration, and cut over when ready. No agent changes, no downtime.
Throughput
5x to 10x faster ingestion
Arc sustains 19.9M records/sec vs InfluxDB 3 Core's 3.45M (5x) and Enterprise's 1.71M (10x), with 100x smaller batches. Arc's WAL is optional: disable it for maximum throughput, enable it for zero data loss. InfluxDB 3's WAL is always on.
Portability
Open Parquet, standard SQL
Arc stores every measurement as standard Parquet you own and query with any Parquet tool. Queries are standard SQL, no Flux (which InfluxData deprecated in InfluxDB 3 anyway). InfluxQL and Flux patterns map directly.
Migration in three steps
Re-point live writes, bulk-load history, translate the handful of queries that need it. Run both systems in parallel until you trust Arc.
Re-point live ingestion
Send the same Line Protocol you send InfluxDB. Only the URL and token change.
curl -X POST "http://localhost:8000/write?db=metrics&precision=ns" \
-H "Authorization: Bearer $ARC_TOKEN" \
--data-binary 'cpu,host=server01 usage_idle=95.0,usage_user=3.2 1700000000000000000'Bulk-load your history
For 1.x/2.x, tsm2arc reads TSM files off disk, rejoins multi-field points, and streams them into Arc with resumable checkpoints. (Line Protocol export works for every version, including 3.x.)
tsm2arc --datadir /var/lib/influxdb/data --waldir /var/lib/influxdb/wal \
--arc-url http://localhost:8000 --token "$ARC_TOKEN" \
--workers 2 --checkpoint migration.checkpoint.dbTranslate your queries
InfluxQL and Flux map to standard SQL. Set X-Arc-Database and keep bare table names.
-- InfluxQL: SELECT MEAN(usage_idle) FROM cpu GROUP BY time(1h)
-- Arc:
SELECT time_bucket(INTERVAL '1 hour', time) AS bucket, avg(usage_idle)
FROM cpu GROUP BY 1 ORDER BY 1;InfluxQL / Flux → Arc SQL
The common InfluxDB query patterns and their standard-SQL equivalents, all tested to return matching results.
| InfluxQL / Flux | Arc (standard SQL) |
|---|---|
GROUP BY time(1h) | time_bucket(INTERVAL '1 hour', time) |
MEAN(field) | avg(field) |
LAST(field) / FIRST(field) | arg_max(field, time) / arg_min(field, time) |
PERCENTILE(field, 95) | quantile_cont(field, 0.95) |
|> aggregateWindow(every: 1h) | time_bucket(INTERVAL '1 hour', time) + GROUP BY |
Flux (deprecated in InfluxDB 3) | standard SQL |
Frequently Asked Questions
Can I migrate from InfluxDB without changing Telegraf?
Yes. Arc speaks InfluxDB Line Protocol natively, so you point your Telegraf output (or any InfluxDB client) at Arc's /write endpoint for 1.x or /api/v2/write for 2.x. Change the URL and token, keep your collectors and metric names. You can dual-write to both InfluxDB and Arc during the migration for a zero-downtime cutover.
How do I move a lot of historical InfluxDB data into Arc?
For InfluxDB 1.x and 2.x, use tsm2arc: it reads TSM files directly off disk (no running InfluxDB needed), reconstructs multi-field points, and streams them into Arc with resumable checkpointing. For any version including 3.x, export Line Protocol and import it with POST /api/v1/import/lp. Both paths are documented and tested at docs.basekick.net/arc/migration/influxdb.
Which InfluxDB versions does Arc support migrating from?
All of them. 1.x and 2.x can use tsm2arc for bulk TSM migration or Line Protocol export. 3.x exports Line Protocol via the influxdb3 CLI. Live ingestion re-points the same way for every version through Arc's InfluxDB-compatible write endpoints.
Does Arc support Flux?
No, and you do not need it. InfluxData deprecated Flux in InfluxDB 3. Arc uses standard SQL with window functions, CTEs, and joins. InfluxQL and Flux patterns like GROUP BY time(), LAST(), and PERCENTILE map directly to time_bucket, arg_max, and quantile_cont.
See the tested, step-by-step guide at docs.basekick.net, or compare the two head-to-head in Arc vs InfluxDB. Benchmark methodology on benchmark.clickhouse.com.
Ready to handle billion-record workloads?
Deploy Arc in minutes. Own your data in open files on your storage. Use for analytics, observability, AI, IoT, or data warehousing.