Аналитический проект, в котором реализован полный ETL-пайплайн для сбора, обработки и анализа данных матчей League of Legends с использованием Riot API.
Проект включает:
- сбор данных о матчах и игроках
- трансформацию в аналитические таблицы
- загрузку в PostgreSQL
- построение витрин (SQL views) для BI-инструментов
- подготовку данных для визуализации (DataLens)
Проект построен по классической схеме:
EXTRACT → TRANSFORM → LOAD → MART (SQL views) → DASHBOARD
lol_etl/
│
├── etl/
│ ├── extract.py # загрузка данных из API
│ ├── transform.py # преобразование в таблицы
│ ├── load.py # загрузка в CSV и PostgreSQL
│ ├── logger_config.py # настройка логирования
│
├── sql/
│ ├── views.sql # SQL-витрины (mart слой)
│ ├── analysis.sql # аналитические запросы
│
├── config.py # конфигурация проекта
├── main.py # точка входа (ETL pipeline)
├── requirements.txt # зависимости
│
├── data/ # (опционально) локальные данные
├── README.md
│
├── dashboard/ # (опционально) локальные данные
├── View.sql
├── ссылка.doc
- Python (pandas, requests)
- PostgreSQL
- SQL (views / marts)
- Yandex DataLens
- Riot Games API
- Получение топ-игроков (Challenger)
- Загрузка матчей по puuid
- Получение данных о предметах
Формируются таблицы:
players— список игроковmatches— информация о матчахparticipants— игроки в матчах (основная таблица)match_items— предметы игроковitems— справочник предметов
- Сохранение в CSV
- Загрузка в PostgreSQL
Созданы витрины:
mart_champion_statsmart_role_statsmart_economy_statsmart_item_statsmart_item_championmart_object_impactmart_vision_statsmart_cs_impact
📌 Важно: Витрины не соединяются между собой напрямую — используются отдельно в BI.
Проект позволяет анализировать:
- винрейт чемпионов
- влияние фарма (CS)
- экономику (gold)
- использование предметов
- роль игрока
- влияние объектов (драконы, башни)
- vision-контроль
python main.py --players 60 --matches 40 --save-csv yes --save-db yesПараметры:
--players— количество игроков--matches— матчей на игрока--save-csv— сохранять ли в CSV--save-db— сохранять ли в БД
В процессе разработки изучается:
- скрытие API ключей
- работа с
.env - исключение паролей из репозитория
📌 Рекомендации:
- не хранить пароли в коде
- использовать переменные окружения
- добавить
.envв.gitignore
На текущий момент:
- загружается ограниченное количество игроков и матчей
- данные могут быть недостаточны для глубокой аналитики
🔄 В работе:
- увеличение объема данных
- оптимизация загрузки
- переход к инкрементальной загрузке
- инкрементальный ETL (без дубликатов)
- автоматическое обновление данных
- расширение витрин
- добавление ML-анализа
- деплой в облако
Данные будут использованы в DataLens для построения дашборда:
https://datalens.yandex/h3o7i2hf74pc0 ссылка на дашборд (в разработке)
- топ чемпионов по винрейту
- распределение метрик
- анализ ролей
- зависимость KDA
Никитина Полина Владимировна Фокус на:
- SQL
- ETL
- построение аналитических моделей
- визуализация данных
Проект демонстрирует:
- полный цикл работы с данными
- понимание архитектуры аналитики
- умение строить витрины и дашборды
- работу с API и базами данных