О чём история

В 2021 году Fix Price — крупнейшая в России и одна из ведущих на международном рынке сеть магазинов низких фиксированных цен — в связи с активным ростом бизнеса столкнулась с необходимостью заменить решение для чековой аналитики. В партнёрстве с Neoflex и Yandex Cloud, с помощью управляемых облачных сервисов компания перенесла витрины данных в СУБД ClickHouse и создала полностью cloud‑native‑архитектуру.

С переходом в облако Fix Price достиг прозрачности процессов загрузки и хранения данных, а также использования тестовых сред, что позволило быстрее работать над проектами компании. Время загрузки данных в витрины сократилось в 10 раз, а время построения аналитических отчётов сейчас не превышает двух секунд.

Устранить слабое звено на фоне растущих бизнес‑показателей

Fix Price — одна из ведущих на международном рынке и крупнейшая в России сеть магазинов низких фиксированных цен, основанная в 2007 году. На 31 декабря 2021 года сеть Fix Price насчитывала 4904 магазина в 79 регионах России и 6 странах ближнего зарубежья с ассортиментом порядка 2000 позиций в примерно 20 товарных категориях. К 31 марта 2023 года сеть выросла до 5848 магазинов в 80 регионах России и ещё 7 странах.

Компания агрегирует и анализирует самые разные данные по продажам и товарам. Для обработки информации о чеках и движении товаров в компании использовалась аналитическая платформа, реализующая ассоциативную архитектуру с обработкой данных в оперативной памяти. В 2021 году развитие бизнеса стали сдерживать ограниченные возможности текущей системы — постоянно увеличивалось время подготовки и актуализации витрин данных. Их ежедневные обновления занимали от трёх часов в сутки. Требовалось увеличивать объём оперативной памяти на текущем сервере и оптимизировать решение, чтобы ускорить процесс обработки данных и снизить количество аппаратных ресурсов.

В качестве интегратора, который реализует проект, выступил Neoflex. Компания предложила продолжить использовать облачные технологии, которые позволят быстро и надёжно запустить аналитическое решение, а также легко масштабировать его на разные проекты Fix Price, включая e‑com‑площадку.

В поиске недостающих экспертизы и скорости

Для поддержки растущего бизнеса сети Fix Price требовалась аналитическая система, которая будет обрабатывать первичные xml‑файлы и синхронизировать данные в СУБД максимум за полчаса. В качестве СУБД компания выбрала ClickHouse. Это колоночная база, особенно эффективная, когда компании нужно обрабатывать большие объёмы данных и экономить место за счёт сильного сжатия. ClickHouse позволяет быстро загружать данные и легко генерировать аналитические отчёты.

Компания Neoflex отвечала за проектирование и последующую реализацию архитектуры целевого решения. Чтобы иметь возможность масштабировать нагрузку на нескольких проектах Fix Price, Neoflex предложила использовать управляемые сервисы Yandex Cloud — своего давнего облачного партнёра. Сотрудничество с российским облачным провайдером было подходящим вариантом для Fix Price с точки зрения соблюдения требований законодательства по хранению персональных данных. Доступ к динамически масштабируемым ресурсам и компетенции команды Yandex Cloud расширяли возможности для развития компании, так как у неё было недостаточно физических серверов и опыта в эксплуатации СУБД ClickHouse.

Neoflex является партнёром Yandex Cloud в части разработки и внедрения облачных решений. Это позволило нашей команде реализовать для Fix Price масштабируемую аналитическую систему всего за два месяца, включая этапы проектирования, аналитики и разработки. Теперь компании доступно надёжное облако с полностью управляемыми сервисами, которые помогли значительно ускорить обработку и загрузку данных, а также повысить эффективность чековой аналитики.

Денис Князев,
директор по развитию бизнеса компании Neoflex

Для реализации проекта Neoflex и Fix Price выбрали Yandex Managed Service for ClickHouse. Преимущества колоночных СУБД дополнялись тем, что в случае использования управляемого сервиса не нужно покупать и настраивать железо, прилагать усилия и тратить время сотрудников на обслуживание базы данных и обеспечение масштабируемости и отказоустойчивости решения. Кроме того, Yandex Cloud гарантирует безопасность данных в соответствии с 152‑ФЗ, GDPR, стандартами ISO и PCI DSS.

Сервисы для поддержки новой системы аналитики

В ходе проекта требовалось создать витрины и реализовать механизмы загрузки данных в СУБД ClickHouse. Проект начался с проектирования решения — оно включало подготовку верхнеуровневой архитектуры и концепции. На этапе аналитики и разработки команда подготовила требования к целевой системе с перечислением структуры и потоков данных и с запросами для различных типов трансформаций. Далее последовали этап разработки кода проекта на языке Python в Yandex Cloud Functions и создание схемы СУБД ClickHouse, тестирование и опытно‑промышленная эксплуатация. Реализация всех этапов заняла два месяца.

Для своих текущих задач FixPrice использует набор сервисов Yandex Cloud:

  • В объектное хранилище данных Yandex Object Storage поступают xml‑файлы с информацией о продажах продукта, скидках и товародвижении — какой товар, когда и в каком количестве был перемещён, его стоимость и валюта.
  • Файлы из объектного хранилища обрабатываются в Yandex Cloud Functions и передаются в управляемый Yandex Managed Service for ClickHouse.
  • В Yandex Managed Service for ClickHouse на основе информации из Yandex Cloud Functions формируются витрины данных.
  • В Yandex Managed Service for YDB хранятся данные для отправки в мониторинг и служебная информация. Например, количество загруженных чеков, проводок, успешно и безуспешно обработанных файлов.
  • Сервис Yandex Message Queue интегрирован с Cloud Functions. Он позволяет передавать сообщения между компонентами системы и при срабатывании триггера вызывать нужную функцию для обработки данных.
  • Также компания использует Yandex Cloud Logging для работы с журналами и Yandex Cloud Monitoring для прикладного мониторинга решения.

На этапе анализа Fix Price и Neoflex столкнулись с особенностью ClickHouse: СУБД не позволяет делать несколько запросов array join или inner join и потребляет много оперативной памяти при выполнении запросов с подзапросами. Чтобы решить эту проблему, команда проекта изменила структуру данных.

На текущий момент решение запущено в промышленную эксплуатацию. Облачные мощности используются для создания и хранения онлайн‑витрины данных в СУБД ClickHouse.

Готовая система скоростной аналитики

Fix Price ежедневно загружает в СУБД ClickHouse порядка 10 ГБ данных. При этом время загрузки данных в витрины сократилось в 10 раз, а время построения аналитических отчётов теперь не превышает двух секунд. Сейчас для компании прозрачны траты на загрузку и хранение данных, а также на использование тестовых сред.

В ближайшее время компания планирует перевести работу хранилища и всего ETL (трёхэтапный процесс управления данными, в дословном переводе — «извлечение, преобразование, загрузка») на сторону облака. Это позволит существенно экономить бюджет и увеличить эффективность по сравнению с физическими серверами.

Мнение

Кристина Кондакова,
руководитель центра компетенций Qlik Fix Price
Кристина Кондакова,
руководитель центра компетенций Qlik Fix Price

Проект удалось реализовать полностью на cloud‑native‑технологиях, без использования IaaS облака — например, виртуальных машин. Считаем большим преимуществом облака то, что мы избежали необходимости выстраивать центр экспертизы по ClickHouse внутри компании.