Какие базы данных используют крупные сетевые магазины

    Крупные розничные сети, такие как Магнит, Пятерочка, М.Видео и другие, ежедневно обрабатывают миллионы транзакций. Для синхронизации данных о покупках, ценах и скидках в реальном времени, а также для последующей аналитики, используется гибридная архитектура баз данных (БД). Она сочетает в себе системы OLTP (онлайн-обработка транзакций) и OLAP (онлайн-аналитическая обработка).

    Почему нельзя обойтись одной системой

    Транзакционные системы (OLTP) требуют высокой скорости записи, целостности данных и поддержки большого числа одновременных подключений от касс и мобильных приложений. Аналитические системы (OLAP) оптимизированы для сложных запросов и агрегации больших объемов данных. Использование единой БД для обеих задач приводит к деградации производительности.

    Реальная архитектура: пример PostgreSQL + ClickHouse

    Ваше предположение близко к истине. Многие сети используют PostgreSQL или его кластерные версии для OLTP-нагрузок - записи чеков, обновления остатков, фиксации скидок. Для аналитики применяют специализированные колоночные СУБД, такие как ClickHouse или Greenplum (версия PostgreSQL для аналитики). Данные передаются в аналитическую БД асинхронно - через ETL-процессы, брокеры сообщений (Kafka) или параллельную запись.

    Например, в сети Магнит для OLTP могут использоваться кластеры Oracle или PostgreSQL, а для OLAP - Greenplum и собственные решения на базе Hadoop. М.Видео в своей инфраструктуре применяет Microsoft SQL Server для транзакций и ClickHouse для быстрых отчётов.

    Отказоустойчивость и масштабирование

    Вы абсолютно правы: для обеспечения непрерывности работы сеть магазинов разбивается на географические кластеры. Каждый кластер обслуживает группу магазинов и имеет собственные реплики БД. В случае сбоя одного дата-центра нагрузка автоматически перераспределяется (например, через Kubernetes или шардирование). Это предотвращает остановку всей сети при аварии.

    Пример схемы данных

    • OLTP-слой: PostgreSQL (шардированный по регионам), Oracle RAC, кластеры на CockroachDB.
    • Брокер сообщений: Apache Kafka для передачи транзакций в реальном времени.
    • OLAP-слой: ClickHouse, Greenplum, Vertica - для аналитики продаж и построения дашбордов.
    • Кэш: Redis или Tarantool для мгновенного отображения данных в мобильном приложении клиента.

    Полезные материалы для изучения

    Рекомендуем ознакомиться с докладами конференций HighLoad++ и Saint HighLoad, где инженеры Магнита и М.Видео делятся архитектурой. Также полезны статьи про паттерн CQRS (Command Query Responsibility Segregation) - разделение команд на запись и чтение, который лежит в основе гибридных систем.

    Часто задаваемые вопросы