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. Это может упростить интеграцию исторических данных в вашу аналитическую систему.

← Все статьи

Комментарии

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

Ethernet (W5500, ENC28J60) + ASI Biont: проводной IoT без программирования — будущее автоматизации

14 июля 2026

Лейтнер, Elo и поправка на угадывание: как работает движок тренажёра собеседований без единого вызова LLM

14 июля 2026

Интеграция RC522 (RFID) с AI-агентом ASI Biont: пошаговое руководство по подключению и автоматизации

14 июля 2026

Промышленная безопасность: как избежать штрафов и аварий на ОПО в 2026 году — курс от экспертов Ростехнадзора

14 июля 2026

Почему курс по системам реального времени — ваш следующий шаг в карьере: WebSockets, WebRTC и голосовые ассистенты

14 июля 2026

Как я собирал AI-агентную команду для реального бизнеса, а не ассистента в чате

14 июля 2026

Как ИИ-агент ASI Biont интегрируется с умным домом (Zigbee, Z-Wave) для автоматизации без кода

14 июля 2026

SEC и инсайдерская торговля: регулирование и комплаенс — курс для юристов и комплаенс-специалистов, который объясняет Rule 10b-5, 10b5-1 планы и кейсы на реальных прецедентах

14 июля 2026

10 промтов для CI/CD: GitHub Actions, GitLab CI и ArgoCD для профессионалов

14 июля 2026