Привет, Хабр! Если последние годы вас не отпускала фантомная боль от вечного выбора между ураганной скоростью ClickHouse, невозмутимой простотой SQLite и порой адской сложностью настройки InfluxDB, — возможно, вы, как и мы, дождались чего-то по-настоящему нового.
На горизонте появился проект Arc от команды Basekick Labs. Это не просто очередная попытка, а дерзкая заявка на соединение всего лучшего из мира time-series и lakehouse-подхода. Забудьте о тяжёлых серверах и мучительной шардированной архитектуре. Arc предлагает:
Лёгкий, автономный движок на DuckDB вместо монструозных кластеров.
Стандартизированный Parquet вместо проприетарных бинарных форматов.
Обычный S3 / MinIO вместо дорогостоящих SAN-хранилищ.
По сути, Arc можно описать элегантной формулой:
Arc = Time-Series + Lakehouse + DuckDB
Идея, на первый взгляд, обманчиво проста, но невероятно амбициозна: записывать миллионы метрик в секунду прямо в Parquet-файлы и тут же, без поднятия кластеров и очередей Kafka, выполнять по ним SQL-аналитику. Всё это великолепие — через HTTP API, с нативной поддержкой Influx Line Protocol и, что немаловажно, с автоматической компакцией мелких файлов.

Проект ещё находится на ранней стадии (альфа-релиз), но уже демонстрирует впечатляющие результаты: до 1,89 млн записей в секунду при нативном запуске, минимальные задержки и совместимость с Apache Superset для визуализации, что делает его крайне привлекательным для быстрого старта.
Arc позиционируется как "time-series lakehouse" — своего рода золотая середина между классическими TSDB и современными data-lake-решениями. Этот подход явно вдохновлён философией DuckDB + Parquet + Object Storage: всё локально, всё аналитически, всё через SQL.
Почему это важно? Потому что мы на пороге революции.
Мы наблюдаем рождение нового тренда: анализ временных рядов, который не требует ни серверов, ни сложных кластеров. DuckDB уже де-факто стал стандартом для "in-place analytics", Parquet — для эффективного хранения, а S3 — для инфраструктурной независимости. Arc собирает все эти компоненты в единый «минимальный сервер», способный писать, хранить и анализировать данные без необходимости разворачивать PostgreSQL, настраивать Kubernetes или подписывать облачные контракты.
Для разработчиков, аналитиков и инженеров наблюдаемости это звучит как несбыточная мечта, ставшая явью:
Просто скачай бинарник, запусти сервер, отправляй метрики, пиши SQL-запросы — и наслаждайся результатом.
Конечно, как и любая ранняя технология, Arc не без своих "дьяволов" в деталях: стабильность, механизмы компакции, WAL, отсутствие распределённости — всё это требует внимательного изучения и учёта.
Если говорить совсем коротко, Arc — это InfluxDB, переосмысленный через призму DuckDB и Parquet. И если этот проект сможет достичь необходимой стабильности, он вполне может положить начало новой волне "serverless analytics for time-series", изменив ландшафт аналитики временных рядов.
А теперь болле подробно о том что такое Arc
Arc — это экспериментальное (на данный момент в альфа / техническом превью) решение для хранения и аналитики временных рядов. (GitHub)
Ключевые компоненты:
Использует DuckDB как движок аналитики SQL над Parquet-файлами. (GitHub)
Хранит данные в формате Parquet, организованных в разделы (партиционирование по времени / папки). (GitHub)
В качестве долговременного хранилища — MinIO / S3-совместимое хранилище. (GitHub)
Ввод (ingest) поддерживает протокол MessagePack (рекомендуемый, для высокой скорости), а также поддержку InfluxDB Line Protocol (для обратной совместимости) (GitHub)
Автоматическая компакция мелких файлов в большие (чтобы уменьшить накладные расходы на сканирование множества файлов) (GitHub)
Опциональный Write-Ahead Log (WAL) для гарантий сохранности, но по умолчанию отключён (для максимальной скорости) (GitHub)
Мультибазовая архитектура (namespaces / базы) — можно разделять данные по приложениям, арендаторам и т.п. (GitHub)
Интерфейс доступа через HTTP API — запросы SQL, эндпоинты для ingest, управление, мониторинг и др. (GitHub)
Интеграция с Apache Superset через свой SQLAlchemy-диалект (GitHub)
Архитектурно Arc — это «time-series warehouse / lakehouse» тип, где хранение разделено (object storage) и движок аналитический (DuckDB) читает Parquet напрямую.
Показатели производительности, заявленные
При нативном (native) запуске — до 1,89 млн записей/сек (MessagePack протокол). (GitHub)
В Docker-режиме — около 570 000 записей/сек (значительно меньше) (GitHub)
Латентности: p50 — 21 мс, p95 — 204 мс (в тестах) (GitHub)
В ClickBench-бенчмарке (на AWS c6a.4xlarge): холодный запуск (без кэша) суммарно ~35.18 сек по 43 запросам, горячий запуск (с кэшем) ~0.81 сек в среднем на запрос (43/43 запросов выполнены) (GitHub)
На Apple M3 Max тесты также приводятся: ~23.86 сек «cold run» + ~0.52 с средний hot-run (GitHub)
Важно: команда проекта явно указывает, что Arc сейчас не рекомендуется для продакшена — это технический превью. (GitHub)
APIs, форматы и детали могут изменяться.
Преимущества (сильные стороны)
Высокая скорость ingеst + аналитика — сочетание высокоскоростного ввода и аналитического движка (DuckDB над Parquet) даёт преимущество в сценариях, где нужно сразу писать и читать данные.
Хорошо подходит для архитектуры «cold + hot» данных — холодные данные хранятся в объектном хранилище, а аналитика читает Parquet напрямую, без промежуточных слоёв.
Гибкость хранения — использование S3-совместимого хранилища (MinIO или облачные S3/GCS) упрощает масштабирование и удалённое хранение.
Автокомпакция — чтобы избегать «многих мелких файлов», что обычно сильно тормозит аналитические запросы.
Совместимость протоколов — поддержка Influx Line Protocol позволяет интегрировать с существующими инструментами наблюдаемости и метрик.
Мультибазовая (namespace) архитектура — можно логически разделять данные для разных сред, приложений или арендаторов.
Открытость и модифицируемость — код под лицензией AGPL-3.0, что позволяет видеть устройство, вносить изменения (но при предоставлении как услуги — придётся раскрывать свои правки) (GitHub)
Интеграция визуализации — поддержка Superset как BI-инструмента «из коробки».
Недостатки, риски и ограничения
Стадия зрелости / стабильности — альфа-превью, API и внутренние детали могут меняться, возможности не полностью протестированы на боевых нагрузках.
Зависимость от Parquet / файловой структуры — эффективная работа сильно зависит от качества партиционирования, размеров файлов, компрессии и планирования компакции.
Ограничения многопользовательского конкурентного доступа — поскольку DuckDB — однопроцессный движок (или ограниченно параллельный), в сценариях с высокой конкуренцией чтения-записи может быть узкое место.
Отсутствие распределённости — Arc, по текущему состоянию, не предлагает горизонтальное масштабирование (sharding) на несколько нод (по крайней мере в документации не видно).
Лимиты на реальное использование WAL — включение Журнала приводит к падению производительности (относительно отключенного) — есть компромиссы между гарантией сохранности и пропускной способностью. (GitHub)
Отсутствие зрелых функций TSDB (time-series) — многие TSDB предлагают специализированные функции (например, downsampling, retention policies, автоматическое удаление старых данных, агрегаты в реальном времени и т.п.), возможно, часть таких функций в Arc либо не реализована, либо экспериментальна.
Лицензия AGPL-3.0 — если ты хочешь использовать модифицированный Arc как SaaS, придётся раскрывать свои изменения (ограничение для коммерческих продуктов).
Оверхед HTTP API / сериализация — часть задержки и накладных расходов придётся на сетевые вызовы, упаковку/распаковку, работу сервера API и т.д.
Потребности в ресурсах — в сценариях с высокой нагрузкой парсинг, кэширование, обработка файлов и компакция могут требовать значительные ресурсы CPU / IO / память.
Когда Arc может быть уместен
Наблюдаемость (metrics, логические метрики, data-pipeline мониторинг)
IoT / сенсорные данные
Приложения, где нужен единый слой записи + аналитики
Когда важно хранить долгосрочные данные в дешёвом объектном хранилище
Когда хочется избежать сложной инфраструктуры распределённых TSDB
В проектах, где можно допустить изменения и экспериментальное ПО, и есть возможность строгого тестирования перед продакшеном
Но если нужен гарантированный production-grade TSDB с шардированием, высокой доступностью, failover, крупномасштабной репликацией — Arc в текущем виде может быть рискованным выбором.
Конкуренты / похожие решения
Ниже — набор систем, которые работают в смежной области (time-series, аналитика, lakehouse подходы). Я выбрал как зрелые TSDB, так и более экспериментальные «lakehouse для временны́х рядов».
Некоторые основные конкуренты:
TimescaleDB — расширение PostgreSQL для временных рядов. (Wikipedia)
ClickHouse — аналитическая колонно-ориентированная СУБД, часто используется для метрик и аналитики. (не чистый TSDB, но часто конкурирует)
InfluxDB — специализированная база для метрик / временных рядов.
QuestDB — ориентированная TSDB с высокой скоростью записи и обработки SQL.
GigAPI — новый проект “timeseries lakehouse” на основе DuckDB + Parquet + компрессии / компакции. (GitHub)
Куски дата-озёр / lakehouse архитектуры (например Apache Iceberg, Delta Lake, с движками типа Trino / Spark / Flink) — не специализированные TSDB, но могут быть использованы для хранения временных рядов.
Другие экспериментальные движки — например разные “internal time-series lakehouse experiments”.
Я сейчас сфокусируюсь на наиболее прямых конкурентах (TimescaleDB, ClickHouse, InfluxDB, QuestDB, GigAPI) и их сильные/слабые стороны в свете сравнения с Arc.
Таблица сравнения
Ниже таблица, в которой Arc сравнивается с ключевыми конкурентами по важным метрикам и характеристикам:
Характеристика / метрика |
Arc |
TimescaleDB |
ClickHouse |
InfluxDB |
QuestDB |
GigAPI |
---|---|---|---|---|---|---|
Архитектурный подход |
DuckDB + Parquet + S3 / MinIO, файл-ориентированный |
Надстройка над PostgreSQL (гипертаблицы) |
Колонно-ориентированная СУБД, сервер |
Специализированная TSDB (append-optimized) |
TSDB + SQL движок |
Lakehouse (DuckDB + Parquet + API) |
Стадия зрелости / стабильность |
Альфа / технический превью |
Продукционная, зрелая |
Продукционная, активно используется |
Продукционная, зрелая |
Продукционная / активно развивается |
Новый / экспериментальный |
Скорость записи / ingest |
~1,89 млн записей/с (MessagePack, нативно) |
высокая, но зависит от конфигурации, индексов, нагрузки |
высокая, особенно для аналитики и партиций |
высокая (особенно для метрик) |
высокая, оптимизирована под TS |
проект нацеливается на “sub-second queries” в lakehouse среде (GitHub) |
Задержки / латентности запросов |
p50 ~21 мс, p95 ~204 мс (в тестах) (GitHub) |
низкая до умеренной (зависит от индексов, реплик) |
быстро, особенно при агрегациях |
быстрые, для метрик |
быстро, для аналитики над временными рядами |
ориентирован на быстрые запросы |
Горизонтальное масштабирование / шардирование |
не реализовано (на текущий момент) |
поддерживает масштабирование через PostgreSQL методы (вертикальное, кластеризацию) |
поддерживает кластерные конфигурации, распределённость |
поддерживает кластерные версии / кластеризацию |
поддерживает масштабируемость |
пока без зрелой распределённости (по состоянию проекта) |
Хранение «холодных» данных / долговременное хранение |
Да — через Parquet в S3 / MinIO |
да, через хранение PostgreSQL / сторонние слои |
да, через холодные слои / партиционирование |
да, retention policies и “compactions” |
да, через партиции / холодные слои |
основная идея как раз хранить данные в “lakehouse” |
Поддержка SQL / аналитики |
Полный SQL, DuckDB |
Полный SQL (PostgreSQL + TS функции) |
SQL-диалект, аналитика |
SQL-подобный язык Flux / InfluxQL / SQL (в новых версиях) |
SQL |
SQL (на базе DuckDB) |
Протоколы записи / совместимость |
MessagePack, Influx Line Protocol |
стандартный SQL / функции TS |
собственные клиенты / SQL |
собственные API / HTTP, клиентские библиотеки |
собственные API / SQL |
REST API / lakehouse подход |
Автоматическая компакция / оптимизация файлов |
Да, встроенная (конфигурируемая) |
частично (например, через политики retention) |
да (мердж-план, оптимизация данных) |
да (compactions, retention) |
да (внутренние оптимизации) |
предполагается наличие механизмов оптимизации |
Гарантии сохранности / устойчивость к сбоям |
WAL (опционально) с потерями / снижением производительности |
транзакционная, репликация |
репликация, устойчивость |
возможны режимы высокой доступности |
зависит от конфигурации |
TBD (на стадии разработки) |
Лицензия / модель использования |
AGPL-3.0 (открытый код, но ограничения для SaaS) |
Apache 2.0 / open |
Apache 2.0 / open |
OSS + коммерческие версии |
open |
зависит от лицензии проекта (MIT / open либо гибрид) |
Преимущества по сравнению с Arc |
зрелость, поддержка, надёжность |
зрелость и поддержка экосистемы данных |
высокая мощность аналитики, масштабируемость |
узкая специализация, зрелые экосистемы |
современный TSDB-дизайн для аналитики |
близкая архитектура (lakehouse) и ориентир на схожие сценарии |
Недостатки по сравнению с Arc |
возможная меньшая скорость ingest / компромиссы |
накладные расходы PostgreSQL, масштабируемость ограничена |
сложность настройки, эксплуатация, ресурсы |
лимиты на сложные аналитические запросы |
ограничения распределённости |
ещё не зрел, возможно отсутствие некоторых функций |
Вывод и рекомендации
Arc — интересный проект, стремящийся занять нишу «ingest + аналитика над временными рядами» с минимальным промежуточным слоем.
В текущем виде он подходит скорее для экспериментов, прототипов, проектов, где можно пожертвовать гарантиями ради скорости и гибкости.
В сравнении с устоявшимися TSDB (TimescaleDB, InfluxDB) и аналитическими СУБД (ClickHouse) у Arc есть потенциал, но серьёзные конкуренты имеют зрелость, экосистему, устойчивость, распределённость и боевые проверенные кейсы.
Особенный интерес вызывает GigAPI, который очень близок по архитектуре к Arc (DuckDB + Parquet + lakehouse подход) — возможно, это будет ближайший “соперник-аналоги”. (GitHub)
Если ты рассматриваешь использовать Arc на продакшене, стоит провести нагрузочные тесты именно под твои данные / паттерны, обратить внимание на стратегию компакции, настройку ресурсов, отказоустойчивость, recovery после сбоев и механизм WAL.
Комментарии (7)
kmatveev
11.10.2025 06:28Я глянул исходники, это ещё больший мутант, чем я думал. Оно написано на питоне. При получении msgpack-сообщения вызывается библиотечный msgpack-декодер, который превращает это в питоновский список питоновских словарей. А чтобы сохранить это на диск, используется Polars DataFrame, в который этот список словарей передаётся. Это точно можно делать эффективнее.
akardapolov
11.10.2025 06:28При нативном (native) запуске — до 1,89 млн записей/сек (MessagePack протокол)
Средний размер записи порядка 90 байт. В МБ скорость записи будет порядка 170 Мб/сек в несколько потоков (e.g., 14 cores = 42 workers).
{ "m": "cpu", "t": 1728604800000, "h": "server01", "tags": { "region": "us-east", "dc": "aws" }, "fields": { "usage_idle": 95.0, "usage_user": 3.2, "usage_system": 1.8 } }
mantyr
Похоже очередная статья написанная GPT.
EvgeniyRasyuk Автор
да , это обзорная статья по новому продукту
kmatveev
Ссылки с utm_source=chatgpt.com не дадут ошибиться