25 лет истории акций: как MinIO, MongoDB и PostgreSQL справляются с Big Data

Введение

Инвесторы, трейдеры и аналитики давно поняли: данные — это новая нефть. Но что делать, когда эта нефть накапливается четверть века? Хранение 25 лет истории стоимости акций — задача нетривиальная. Это терабайты временных рядов, миллиарды записей и постоянный поток новых данных. Недавно на Habr появилась статья, в которой разработчики поделились своим опытом построения такой системы на трёх разных технологиях: MinIO, MongoDB и PostgreSQL. Материал вызвал бурное обсуждение в сообществе, и это неудивительно — выбор правильного хранилища для исторических финансовых данных напрямую влияет на скорость анализа и стоимость инфраструктуры.

Источник

Проблема: объём и скорость

Финансовые данные — это не просто цифры. Каждая запись о стоимости акции включает в себя дату, время, цену открытия, закрытия, максимум, минимум, объём торгов. За 25 лет набегает внушительный массив. В статье авторы отмечают, что основная сложность заключалась не только в хранении, но и в обеспечении быстрого доступа к историческим срезам. Типичный запрос выглядит так: «Покажи динамику цены акции Apple за последние 10 лет с шагом в 1 день». Без правильной архитектуры такой запрос может выполняться минутами, что неприемлемо для аналитики.

Решение: три подхода к хранению

Разработчики решили не выбирать что-то одно, а протестировать три популярные системы — MinIO, MongoDB и PostgreSQL. Каждая из них заняла свою нишу.

MinIO: холодное хранение сырых данных

MinIO — это S3-совместимое объектное хранилище. Оно идеально подходит для хранения «сырых» данных в формате Parquet или CSV. В статье описывается, как MinIO использовали для бэкапов и долгосрочного архива. Данные за 25 лет занимают относительно немного места благодаря сжатию. Главный плюс — низкая стоимость хранения и возможность масштабирования до петабайт. Однако для оперативных аналитических запросов MinIO не подходит — время доступа к отдельной записи слишком велико.

MongoDB: гибкость для временных рядов

MongoDB — документо-ориентированная база данных. Разработчики применили её для хранения «горячих» данных последних 5 лет. Одна запись — один документ с датой и массивом цен за день. MongoDB позволяет быстро выбирать данные по диапазону дат и агрегировать их на стороне сервера. Результаты тестов показали, что MongoDB справляется с выборкой 10 лет истории за 2-3 секунды, если правильно настроены индексы. Но есть нюанс: при большом количестве одновременных запросов производительность падает.

PostgreSQL: надёжность и SQL

PostgreSQL использовали как эталон. Реляционная модель с чёткой схемой таблиц — классика для финансовых данных. Разработчики создали таблицу с партиционированием по годам. Это ускорило запросы: выборка за 5 лет занимала менее 1 секунды. PostgreSQL также обеспечила строгую целостность данных — никаких дубликатов или пропусков. Однако при попытке загрузить все 25 лет в одну таблицу без партиционирования производительность резко падала.

Сравнение производительности

В статье приведены конкретные цифры. Для чистоты эксперимента использовались одинаковые наборы данных — 5 млрд записей за 25 лет. Тестировался запрос на получение средней цены закрытия за каждый год для трёх случайных акций.

Система Время выполнения Примечание
MinIO 45 сек Чтение Parquet через Presto
MongoDB 2.3 сек С агрегацией на стороне БД
PostgreSQL 0.8 сек С партиционированием по годам

Вывод: PostgreSQL оказался быстрее для точных SQL-запросов, MongoDB — удобнее для гибкой схемы, MinIO — дешевле для хранения.

Как это применить на практике

Для тех, кто строит свою систему хранения финансовых данных, авторы статьи советуют гибридный подход:
- MinIO — для хранения исходных данных и бэкапов.
- MongoDB или PostgreSQL — для оперативной аналитики.
- Связка через ETL-процессы, которые периодически перекладывают данные из MinIO в БД.

Это снижает стоимость хранения и ускоряет запросы. Например, данные до 2020 года можно хранить только в MinIO, а последние 5 лет — в MongoDB. При необходимости старые данные загружаются из MinIO по запросу.

Заключение

25 лет истории акций — это не предел. С ростом количества инструментов и частоты торгов объёмы будут только расти. Выбор между MinIO, MongoDB и PostgreSQL зависит от приоритетов: скорость, стоимость или гибкость. Лучший вариант — комбинация всех трёх систем, как показано в статье на Habr. Такой подход позволяет получить и быстрые ответы на запросы, и надёжное долгосрочное хранение.

Если вы работаете с финансовыми данными и хотите автоматизировать сбор и анализ, обратите внимание на инструменты, которые умеют подключаться к разным источникам. ASI Biont поддерживает подключение к MongoDB и PostgreSQL через API — подробнее на asibiont.com/courses. Это может упростить интеграцию исторических данных в вашу аналитическую систему.

← Все статьи

Комментарии

Читайте также

FDA/EMA — Регуляторные вопросы для фармацевтики: освоение одобрения лекарств в 2026 году

17 сентября 2026

Как AI-агент ASI Biont трансформирует интеграцию банковских API: бескодовая финансовая автоматизация в 2026 году

13 июля 2026

Google DeepMind Accelerator в Азиатско-Тихоокеанском регионе: как AI поможет экологии и вашему бизнесу

22 июня 2026

Курс Cambridge IGCSE Geography (0460): Освойте население, природную среду и экономическое развитие

9 августа 2026

Мастерство принятия решений и стратегии: как обучение с ИИ трансформирует критическое мышление для бизнес-лидеров

13 июля 2026

Как я в одиночку сделал мобильную игру на iOS — LootShrine: разбор пути инди-разработчика

14 июля 2026

Мультимодальный ИИ в 2026 году: Почему текстовые модели уже устарели — и как освоить GPT-4V, CLIP, Whisper и мультимодальные RAG-конвейеры

20 сентября 2026

Почему платформы Low-Code / No-Code — это будущее автоматизации бизнеса (гид 2026 года)

17 июля 2026

Кино- и видеопроизводство с AI: как автоматизация съёмок меняет индустрию и чему учит курс Asibiont

29 июля 2026