Интерактивная аналитика больших данных — одно из самых востребованных и коммерциализированных приложений для технологий Big Data. В этой статье мы рассмотрим, как крупный британский ритейлер запустил цифровую трансформацию своей ИТ-архитектуры, уходя от традиционного DWH с пакетной обработкой к событийно-стриминговой облачной платформе на базе Apache Kafka и Snowflake.
Зачем модному ритейлеру Apache Kafka: постановка задачи с точки зрения бизнеса
Компания Boden – это британский ритейлер одежды, основанный в 1991 году. Продажи идут онлайн и по каталогам. Впервые сайт компании boden.com был запущен еще в 1999 году и постоянно развивался. Однако, сегодня, когда шопинг и многие другие активности переходят в интернет, ритейл должен реагировать на запросы пользователей в режиме реального времени. Например, быстро реагировать на возросший интерес и всплеск спроса, вызванный появлением знаменитости в одежде бренда. Поэтому Boden начал собственный путь цифровой трансформации с потоковой передачей событий и Apache Kafka, перезапуская существующие монолиты с пакетной обработкой.
С учетом многоканального подхода, когда запросы от пользователей могут приходить с разных сторон, было решено разработать новую ИТ-архитектуру на микросервисах и потоковой передаче событий, что удовлетворить две насущные потребности [1]:
- интеграция множества существующих систем и сервисов через единую платформу вместо двухточечных связок;
- повышение скорости обработки данных – традиционные отчеты о продажах, ориентированные на классические DWH c пакетными ETL-процессами, которые запускаются ночью, стали слишком медленными. Аналитики и маркетологи должны видеть, что происходит в сети прямо сейчас, а не завтра утром.
Примечательно, что Boden решил не управлять Kafka самостоятельно на базе собственной ИТ-инфраструктуры, а воспользоваться облачным сервисом, таким как Confluent Cloud. Это решение от разработчиков Apache Kafka, включает полностью управляемые компоненты данной стриминговой платформы, в т.ч. реестр схем, более 100 коннекторов и ksqlDB, предоставляя пользователю всю мощь потоковой обработки событий в реальном времени без накладных затрат на операции развертывания и сопровождения [2].
Облачные технологии интерактивной аналитики больших данных: внедрение и результаты использования
Переход на Confluent Cloud позволил Boden сосредоточиться на интеграции микросервисов без их связывания, разделяя основные системы, содержащие несколько доменов данных, от сторонних. Это ускорило циклы разработки и реализовало ИТ-архитектуру, управляемую событиям. Такое решение дает возможность непосредственного подключения к платформе данных, не беспокоясь о сложности базовой инфраструктуры и способах ее масштабирования. В качестве первого проекта проверки концепции была создана служба розничных складских запасов для предоставления актуальных данных с учетом изменения из-за онлайн-заказов и покупок в магазине.
Также в качестве пилотного проекта был выбран сервис управления информацией о продукте, чтобы данные из него, были доступны для других систем, таких как веб-сайт или каналы продаж на рынке, как можно быстрее. Компании нужен был способ представить изменения в данных о продуктах как событие, которое может использоваться другими сервисами без двухточечной интеграции. Apache Kafka как платформа потоковой обработки событий отлично позволяет сделать это, сохраняя информацию о событиях в виде сообщений в своих топиках. Таким образом, любая система может получить информацию о продукте почти в реальном времени, подписавшись на нужный топик с событиями. А наличие реестра схем (Schema Registry), гарантирует прямую и обратную совместимость с поддержкой версий структуры данных. В результате аналитики Boden могут постоянно настраивать и улучшать атрибуты продажи продуктов и очень быстро показывать эти изменения пользователям по различным каналам. Например, если модные селебрити носят одежду бренда, это быстро выделяется и показывается на сайте интернет-магазина, чтобы клиенты могли сразу найти этот продукт [1].
Разумеется, цифровая трансформация Boden в технологическом плане основана не только на Apache Kafka. Также было внедрено облачное хранилище аналитических данных Snowflake, которое не использует существующие СУБД или Big Data платформы типа Hadoop. В Snowflake используется новый механизм SQL с уникальной SaaS-архитектурой, которая объединяет традиционную СУБД с общим диском и базу данных без совместного использования. Как и в случае архитектуры с общими дисками, Snowflake использует центральное хранилище для постоянных данных, доступное со всех вычислительных узлов. При этом, подобно архитектуре без совместного использования, Snowflake обрабатывает запросы, используя вычислительные кластеры массивно-параллельной обработка (MPP), где каждый узел хранит часть всего набора данных локально. Этот подход обеспечивает простоту управления данными в архитектуре с общим диском, но с преимуществами производительности и масштабирования от архитектуры без разделения ресурсов [3].
Snowflake и Apache Kafka используются Boden совместно, чтобы обеспечить возможность интерактивной аналитики больших данных за счет доступа к ним почти в реальном времени, включая как крупные датасеты, так и быстро изменяющиеся и часто возникающие наборы данных, такие как веб-клики. Непрерывный поток кликов и KSQL-DB используются для агрегирования и организации необработанных данных с веб-сайта и передачи их на платформу Snowflake, которая затем сопоставляется с традиционными данными бизнес-аналитики. Это применяется для анализа веб-сеансов в сравнении с заказами и предоставления бизнес-аналитикам доступа к данным о пользователях, таких как уходы и предпочтения при покупке. Общая доступность всех этих сведений позволяет анализировать больше данных по мере их появления, агрегировать и улучшать их по мере поступления, повышая качество работы с клиентами.
Успешный опыт тестирования и промышленной эксплуатации новой парадигмы на базе облачных платформ Apache Kafka и Snowflake стал драйвером дальнейшей цифровизации компании Boden. Ритейлер продолжает создавать новые корпоративные стандарты для своих бизнес-событий и шаблонов архитектуры доменных служб, включая сервисы агрегации, которые могут потреблять несколько событий домена и предоставлять агрегированные представления данных (например, продукт, цена, изображение и запасы на складе) для внешних систем и сторонних сайтов [1]. Завтра мы продолжим разговор про Apache Kafka и разберем, какие Python-клиенты существуют для этой Big Data платформы потоковой обработки событий и чем они отличаются друг от друга. А о другом кейсе практического использования Confluent Cloud читайте в нашей новой статье про CDC-репликацию данных с помощью Kafka и Debezium.
Узнайте больше практических примеров по администрированию, разработке и эксплуатации Apache Kafka для потоковой аналитики больших данных в проектах цифровизации частного бизнеса, а также государственных и муниципальных предприятий, вы узнаете на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
- Аналитика больших данных для руководителей
- Apache Kafka для разработчиков
- Администрирование кластера Kafka
Источники
- https://www.confluent.io/blog/digital-transformation-in-retail-using-kafka/
- https://www.confluent.io/confluent-cloud/
- https://ru.bmstu.wiki/Snowflake