ArcticDB — база данных временных рядов для Python

ArcticDB хранит и обрабатывает временные и табличные данные в Python, сохраняет версии и работает с локальным или объектным хранилищем.

ArcticDB — встраиваемая аналитическая база данных для Python, созданная Man Group. Она рассчитана на большие таблицы и временные ряды: например, историю цен, рыночные тики, результаты исследований и другие наборы числовых данных. Работать с ними можно через привычные для Python-аналитиков объекты pandas DataFrame.

Для запуска не нужен отдельный сервер базы данных. ArcticDB устанавливается как Python-пакет и обращается к выбранному хранилищу: локальному LMDB, S3 или совместимому объектному хранилищу. Это позволяет начать с локального эксперимента, а затем подключить данные к облачной или внутренней инфраструктуре.

Для чего используют ArcticDB

История цен и другие временные ряды

В ArcticDB данные раскладываются по библиотекам и символам. Библиотека служит отдельным набором данных, а символ — именем конкретного ряда или таблицы. Например, библиотека может хранить рыночные данные, а символы — отдельные инструменты или типы наблюдений.

Временной индекс помогает читать нужный диапазон дат и выбирать нужные столбцы. Новые записи можно добавлять к ряду, а исправления — вносить обновлением. ArcticDB подходит для работы с большими числовыми наборами, в том числе с потоковыми и биржевыми данными. Источник котировок при этом нужно подключить отдельно: сама база не поставляет цены и не заменяет биржу или сервис рыночных данных.

Исследования и аналитика в Python

ArcticDB хранит и извлекает наборы данных, с которыми затем работают pandas, NumPy и другие библиотеки Python. Фильтрация, выбор столбцов и часть операций над таблицей могут выполняться внутри движка хранения, чтобы не загружать в память весь массив. Для таких запросов есть QueryBuilder и более новый интерфейс LazyDataFrame; доступный набор вычислений зависит от операции.

Как устроено хранение

Локальная база без отдельного сервера

Для проверки или небольшого проекта можно выбрать LMDB на локальном компьютере. Пример из документации создаёт библиотеку, записывает в неё таблицу pandas и читает данные обратно:

pip install arcticdb

import arcticdb as adb

arctic = adb.Arctic("lmdb://arcticdb_demo")
lib = arctic.get_library("prices", create_if_missing=True)
lib.write("AAPL", prices_df)
prices = lib.read("AAPL").data

В примере prices_df — подготовленный в Python DataFrame с индексом дат. По этому индексу можно выбрать нужный интервал, а затем передать результат в привычный аналитический код.

Переход к объектному хранилищу

Для более крупных наборов и командной работы ArcticDB поддерживает объектные хранилища, включая AWS S3, Azure Blob Storage и ряд S3-совместимых решений. Подключение настраивается через Python API и параметры хранилища. В отличие от схемы «одна папка на ноутбуке», облачный вариант требует настроить доступ и права для хранилища.

Версии данных и воспроизводимость исследований

Возврат к прежней версии

Операции записи, добавления и обновления создают новые версии символа. Поэтому можно запросить более раннее состояние данных через параметр as_of, а снимок состояния библиотеки — сохранить как snapshot. Это помогает выяснить, какие данные были доступны на момент конкретного расчёта, и повторить анализ после исправлений в исходных таблицах.

Для проверки стратегии такая история полезна: аналитик может восстановить прежнюю редакцию ряда, а не незаметно использовать исправленные позднее значения. Однако одна только версия базы не исключает заглядывания в будущее. Для корректного теста нужно также учитывать, когда данные фактически стали доступны участникам рынка, и хранить эти временные отметки.

Цена хранения истории

Предыдущие версии по умолчанию сохраняются, поэтому объём хранилища со временем может расти. Их можно удалять настройками очистки или защищать выбранные состояния снимками. Политика хранения зависит от требований проекта и должна учитывать, какие версии понадобятся для повторного анализа.

Что умеет Claude Code в репозитории

Инструкции для работы с самим ArcticDB

В репозитории есть файл CLAUDE.md и два Claude Code Skills. Один помогает проверять запросы на изменение кода, другой — сверять и обновлять документацию проекта. Они дают Claude Code контекст о правилах разработки ArcticDB, когда агент работает с этим репозиторием.

Эти материалы предназначены прежде всего для сопровождающих проекта. Они не подключают котировки, не создают базу за пользователя и не превращают Claude Code в готовую систему для анализа портфеля. Чтобы поручить агенту написать код для собственного проекта, ему всё равно понадобятся описание данных, структура приложения и требования к лицензии.

Кому подойдёт ArcticDB

Сильные стороны и ограничения

ArcticDB будет интересна разработчикам и аналитикам, которые ведут временные ряды в Python, регулярно добавляют новые наблюдения и хотят сохранять историю изменений. Среди типичных задач — подготовка данных для исследований, анализ рынка и воспроизводимые расчёты на исторических наборах.

Движок ориентирован на аналитические операции над большими наборами строк. Он не использует SQL и не рассчитан на замену транзакционной базы для типичного приложения с частыми небольшими изменениями отдельных записей. Официальные привязки проекта доступны для Python; ArcticDB также не является готовой платформой котировок или торговым терминалом.

Лицензия: важное условие для компаний

BSL 1.1 и использование в production

Исходный код ArcticDB доступен по Business Source License 1.1. Это лицензия с доступным исходным кодом, но она не сертифицирована Open Source Initiative как лицензия открытого исходного кода. Согласно условиям проекта, бесплатное использование не распространяется на production и предоставление базы как сервиса без отдельного соглашения с ArcticDB Limited; для таких сценариев требуется платная лицензия.

Для отдельных версий предусмотрен переход на Apache 2.0 после указанного срока. Перед внедрением в рабочую или коммерческую систему проверьте файл лицензии именно той версии, которую планируете использовать, и условия для вашего сценария.

Исходный код и инструкции по работе с проектом доступны в официальном репозитории ArcticDB на GitHub.