Actualización : He lanzado un nuevo proyecto, baseball.computer, que está diseñado como el sucesor del boxball. Es mucho más fácil de usar (no se requiere Docker, se ejecuta completamente en su navegador/programa) e incluye muchas más tablas, funciones y controles de calidad. El esquema del evento es diferente, lo que será el principal problema de la migración. Mi objetivo es continuar con el mantenimiento y las actualizaciones de Boxball mientras la gente todavía lo use, y puedo intentar cambiar la base de Boxball sobre el nuevo proyecto para facilitar el mantenimiento de ambos. Avíseme si hay cosas que puede hacer en Boxball que aún no puede hacer en baseball.computer presentando un problema en el repositorio o comunicándose conmigo a [email protected].
Boxball crea bases de datos precargadas de los dos conjuntos de datos de béisbol de código abierto más importantes: Retrosheet y Baseball Databank. Retrosheet contiene información sobre cada lanzamiento de las grandes ligas desde 2000, cada jugada desde 1928, cada resultado desde 1901 y cada juego desde 1871. El banco de datos (basado en la base de datos Lahman) contiene resúmenes anuales de cada jugador y equipo de la historia. Además de los propios datos y bases de datos, Boxball se apoya en las siguientes herramientas:
Siga las instrucciones a continuación para instalar la distribución de su elección. El conjunto completo de imágenes también está disponible en Docker Hub.
El esquema de Retrosheet está ampliamente documentado en el código; Vea la fuente aquí hasta que encuentre una solución más bonita.
Si encuentra útil el proyecto, considere hacer una donación a:
¡No dudes en contactarme si tienes preguntas o comentarios!
Esta distribución utiliza la extensión cstore_fdw para convertir PostgreSQL en una base de datos orientada a columnas. Esto significa que obtienes el rico conjunto de funciones de Postgres, pero con una enorme mejora en la velocidad y el uso del disco. Para instalar y ejecutar el servidor de base de datos:
docker run --name postgres-cstore-fdw -d -p 5433:5432 -e POSTGRES_PASSWORD="postgres" -v ~/boxball/postgres-cstore-fdw:/var/lib/postgresql/data doublewick/boxball:postgres-cstore-fdw-latest
Aproximadamente una hora después de descargar la imagen, los datos se cargarán completamente en la base de datos y podrá conectarse como usuario postgres
con la contraseña postgres
en el puerto 5433
(ya sea usando la herramienta de línea de comandos psql
o un cliente de base de datos de su elección). ). Los datos se conservarán en su máquina en ~/boxball/postgres-cstore-fdw
(~1,5 GB), lo que significa que puede detener/eliminar el contenedor sin tener que volver a cargar los datos cuando lo vuelva a encender.
Clickhouse es una base de datos desarrollada por Yandex con algunos puntos de referencia de rendimiento muy impresionantes. Utiliza menos espacio en disco que Postgres cstore_fdw, pero significativamente más RAM (~5 GB). Todavía tengo que ejecutar comparaciones de rendimiento de consultas. Para instalar y ejecutar el servidor de base de datos:
docker run --name clickhouse -d -p 8123:8123 -v ~/boxball/clickhouse:/var/lib/clickhouse doublewick/boxball:clickhouse-latest
Entre 15 y 30 minutos después de descargar la imagen, los datos se cargarán completamente en la base de datos y podrá conectarse a ella adjuntando el contenedor y usando la CLI clickhouse-client
o usando un cliente de base de datos local en el puerto 8123
como default
del usuario. Los datos se conservarán en su máquina en ~/boxball/clickhouse
(~700 MB), lo que significa que puede detener/eliminar el contenedor sin tener que volver a cargar los datos cuando lo vuelva a encender.
Drill es un marco que permite consultas SQL directamente sobre archivos, sin tener que declarar ningún esquema. Generalmente se usa en un clúster informático con conjuntos de datos masivos, pero usamos una configuración de un solo nodo. Para instalar y ejecutar:
docker run --name drill -id -p 8047:8047 -p 31010:31010 -v ~/boxball/drill:/data doublewick/boxball:drill-latest
Los datos estarán disponibles inmediatamente para consultar después de descargar la imagen. Utilice el puerto 8047
para acceder a la interfaz de usuario web (que incluye un ejecutor SQL) y el puerto 31010
para conectarse a través de un cliente de base de datos. También puede adjuntar el contenedor y realizar la consulta desde la línea de comando. Los datos se conservarán en su máquina en ~/boxball/drill
(~700 MB).
Nota: es probable que estos marcos sean prohibitivamente lentos al consultar datos jugada por jugada y ocupan mucho más espacio en disco que sus contrapartes en columnas.
Configuración similar a la versión extendida cstore_fdw anterior, pero almacenada de forma convencional.
docker run --name postgres -d -p 5432:5432 -e POSTGRES_PASSWORD="postgres" -v ~/boxball/postgres:/var/lib/postgresql/data doublewick/boxball:postgres-latest
Aproximadamente 90 minutos después de descargar la imagen, los datos se cargarán completamente en la base de datos y podrá conectarse como usuario postgres
con la contraseña postgres
en el puerto 5432
(ya sea usando la herramienta de línea de comandos psql
o un cliente de base de datos de su elección). ). Los datos se conservarán en su máquina en ~/boxball/postgres
(~12 GB), lo que significa que puede detener/eliminar el contenedor sin tener que volver a cargar los datos cuando lo vuelva a encender.
Para instalar y ejecutar:
docker run --name mysql -d -p 3306:3306 -v ~/boxball/mysql:/var/lib/mysql doublewick/boxball:mysql-latest
Aproximadamente dos horas después de descargar la imagen, los datos se cargarán completamente en la base de datos y podrá conectarse a ella como usuario root
en el puerto 3306
. Los datos se conservarán en su máquina en ~/boxball/mysql
(~12 GB), lo que significa que puede detener/eliminar el contenedor sin tener que volver a cargar los datos cuando lo vuelva a encender.
Para instalar y ejecutar:
docker run --name sqlite -d -p 8080:8080 -v ~/boxball/sqlite:/db doublewick/boxball:sqlite-latest
Aproximadamente dos minutos después de descargar la imagen, los datos se cargarán completamente en la base de datos. localhost:8080
proporcionará una interfaz de usuario web donde podrá escribir consultas y realizar exploración de esquemas.
Parquet es un formato de datos en columnas desarrollado originalmente para el ecosistema Hadoop. Tiene un sólido soporte en Spark, Pandas y muchos otros marcos. OneDrive
Los CSV originales del paso de extracción (cada archivo CSV está comprimido en formato ZSTD). OneDrive
Chadwick Bureau de Ted Turocy desarrolló las herramientas y repositorios que hicieron posible este proyecto. También agradezco a Sean Lahman por crear su base de datos, que he estado utilizando durante más de 15 años. Pude desarrollar y alojar este proyecto de forma gratuita gracias a los generosos planes de código abierto de Jetbrains, CircleCI, Github y Docker Hub.
Retrosheet representa el esfuerzo colectivo de miles de fanáticos del béisbol durante más de 150 años de registro de puntajes e ingreso de datos. Espero que Boxball facilite más investigaciones históricas para continuar con esta tradición.
Todo el código se publica bajo la licencia Apache 2.0. Los datos de Baseball Databank se distribuyen bajo la licencia CC-SA 4.0. Los datos de Retrosheet se publican bajo la condición de que el siguiente texto aparezca de forma destacada:
The information used here was obtained free of
charge from and is copyrighted by Retrosheet. Interested
parties may contact Retrosheet at "www.retrosheet.org".