- Дипанкар Саркар: Технолог и предприниматель/
- Мои сочинения/
- Создание масштабируемого конвейера данных для Momspresso: расширение возможностей персонализации контента/
Создание масштабируемого конвейера данных для Momspresso: расширение возможностей персонализации контента
Содержание
В постоянно развивающемся цифровом ландшафте контентным платформам, таким как Momspresso, необходима надежная инфраструктура данных для предоставления персонализированного опыта своим пользователям. Сегодня я рад поделиться информацией о масштабируемом конвейере данных, который мы создали для Momspresso, обеспечивающем их аналитику и системы рекомендаций.
Задача #
Momspresso нуждалась в системе, которая могла бы:
- Фиксировать пользовательские события в реальном времени
- Эффективно обрабатывать и хранить большие объемы данных
- Обеспечивать быстрый анализ и визуализацию поведения пользователей
- Поддерживать механизм рекомендаций для персонализированной доставки контента
Наше решение: комплексный конвейер данных #
Мы разработали многокомпонентный конвейер данных, который отвечает этим потребностям:
1. Python Events SDK #
Мы разработали простой класс Python, который можно интегрировать в кодовую базу Momspresso. Этот SDK позволяет системе отправлять события без написания базового кода, что упрощает разработчикам отслеживание взаимодействий пользователей.
2. Веб-сервис событий #
Этот сервис получает события от SDK и отправляет их в Kafka после небольшой проверки. Он действует как точка входа для всех данных о взаимодействии пользователей.
3. Apache Kafka #
Мы выбрали Kafka в качестве нашей системы обмена сообщениями и публикации/подписки из-за ее высокой пропускной способности и отказоустойчивой конструкции. В настоящее время работает на одной машине, готова к масштабированию по мере роста Momspresso.
4. Система сбора данных #
Этот компонент прослушивает все события из Kafka и вставляет их в базу данных PostgreSQL. Используя возможности JSON в Postgres, мы создали гибкий и запрашиваемый набор данных.
5. Хранилище событий PostgreSQL #
Наше основное хранилище данных для всех событий. Мы реализовали систему ежемесячного архивирования для эффективного управления хранением.
6. Grafana для аналитики в реальном времени #
Подключенная к нашему хранилищу событий, Grafana позволяет Momspresso графически отображать запросы в реальном времени, отслеживать использование функций, контролировать эффективность конверсии и обнаруживать аномалии.
7. Система представления данных #
Этот компонент выполняет ряд эвристик и моделей для определения атрибутов пользователя, обновляя отдельную базу данных представлений пользователей.
8. База данных представлений данных PostgreSQL #
Эта база данных хранит обработанные представления пользователей, обеспечивая быстрый доступ к производным данным пользователей.
9. Metabase для панелей мониторинга #
Используя базу данных представлений данных, Metabase позволяет Momspresso создавать пользовательские панели мониторинга и отчеты с помощью SQL-запросов.
10. Веб-сервис уникального отпечатка пользователя #
Умный сервис пикселя 1x1, который назначает уникальную подпись в куки для каждого пользователя, позволяя нам отслеживать пользователей между сессиями.
Мощь этого конвейера #
Этот конвейер данных расширяет возможности Momspresso несколькими способами:
- Аналитика в реальном времени: Momspresso теперь может отслеживать поведение пользователей и эффективность контента в реальном времени.
- Персонализация: Структурированные данные пользователей позволяют использовать сложные алгоритмы рекомендации контента.
- Гибкий анализ: С данными, хранящимися в запрашиваемых форматах, Momspresso может легко выполнять специальный анализ.
- Масштабируемость: Модульная конструкция позволяет масштабировать или заменять отдельные компоненты по мере необходимости.
Взгляд в будущее #
По мере роста Momspresso этот конвейер данных будет играть решающую роль в понимании поведения пользователей и предоставлении персонализированного опыта. Мы с нетерпением ждем, как Momspresso будет использовать эту инфраструктуру для улучшения своей платформы и более эффективного взаимодействия со своим сообществом.
Следите за нашим следующим постом, где мы углубимся в систему рекомендаций, построенную на основе этого конвейера данных!