Loading repository data…
Loading repository data…
juanitobanca / repository
ETL pipeline y data warehouse para béisbol profesional. Extrae boxscore, play-by-play y Statcast desde la MLB Stats API y los transforma en métricas avanzadas (wOBA, FIP, RE24, WPA, Park Factors). MLB y ligas latinas (LMB, LMP, LIDOM, LVBP, LBPRC). Python · SqlLite3
Plataforma de datos para analisis de beisbol profesional. Extrae datos de la MLB Stats API, los almacena en una base de datos relacional y los transforma en metricas analiticas avanzadas.
Cubre MLB y multiples ligas latinoamericanas e internacionales (LMB, LMP, LIDOM, LVBP, LBPRC, DSL, VSL, WBC, Serie del Caribe).
El proyecto se divide en dos componentes principales:
scraper/)Pipeline ETL en Python que consume la MLB Stats API para extraer datos de juegos de beisbol. Para cada juego obtiene boxscore, play-by-play (incluyendo datos Statcast), contexto del juego, datos biograficos de jugadores y transacciones.
ThreadPoolExecutorpython scraper/orchestrator.py --lg MLB --startDate 2024_04_01 --endDate 2024_09_30
Ver scraper/README.md para documentacion completa.
database/)Base de datos SQLite con arquitectura de data warehouse por capas. Los datos crudos del scraper aterrizan en staging, se limpian y normalizan en tablas base, y se transforman en metricas agregadas y modelos analiticos.
Staging (datos crudos) → Base (datos limpios) → Agregados y modelos analiticos
Capas analiticas:
Ver database/README.md para documentacion completa.
requests, pandas, sqlalchemy, pydantic-settings, pyyamlcd scraper
pip install .
# 1. Crear las tablas
sqlite3 baseball.db < database/setup/tables.sql
# 2. Scrapear datos
python scraper/orchestrator.py --lg MLB --date 2024_07_15
# 3. Transformar staging → base → agregados
sqlite3 baseball.db < database/setup/procedures.sql
Para descargar directamente la base de datos, accede a este link.