«Платферрум» — это первый маркетплейс в России, специализирующийся на продаже металлопроката. Проект реализуется при поддержке компании «Северсталь». Пользователи платформы — строители, производители металлоконструкций, поставщики металлообработки, финансовые и логистические провайдеры, трейдеры и представители малого и среднего бизнеса. Задача маркетплейса — быстрое и безопасное заключение сделок, а также предоставление широкого спектра онлайн-услуг. Можно сказать, что «Платферрум» — это экосистема на рынке металлопроката.
Заказчику требовалось оперативно получать наглядную информацию о товарах, не попавших на витрину, с указанием причин. Проблема заключалась в том, что перед тем, как товар попадет в каталог маркетплейса, он проходит процесс верификации — система проверяет наличие цен, остатков, заполненность склада и другие параметры товара (их более 15). Если хотя бы одно из этих условий нарушается — товар не попадает на витрину маркетплейса.
Вместе с заказчиком мы выделили следующие задачи:
Наша задача заключалась в разработке быстрого и эффективного решения, которое не повлияет на текущие процессы и не станет дополнительной нагрузкой для разработчиков.
Поскольку инфраструктура «Платферрум», включая базы данных, размещена в защищенном контуре Yandex Cloud, использование Yandex DataLens стало естественным решением.
Преимущества Yandex DataLens:
Подключили необходимые базы данных к DataLens. Первая интеграция с хранилищем данных PostgreSQL была настроена в несколько кликов. Для этого нужно было указать параметры БД и создать пользователя на чтение данных из DataLens;
Проверка. Проверили каждый товар на наличие необходимой информации для вывода на платформу с помощью SQL-запросов, которые можно написать в датасете;
Сделали наглядную визуализацию в чарте. В чарте настроили индикаторы, которые загораются красным, если все товары по поставщику пропали с платформы;
Вывели все данные в дашборд. После просмотра сводной информации можно отфильтровать таблицу по конкретному поставщику и посмотреть детальную таблицу с товарами и их статусами: отображается или нет товар на витрине, если нет — увидеть, по каким причинам.
Далее мы начали делиться результатами с коллегами, а затем DataLens быстро освоили и другие члены команды.
Пользователей DataLens на «Платферрум» можно разделить на 3 типа:
Данное решение помогло нам быстро выполнить первые задачи, но у такого решения есть свои недостатки — в DataLens нельзя работать с таблицами из разных источников на уровне датасета.
Имея такое ограничение, мы не могли решать новые задачи:
Чтобы решить поставленные задачи мы решили создать хранилище, где будут собраны эти данные. Так, мы настроили передачу данных в ClickHouse из нескольких источников:
На текущий момент передача данных для PostgreSQL реализована с помощью сервиса Yandex Data Transfer:
Для получения данных мы создали самописные трансферы:
После создания единого хранилища данных мы начали создавать дашборды:
Наши базы данных часто меняются:
Последние изменения могут негативно отразиться на дашбордах — они ломаются с ошибкой о несуществующих объектах. Первое время разработчики узнавали об изменениях постфактум — либо мы видели, что дашборды упали с ошибкой «Не существует такого поля/таблицы», либо к нам приходили пользователи и спрашивали, почему дашборд сломался.
Мы настроили процесс через Yandex Tracker.
Системный аналитик после проработки своей задачи ставит чекбокс «Будут изменения в BI».
После релиза создается подзадача [CHGOBJ] + название Story в нашу очередь DL (класс обслуживания «Ускоренный»).
Задача BI-аналитика — ознакомиться с документацией и понять текущие изменения таблиц.
Решение от команды BI-аналитиков Digital Clouds оказалось быстрым, рабочим и масштабируемым — оно позволяет клиенту оперативно получать необходимую информацию без привлечения дополнительных ресурсов. Более того, благодаря Yandex Cloud мы обеспечили безопасность данных, что является ключевым аспектом в современном цифровом мире.
Мы гордимся тем, что смогли решить столь важную задачу в короткие сроки, используя современные технологии и инструменты, что подтверждает нашу способность адаптироваться к изменяющимся условиям и находить оптимальные решения даже в условиях жестких дедлайнов.
Сегодня BI-команда Digital Clouds работает над решением проблем миграции данных. Так как Yandex Data Transfer работают в режиме периодического полного копирования таблиц, перед каждым новым копированием таблицы в ClickHouse очищаются — в этот момент дашборды становятся недоступны пользователю на время копирования.
Первые полгода после запуска нашего решения это было некритично — дашборды обновлялись в течении 2-х минут. Но данных становится все больше, и сейчас таблицы могут обновляться по 10 минут, что неудобно для пользователей. К тому же для более качественной работы клиенту необходимо получать данные непрерывно.
Изучив способы, позволяющие осуществлять миграцию данных, сейчас команда строит новое DWH и активно тестирует Altinity Sink Connector.