О чём эта история

Группа «М.Видео — Эльдорадо» — крупнейший российский ритейлер бытовой и цифровой техники. Ежемесячно магазины бренда посещают более 100 млн человек. Как следствие, компания сталкивается с большим объёмом данных, для обработки и хранения которых использует собственную платформу данных.

Чтобы улучшить её работу и повысить отказоустойчивость ключевого компонента, группа компаний перенесла его в Yandex Cloud. Подготовка миграции заняла квартал, а обновление и перенос боевой базы данных из Greenplum 5 в Managed Service for Greenplum® удалось выполнить за неделю. Для увеличения скорости вычислений команда оптимизировала инфраструктуру, а также внедрила управляемый сервис ClickHouse и Yandex Object Storage. В результате «М.Видео» построила в облаке отказоустойчивое DWH, которое может справиться с объёмными запросами и соответствует гарантированному Yandex Cloud уровню SLA 99,5%. Облачная платформа обеспечила гибкое масштабирование инфраструктуры. С момента миграции объём хранилища вырос с 50 до 110 ТБ, а количество уникальных пользователей сервиса выросло со 150 до 200. Также команда «М.Видео» получила возможность делать резервное копирование без блокировки базы и остановок в работе сервиса.

Задача компании

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

Для обработки, анализа и хранения данных «М.Видео» построила платформу данных на локальной инфраструктуре. В неё попадают чеки, заказы, логистическая информация, цены, ассортимент товаров, справочники и другие данные, связанные с бизнес-процессами. Объём аналитического хранилища с 2020 по 2022 год увеличился с 30 до 110 ТБ. С учётом этого выросли и требования к обслуживанию, инфраструктуре, а также внутренним компетенциям в использовании цифровых решений. Собственные серверы не обеспечивали быстрое масштабирование и не справлялись с возросшей нагрузкой. IT-отдел давно рассматривал облачные решения, и поэтому компания перенесла свой продукт в облако.

В платформе данных в качестве СУБД использовали Greenplum. Чтобы база данных функционировала эффективно, команда разработки выделила критерии, которые должны быть удовлетворены:

  • инфраструктура, обеспечивающая быстрое масштабирование и отказоустойчивость;
  • дистрибутив или готовые решения от провайдера;
  • обслуживание, которое включает в себя управление инфраструктурой внутри компании и техническую поддержку цифрового продукта со стороны провайдера.

В процессе работы компания чаще всего сталкивалась со сложностями, связанными с обслуживанием. Команда «М.Видео» занималась поддержкой оборудования сети, операционной системы и не обладала компетенциями представителей провайдера инфраструктуры. Иногда возникали ситуации, при которых задачу не удавалось решить из-за различий в видении целей. Поэтому компания стремилась найти готовое решение, объединяющее в себе обслуживание базы данных и всей инфраструктуры, на которой она располагается.

Имея успешный опыт сотрудничества с Yandex Cloud при создании рекомендательной системы, компания «М.Видео» решила развивать платформу данных с помощью этого облачного провайдера. Также решили перейти и на управляемый Greenplum — это позволило компании сфокусироваться на бизнес-задачах, а обслуживание инфраструктуры взял на себя провайдер.

Дополнительным преимуществом Yandex Cloud, которое отметили в «М.Видео», стала возможность быстрого резервного копирования — бэкап на локальном кластере занимал до 18 часов и требовал остановки работы всего кластера, что недопустимо для платформы данных.

Платформа данных на базе управляемых сервисов для Greenplum и ClickHouse

Платформа данных в «М.Видео» предназначена для внутреннего использования: от сотрудников магазинов до топ-менеджмента. В основном при помощи неё создают аналитические отчёты, в том числе за продолжительный период или используя несколько разных источников. Другой сценарий — анализ воронок продаж, планирование продаж и покупок, запуск рекламных кампаний. Третий вариант — использование в качестве источника данных для продвинутой аналитики. Команда Data Science на базе платформы решает такие помогающие бизнесу задачи, как построение рекомендательных сервисов, сегментация клиентов, расчёты для открытия магазинов и складов, алгоритмы для загрузки транспортных контейнеров.

Из каждого розничного магазина сети отправляются такие данные, как загруженность зала, наиболее востребованный ассортимент, состояние склада и другие. Причём на платформе данных они постепенно охлаждаются в зависимости от даты создания: чем старше информация, тем реже к ней обращаются, соответственно, и требования к скорости выдачи становятся ниже. Хранятся холодные данные в Yandex Object Storage. Помимо них в объектном хранилище также расположены резервные копии системы и архивные данные.

Для обработки аналитики сайта и мобильного приложения решили использовать Yandex Managed Service for ClickHouse® вместо аналогичного по функциональности сервиса другого поставщика. Полученные данные — источник для Greenplum. Также при помощи ClickHouse в компании создают быстрые витрины: в них расположены предварительно вычисленные результаты агрегации, что ускоряет выполнение запросов и, как следствие, аналитических расчётов. Агрегирующие процессы, такие как суммирование, группировка, подсчёт и другие, происходят в Greenplum. При этом ClickHouse вместе с Yandex Object Storage образует гибридное хранилище с доступом к охлаждённым данным.

Отдельно выделили ограниченную по объёму песочницу в Greenplum и Yandex Object Storage. Это пространство для экспериментов, в которое можно загружать данные или объекты, такие как функции, представления, внешние таблицы, использовать рассчитанные в хранилище данные и сохранять полученные результаты. Причём для экспериментов можно использовать все данные хранилища, в зависимости от уровня доступа.

Архитектура проекта

Изначально Greenplum располагался на локальной инфраструктуре. Перенос базы данных в Managed Service for Greenplum не повлиял на архитектуру платформы данных, однако потребовал изменений со стороны команды сопровождения, так как управляемый сервис отличается с точки зрения администрирования. Миграцию осуществили в три этапа: функциональное тестирование, нагрузочное тестирование и перенос. Функциональное тестирование прошло в первом квартале 2021 года. Команда проекта провела 810 загрузок и запустила большое количество тестов, в том числе связанных с переходом с Greenplum 5 на Managed Service for Greenplum. После этого специалисты компании провели нагрузочное тестирование, по результатам которого скорректировали изначальные планы. Greenplum решили развёртывать на выделенных серверах. Такое решение обеспечило более высокую скорость, по сравнению с сетевым SSD, что важно для высоконагруженной системы. Чтобы платформа могла справляться с возрастающим потоком запросов, решили выделить больше ресурсов для параллельной обработки данных и настроили ноды — сократили количество сегментов на ноду с 18 до 8, увеличив при этом объём ресурсов, доступных для вычислений в одном сегменте: vCPU увеличили с 4,8 до 15, RAM — c 21 до 50 ГБ, а объём для хранения — с 0,8 до 1,6 ТБ.

Перенос занял одну неделю. Команда «М.Видео» переносила платформу самостоятельно при технической поддержке Yandex Cloud в сложных ситуациях.

В первую неделю после миграции компания столкнулась с неожиданно высокой нагрузкой: резкий наплыв пользователей после простоя сильно перегрузил систему, что привело к сбою. Удалось оперативно справиться с проблемой с помощью поддержки Yandex Cloud.

Результаты

В результате миграции в Yandex Cloud компания «М.Видео» преодолела трудности, которые возникали при эксплуатации Greenplum: отсутствие готовых решений, необходимость в обслуживании инфраструктуры, сложности с масштабированием локальной инфраструктуры и длительный бэкап, который мог занимать до 18 часов и требовал остановки всего кластера.

Перенос занял неделю, при этом пользователи продолжали работать с сервисом в это время, команда остановила работу кластера для создания бэкапа и его переноса на выходных. За счёт переноса платформы данных в Yandex Cloud и оптимизации инфраструктуры компания получила отказоустойчивый сервис с гарантированным провайдером уровнем SLA 99,5%, который способен быстро масштабироваться при резком увеличении количества запросов. Объём хранилища после миграции уже увеличился в два раза — с 50 до 110 Тб. Количество уникальных пользователей сервиса выросло со 150 до 200.

Кроме того, команда получила возможность делать резервное копирование без остановок работы платформы и блокировки базы.