Обратный звонок
главнаякейсыИнтегрированная платформа рейтингов потребительских товаров

Интегрированная платформа рейтингов потребительских товаров

DevopsФронтенд
Предоставление пользователям товарных рейтингов на основании интегрированных данных по клиентским отзывам и продажам

каков бизнес заказчика?

Клиент собирает рейтинги и обзоры товаров из разных стран

Собирает данные о транзакциях конечных пользователей от Carrefour (одного из крупнейших ритейлеров в мире)

Собирает данные о продуктах, рейтингах и обзорах из 5 источников

Строит отчеты для своих клиентов и партнеров на основе собранных данных

что мы сделали

Хранение данных

Data Warehouse, предназначенное для бизнес-анализа по продуктам, брендам и т.д.;

Возможность ответить на такие вопросы, как «Насколько продукт А интересен пользователям по сравнению с аналогичными продуктами других брендов».

Работа с данными

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

Конвейеры

Для преобразования (объединения, фильтрации) данных из исходного файла Parquet в файл Parquet для внешних клиентов.

Конвейер

Для сбора данных из внешних файлов BigQuery в файлы Parquet.

Конвейер

Для преобразования данных из файлов BSON в файлы JSON.

5 конвейеров ETL

Для преобразования данных из файлов (Parquet, JSON) в таблицы BigQuery.

Оркестрация для всех пайплайнов.

CI/CD (Terraform + Jenkins)

Документация в Confluence.

почему это интересно?

Это чистый бессерверный ETL, построенный на облачной платформе Google.

Это позволило команде Smart up глубоко узнать облачную платформу Google.

Команда обнаружила варианты использования и ограничения различных компонентов Google Cloud Platform, таких как Cloud Function или Cloud Run.

Terraform использовался для настройки и запуска компонентов Google Cloud Platform.

какие наиболее серьезные трудности мы преодолели?

Проблема

выбрать правильную технологию для каждого компонента. Cloud Function масштабируема, но имеет строгие ограничения по времени выполнения. Dataflow является масштабируемым и может работать в течение длительного времени, но его трудно реализовать так, чтобы его можно было распараллелить и получить результат с одним значением, и он не может быть запущен из exent. Приложения Cloud Run могут быть запущены PubSub и могут работать в течение длительного времени, но могут быть остановлены GCP, если никто не ждет результата выполнения.

Решение

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

Проблема

дополнить хранилище данных (набор таблиц BigQuery) свежими результатами работы конвейеров ETL, в стиле Green-Blue.

Решение

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

Проблема

сэкономить бюджет Google Composer (этот компонент стоит дорого по сравнению с другими).

Решение

мы применили расписание для Composer, потому что оно не требовалось 24 часа в сутки. Но, поскольку нет функции остановки/запуска Composer, мы реализовали запланированные задания для создания Composer, восстановления его состояния (набор сценариев, выполняющих оркестровку конвейера), а затем его уничтожения. Сценарии развертывания также были обновлены для поддержки наличия/отсутствия Composer.

Наш стек технологий

Java 11
Apache Airflow (as part of Composer)
Python (Airflow scripting language)
Jenkins
Docker
Terraform
Storage
Cloud Function
Composer
Dataflow
Cloud Run
Cloud Scheduler
BigQuery

результат

Хранилище данных (Data Warehouse), предназначенное для бизнес-анализа по продуктам, брендам и т.д.; возможность ответить на такие вопросы, как «Насколько продукт А интересен пользователям по сравнению с аналогичными продуктами других брендов»

Аналитическая группа Заказчика имеет Хранилище данных (таблицы BigQuery), которое ежедневно обновляется из разных источников данных.

У команды разработчиков Заказчика есть код, задокументированный в комментариях и на страницах Confluence, покрытый тестами и CI/CD для его развертывания.

Отправь заявку

подписаться на нашу рассылку

Сообщение отправлено
заполнить еще раз

позвоните мне