Крупный ритейлер с онлайн-каналом, 300 офлайн-магазинами и программой лояльности на 8 млн участников накапливал данные о продажах, поведении покупателей и логистике в операционной базе PostgreSQL. Данные росли быстро: свыше 500 ГБ в месяц. По мере роста аналитические запросы маркетингового отдела (когортный анализ, воронки конверсии, ABC-анализ ассортимента) стали занимать 10–15 минут на PostgreSQL. Построение дашбордов в BI-системе заканчивалось таймаутом. Директор по маркетингу на совете директоров озвучил: «Пока аналитика считается 15 минут, мы не можем принимать оперативные решения о ценообразовании и промоакциях.» Бизнес требовал аналитику в реальном времени с задержкой не более 5 секунд для типового запроса.
Задача клиентаПостроить выделенную аналитическую платформу на базе ClickHouse, способную обрабатывать 2 млрд аналитических событий в сутки с p50-задержкой не более 3 секунд для типового запроса. Горячий тир: последние 30 дней. Холодный архив: 3 года. Масштабируемость без замены оборудования — до 10 млрд событий в сутки. Бюджет — до 10 млн рублей с НДС.
Ограничения и требованияВсе серверы — из реестра Минпромторга (компания имеет государственных партнёров и готовится к субсидированному кредиту от ФРП — требование реестра МПТ). ОС — Astra Linux или РЕД ОС. Управление кластером ClickHouse — силами собственного DBA-отдела после обучения. Срок поставки и развёртывания — 13 рабочих дней (до начала квартального промосезона).
Что предложилиЧетыре вычислительных узла Yadro Vegman R660 G2 с двумя Intel Xeon Platinum 8360Y (36 ядер на сокет, 72 потока, 1 ТБ DDR4 ECC). Каждый узел несёт шесть NVMe U.2 Micron 7450 PRO 7.68 ТБ (суммарно 46 ТБ на узел, 184 ТБ на весь горячий тир после учёта репликации ClickHouse). Горячий тир покрывает 30 дней данных при ежесуточном приросте около 4 ТБ после сжатия ClickHouse 6:1.
Холодный тир для исторических данных — Aerodisk Engine N2 с 24 HDD SAS 16 ТБ Seagate Exos X18 (около 320 ТБ полезных после RAID 6), подключённый по 4×10GbE iSCSI. Данные старше 30 дней автоматически мигрируют с NVMe-тира на HDD через политику multi-volume storage ClickHouse — прозрачно для SQL-запросов.
Кластер ClickHouse: 4 шарда × 2 реплики (каждая пара соседних узлов — один шард с репликой). ZooKeeper ансамбль из 3 нод — на существующих VM ритейлера. Межузловые соединения — 100GbE через два коммутатора Eltex ESR-200 с ECMP-балансировкой и LACP failover.
Состав поставки по подсистемам- Вычисление + горячий тир: 4 × Yadro Vegman R660 G2 (2×Xeon Platinum 8360Y, 1 ТБ ECC), каждый с 6×NVMe Micron 7450 PRO 7.68 ТБ
- Холодный тир: 1 × Aerodisk Engine N2 с 24×HDD SAS 16 ТБ Seagate Exos X18
- Сеть: 2 × Eltex ESR-200 100GbE 32×QSFP28 + 4 × RAID-контроллер MegaRAID SAS 9560-16i
- ИБП: 2 × Delta Amplon N-10K 10 кВА для стойки аналитического кластера
ВИСТЛАН — авторизованный партнёр Yadro и Aerodisk. Партнёрские цены на 4 сервера Vegman R660 G2 и СХД Aerodisk Engine N2 обеспечили экономию 16% от рыночных цен — около 1,42 млн рублей. Диски Micron 7450 PRO (24 штуки) закуплены по объёмному партнёрскому прайсу дистрибьютора. Суммарная экономия по проекту превысила 1,5 млн рублей.
Этапы и срокиДни 1–3: профилирование 20 ключевых SQL-запросов PostgreSQL, проектирование схем таблиц ClickHouse (MergeTree, партиционирование, первичные индексы), расчёт тиеров и ёмкости. Дни 4–6: поставка серверов и СХД. Дни 7–9: монтаж в стойку, Astra Linux SE, ClickHouse 24.x, ClickHouse Keeper, настройка репликации и тиерного хранения. Дни 10–11: ETL-загрузка исторических данных (3 года из PostgreSQL), верификация записей. Дни 12–13: нагрузочное тестирование 2 млрд событий (синтетический бенчмарк + реальные запросы BI), 8-часовое обучение DBA-команды заказчика, подписание актов.
РезультатАналитическая платформа обрабатывает 2,1 млрд событий в сутки. p50-задержка типового запроса агрегации — 1.8 секунды против 10–15 минут на PostgreSQL. Дашборды BI строятся без таймаутов; маркетинговая команда запустила 12 новых аналитических отчётов за первый месяц работы платформы. В первый промосезон после запуска оперативная корректировка цен по результатам почасовой аналитики продаж принесла 4,1% прироста маржи. Сумма поставки — 8 900 000 рублей с НДС.
Почему выбрали насЭкспертиза ВИСТЛАН в аналитических платформах и ClickHouse (4 реализованных проекта с 2022 года), прямые партнёрские цены на Yadro и Aerodisk, опыт построения многотиерных систем хранения и практические знания оптимизации схем ClickHouse под e-commerce нагрузку — совокупность компетенций, которую заказчик не нашёл у конкурентов. Оптимизация 15 ключевых аналитических запросов и обучение DBA-команды включены в стоимость проекта.
Оптимизация схем ClickHouse под e-commerce нагрузкуВ рамках проекта инженер-DBA ВИСТЛАН провёл профилирование 20 ключевых SQL-запросов маркетингового отдела (когортный анализ, воронки конверсии, ABC-анализ SKU, анализ корзин) и разработал оптимальные схемы таблиц ClickHouse. Ключевые решения: применение MergeTree с ORDER BY (user_id, date) для эффективного сканирования по пользователям, материализованные представления для топ-100 SKU (обновляются при каждой вставке, запрос к ним занимает 0.05 с вместо 3 с), партиционирование по месяцам для эффективного удаления старых данных по TTL.
Схема словарей (Dictionaries) в ClickHouse загружает справочные данные из PostgreSQL (каталог товаров, профили пользователей программы лояльности) через PostgreSQL-движок каждые 5 минут. Это позволяет JOIN-операциям в аналитических запросах не обращаться к PostgreSQL в runtime — JOIN выполняется локально внутри ClickHouse по загруженному словарю, что ускоряет JOIN-запросы с 800 мс до 12 мс.
TTL-политика настроена для автоматического управления жизненным циклом данных: события старше 30 дней перемещаются с NVMe-тира (политика 'hot') на HDD-тир Aerodisk Engine N2 (политика 'cold') через ClickHouse multi-volume storage. События старше 3 лет автоматически удаляются. Процесс TTL-перемещения выполняется фоново без блокировки запросов — производительность во время TTL-слияний снижается не более чем на 8%.
ETL и потоковая загрузка данныхЗагрузка событий из operational PostgreSQL в ClickHouse реализована через Apache Kafka: в PostgreSQL установлен Debezium CDC (Change Data Capture) коннектор, публикующий каждую транзакцию в топик Kafka. ClickHouse читает из Kafka через движок Kafka Engine и вставляет данные батчами по 100 000 событий каждые 5 секунд. Задержка между событием в PostgreSQL и его появлением в ClickHouse для аналитики — не более 10 секунд. Это обеспечивает «почти реальное время» для оперативных дашбордов без нагрузки на продуктивный PostgreSQL.
Измеримый бизнес-эффект аналитической платформыВИСТЛАН совместно с аналитической командой ритейлера провёл оценку бизнес-эффекта от внедрения платформы ClickHouse через 3 месяца после запуска. Результаты: маркетинговая команда сократила цикл A/B-тестирования промоакций с 7 дней (ожидание аналитики PostgreSQL) до 2 дней, что позволило провести на 40% больше экспериментов за квартал. Команда категорийного менеджмента запустила еженедельную ротацию ассортимента на основе ABC-анализа в ClickHouse: доля мёртвых остатков на складах снизилась с 8,2% до 5,7% за квартал. Отдел ценообразования перешёл на ежечасный мониторинг конкурентных цен через ClickHouse вместо суточного — что позволило реагировать на изменения цен конкурентов в тот же день. По оценке финансового директора ритейлера, совокупный эффект от аналитики реального времени составил 1,2% прироста операционной прибыли в первом квартале после запуска — при стоимости платформы 8,9 млн рублей окупаемость составила менее одного квартала.
Архитектура надёжности платформы ClickHouseКластер ClickHouse из трёх узлов DEPO Storm 2250N5 настроен с репликацией через ZooKeeper (три ZK-узла развёрнуты на тех же серверах в виде ВМ под zVirt с изоляцией CPU и памяти). Шардирование: данные разбиты на 3 шарда (по одному на сервер) с коэффициентом репликации 2 (каждый шард реплицируется на один соседний узел). При отказе одного из трёх серверов: оставшиеся два содержат все реплики всех шардов, запросы продолжают выполняться с незначительным ростом задержки (~15%). Резервное копирование: ClickHouse clickhouse-backup на объектное хранилище S3 (ежедневный инкрементальный снапшот, хранение 30 дней, полный снапшот ежемесячно с хранением 12 месяцев). Мониторинг кластера: Grafana-дашборд с 22 ключевыми метриками ClickHouse — от реплик lag до merge queue depth.
Конфигурации, производители и цены носят ориентировочный характер и могут изменяться. Точные параметры согласовываются индивидуально при оформлении заказа.