Зачем и как автоматизировать аналитические процессы на геймдев-проектах

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.

Привет! Меня зовут Юлия Ершова, я Team Lead Analytics Department геймдев-проекта Suits из экосистемы Genesis. В этой статье я поделюсь опытом построения автоматизации аналитических процессов в нашей команде. Мне поможет BI-engineer проекта Тимофей Лазарев. Он расскажет, какие именно и как мы используем инструменты, а я расскажу, зачем нам это.

В прошлой статье я рассказывала, что наша компания разрабатывает мобильную игру SuitsMe — это симулятор, точнее «переодевалка» для девушек с модными нарядами от известных брендов и кутюрье. Игра находится в стадии софт-лонч (soft launch), а на глобальный рынок мы планируем выйти в сентябре 2021 года. Игра доступна в Украине для скачивания, поэтому, если вам интересно, можете поиграть.

Зачем нужна автоматизация в аналитике

Давайте разберемся, чем вообще занимается аналитик? Конечно, в современном мире эта область очень широкая, и простое понятие «аналитик» делится на множество составляющих (например, бизнес-аналитик, системный аналитик, BI-аналитик и так далее). Мы рассмотрим классический пример — автоматизацию в работе продуктового аналитика.

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

А сделать это он сможет в том случае, если есть все необходимые источники данных — маркетинговые, продуктовые, а также понимание потребностей бизнеса. Как правило, это довольно много различных подключений и данных с разрозненной структурой, которые вам надо собрать в единую базу.

Но вы же не хотите каждый день добавлять данные вручную, чтобы так же вручную формировать аналитические отчеты или проверять свои гипотезы? Объем данных будет неумолимо расти, и такой «ручной» труд будет замедлять их сбор, обработку и процесс принятия решений о работе продукта.

Итак, для чего нужна автоматизация аналитических процессов?

  • значительное ускорение процесса загрузки и обработки больших объемов данных;
  • мониторинг всего дата-флоу и своевременное реагирование на ошибки;
  • регулярное обновление аналитических отчетов и рассылка их по email (также возможна гибкая настройка отправки отчетов: регулярно, нерегулярно или по триггеру);
  • отсутствие необходимости «держать все в голове» — ваши данные в полном объеме в строго обозначенное время будут находиться у вас в базе, а отчеты будут отправлены;
  • вы начнете располагать достаточным количеством времени для того, чтобы заниматься непосредственными обязанностями аналитика и повысите свою продуктивность.

Как я уже рассказывала в предыдущей статье, на нашем проекте используются такие инструменты для автоматизации дата-флоу:

  • AirFlow — для автоматизированного сбора данных;
  • Google Storage — для хранения «сырых» данных;
  • Google Bigquery — для аналитики и работы с данными, создания моделей данных;
  • Tableau — для визуализации данных.

Техническое решение

Перед выбором стека технологий и непосредственно реализацией необходимо понять, какие источники будут использоваться, как будет двигаться и развиваться проект хотя бы в краткосрочной перспективе. В нашем случае это несколько источников данных, используемых на проекте, также есть roadmap на ближайшие три месяца.

Какие источники данных мы используем:

  1. Amplitude — сервис для приема и хранения данных об игровых событиях проекта (стандартные и настраиваемые), также для нас этот сервис сейчас используется как data warehouse.
  2. AppsFlyer — сервис аналитики и атрибуции рекламных (маркетинговых) площадок.
  3. База данных проекта хранит игровые метрики.
  4. Маркетинговые платформы — сервисы для закупки трафика и монетизации приложения, отсюда нам понадобятся данные о затраченных деньгах на привлечение пользователей и заработанных деньгах на монетизации приложения. Например, Facebook, Google Ads, Snapchat, TikTok и так далее.

Business Intelligence-система должна быть надежной, легко масштабируемой и способной быстро обрабатывать большие объемы данных. Мы выбрали такой стек технологий:

  1. Google Cloud Storage — облачный сервис Google для хранения и использования файлов в рамках инфраструктуры Google Cloud Platform.
  2. Google BigQuery — serverless data warehouse в рамках инфраструктуры Google Cloud Platform.
  3. Apache Airflow — open-source оркестратор, написанный на Python, имеет много возможностей прямо «из коробки», а также большой арсенал уже готовых решений от комьюнити.
  4. Tableau — мощный инструмент для визуализации аналитики, построения графиков и отчетов.

Далее более подробно расскажем о каждом из инструментов и о том, какую роль он выполняет в BI-окружении.

Ключевой элемент системы — Apache Airflow. Это оркестратор выполнения процессов, которые описаны на Python и представляют собой ориентированный ациклический граф (в терминологии: DAG — directed acyclic graph), где каждая вершина графа — это отдельная задача (task). Вот пример процесса в виде графа:

Основные преимущества Apache Airflow:

  • Open-source, а значит бесплатно!
  • Простая в понимании и достаточно полная официальная документация — можно найти ответы почти на все вопросы, которые могут возникнуть во время освоения.
  • После установки получаем в руки оркестратор уже с визуализацией процессов, мониторингом, возможностью установки retries, большим количеством готовых решений от партнеров и комьюнити (airflow-providers). Например, есть интерфейсы взаимодействия с облачными сервисами Google, такими как BigQueryExecuteQueryOperator, GCSToBigQueryOperator, их мы будем использовать довольно часто.
  • Docker image актуальной версии «из коробки», который можно настроить под свои нужды несколькими способами: 1) использовать образ напрямую из репозитория проекта с добавлением своих зависимостей; 2) собрать свой образ; 3) Airflow Breeze.

Задача Airflow — быть «связующим звеном» между всеми процессами и отвечать за доставку данных вовремя. В нашей системе потребуются процессы экстракта данных из всех источников, использующихся для аналитики (Amplitude, AppsFlyer, marketing platforms, project db).

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

Поскольку в Airflow есть готовый инструмент взаимодействия с Tableau, то можно настроить extract сразу по готовности данных, затем загружать обновленный Tableau Workbook и делать рассылку готовых отчетов пользователям на почту.

Так мы получаем полностью автоматизированный цикл: от загрузки сырых данных до доставки свежих отчетов заинтересованным пользователям.

Google Cloud Storage (GCS) будем использовать как хранилище данных для трансфера между источником и Google BigQuery. Также GCS будет использоваться как хранилище для бэкапа данных.

Google BigQuery выполняет роль data warehouse в нашем BI-окружении. Сюда будут стекаться данные из всех источников в сыром виде, здесь же они будут обрабатываться и агрегироваться для приведения их в аналитический вид.

Необходимо помнить, что BigQuery тарифицирует запросы по количеству обработанных данных, поэтому таблицы следует хранить партиционированными по времени, а запросы стоит оптимизировать под количество данных, которые будут им обработаны.

У Google Cloud есть программа для начинающих, которая дарит $300 для тестов на первое время (корпоративным клиентам — на три месяца, обычным пользователям — на год). Также установлены Free Tier лимиты, благодаря которым можно пользоваться сервисом бесплатно, вплоть до определенного уровня. Ниже приведены Free Tier лимиты.

Google Cloud Storage:

  • до 5 GB в месяц в региональном хранилище (регион хранения — США);
  • до 5000 операций класса А (запись объектов в хранилище) в месяц;
  • до 50 000 операций класса В (обращения к объектам внутри хранилища) в месяц;
  • до 1 GB исходящего трафика в месяц из Северной Америки на все направления (кроме Китая и Австралии).

Google BigQuery:

  • до 1 TB обрабатываемого объема данных в месяц;
  • до 10 GB хранилища в месяц.

Как бы то ни было, Free Tier — полезная вещь. Пока у проекта небольшие объемы данных, все окружение выходит условно бесплатным. За три месяца использования сервисов Google Cloud мы потратили примерно $0,5 (!) и погасили их подаренными платформой $300.

После использования всего объема бесплатного трафика начинается тарификация по ценам, указанным в прайсах на ресурсе провайдера: Google BigQuery, Google Cloud Storage.

И последнее звено в BI-системе — это Tableau, где происходит магия визуализации аналитических данных и построение отчетов для конечных пользователей.

Выводы

Как видите, на старте проекта удобно, если в вашей команде есть специалисты с четким пониманием, что они делают, и представлением, как технически будет масштабироваться проект. На ранних этапах они подготовят основу для такого масштабирования в отделе аналитики.

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

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

Скорее всего, наше техническое решение не является идеальным, но оно может вас натолкнуть на решение вашей задачи.

Спасибо за внимание. Вы всегда можете связаться с нами по email: yuliia.makeieva@gen.tech, tymofii.lazariev@gen.tech, или пишите в комментариях.

👍НравитсяПонравилось8
В избранноеВ избранном4
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Корисна стаття, дякую 🙌

Интересно, спасибо.
Осталось нейронку натренировать выводы делать и дергать кого-то когда все вниз пошло;)

об этом я расскажу чуть позже, когда сама разберусь )))

интересная статья, спасибо!

Подписаться на комментарии