Dota Science

Este projeto nasceu a partir da vontade de nossa comunidade (Téo Me Why) em unir a área de dados e games. Assim, estamos desenvolvendo uma maneira de coletar, armazenar, organizar e analisar dados de partidas de Dota2.

A API que consultamos para ingestões de dados é a www.opendota.com, em que os end-points são disponibilizados de forma gratuita com uma limitação mensal de requisições.

Importante: Todos comandos executados apresentados neste arquivo são executados a partir da pasta raiz do projeto.

Sinta-se livre para contribuir, compartilhar e divulgar este material de forma gratuíta, mas ressaltamos a proibição da comercialização deste material, sob a licença Creative Commons BY-NC-SA 3.0 BR.

Requisitos

  • Docker & Docker Compose
  • Python
  • Anaconda

Instalação

git clone https://github.com/TeoCalvo/DotaScience.git <nome_da_pasta>
cd <nome_da_pasta>

Uso

Preparação do ambiente

  1. Subindo nosso banco de dados com docker
docker-compose up -d
  1. Criando novo ambiente Python
conda create --name dota-env python=3.
  1. Ativando ambiente python
conda activate dota-env
  1. Instalando dependências
pip install -r requirements.txt

Obtendo lista das partidas históricas (profissionais)

Importante:todos os comandos são executados dentro do container do serviço do Python.

Ao rodar pela primeira vez, use o argumento '--how newest' , coletando assim as partidas mais recentes.

python /root/dotaScience/hook/get_match_history.py --how newest

Caso o processo seja interrompidoo, é necessário dar inicio a partir da última partida coletada:

python /root/dotaScience/hook/get_match_history.py --how oldest

Obtendo detalhes das partidas coletadas

python /root/dotaScience/hook/get_match_details.py

Migrando dados do MongoDB para Apache Spark

Carga Raw Incremental

python /root/dotaScience/magic_wand/mongo_to_spark.py

Carga Proceed Full

python /root/dotaScience/magic_wand/match_player_raw_proceded.py

Book de Variáveis

Criação do Book

python dotaScience/echo_slam/exec.py --date "2020-01-01" --create

Rodadas Incrementais

python dotaScience/echo_slam/exec.py --date "2020-01-02" --date_end "2021-03-25"