Migration Guide, Tested End-to-End

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.

Native
Line Protocol, zero downtime
5x
faster ingestion vs Core
Open
Parquet you own

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.

1

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'
2

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.db
3

Translate 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 / FluxArc (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.

Get Started ->