Atualização : lancei um novo projeto, baseball.computer, que foi concebido como o sucessor do boxball. É muito mais fácil de usar (não é necessário Docker, roda inteiramente em seu navegador/programa) e inclui muito mais tabelas, recursos e controles de qualidade. O esquema do evento é diferente, o que será o principal problema da migração. Meu objetivo é continuar a manutenção e atualizações do Boxball enquanto as pessoas ainda o usarem, e posso tentar rebasear o boxball no novo projeto para tornar a manutenção de ambos mais fácil. Por favor, deixe-me saber se há coisas que você pode fazer no Boxball que ainda não pode fazer no baseball.computer registrando um problema no repositório ou entrando em contato comigo pelo e-mail [email protected].
Boxball cria bancos de dados pré-preenchidos dos dois conjuntos de dados de beisebol de código aberto mais importantes: Retrosheet e Baseball Databank. Retrosheet contém informações sobre todos os campos da liga principal desde 2000, todas as jogadas desde 1928, todos os placares desde 1901 e todos os jogos desde 1871. O banco de dados (baseado no banco de dados Lahman) contém resumos anuais de cada jogador e time na história. Além dos próprios dados e bases de dados, o Boxball conta com as seguintes ferramentas:
Siga as instruções abaixo para instalar a distribuição de sua preferência. O conjunto completo de imagens também está disponível no Docker Hub.
O esquema Retrosheet está amplamente documentado no código; veja a fonte aqui até encontrar uma solução mais bonita.
Se você achar o projeto útil, considere fazer uma doação para:
Sinta-se à vontade para entrar em contato comigo com perguntas ou comentários!
Esta distribuição usa a extensão cstore_fdw para transformar o PostgreSQL em um banco de dados orientado a colunas. Isso significa que você obtém o rico conjunto de recursos do Postgres, mas com uma grande melhoria na velocidade e no uso do disco. Para instalar e executar o servidor de banco de dados:
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 uma hora após o download da imagem, os dados serão totalmente carregados no banco de dados e você poderá se conectar a ele como usuário postgres
com senha postgres
na porta 5433
(usando a ferramenta de linha de comando psql
ou um cliente de banco de dados de sua escolha ). Os dados serão mantidos em sua máquina em ~/boxball/postgres-cstore-fdw
(~1,5 GB), o que significa que você pode parar/remover o contêiner sem precisar recarregar os dados ao ligá-lo novamente.
Clickhouse é um banco de dados desenvolvido pela Yandex com alguns benchmarks de desempenho impressionantes. Ele usa menos espaço em disco que o Postgres cstore_fdw, mas significativamente mais RAM (~5 GB). Ainda não executei nenhuma comparação de desempenho de consulta. Para instalar e executar o servidor de banco de dados:
docker run --name clickhouse -d -p 8123:8123 -v ~/boxball/clickhouse:/var/lib/clickhouse doublewick/boxball:clickhouse-latest
15 a 30 minutos após o download da imagem, os dados serão totalmente carregados no banco de dados e você poderá se conectar a ele anexando o contêiner e usando a CLI clickhouse-client
ou usando um cliente de banco de dados local na porta 8123
como o default
do usuário. Os dados serão mantidos em sua máquina em ~/boxball/clickhouse
(~700 MB), o que significa que você pode parar/remover o contêiner sem precisar recarregar os dados ao ligá-lo novamente.
Drill é um framework que permite consultas SQL diretamente em arquivos, sem a necessidade de declarar nenhum esquema. Geralmente é usado em um cluster de computação com conjuntos de dados massivos, mas usamos uma configuração de nó único. Para instalar e executar:
docker run --name drill -id -p 8047:8047 -p 31010:31010 -v ~/boxball/drill:/data doublewick/boxball:drill-latest
Os dados estarão imediatamente disponíveis para consulta após o download da imagem. Use a porta 8047
para acessar a UI da Web (que inclui um executor SQL) e a porta 31010
para conectar-se por meio de um cliente de banco de dados. Você também pode anexar o contêiner e consultar na linha de comando. Os dados serão mantidos em sua máquina em ~/boxball/drill
(~700MB).
Observação: essas estruturas provavelmente serão proibitivamente lentas ao consultar dados passo a passo e ocupam significativamente mais espaço em disco do que suas contrapartes colunares.
Configuração semelhante à versão estendida cstore_fdw acima, mas armazenada da 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 após o download da imagem, os dados serão totalmente carregados no banco de dados e você poderá se conectar a ele como usuário postgres
com senha postgres
na porta 5432
(usando a ferramenta de linha de comando psql
ou um cliente de banco de dados de sua escolha ). Os dados serão mantidos em sua máquina em ~/boxball/postgres
(~12GB), o que significa que você pode parar/remover o contêiner sem precisar recarregar os dados ao ligá-lo novamente.
Para instalar e executar:
docker run --name mysql -d -p 3306:3306 -v ~/boxball/mysql:/var/lib/mysql doublewick/boxball:mysql-latest
Aproximadamente duas horas após o download da imagem, os dados serão totalmente carregados no banco de dados e você poderá se conectar a ele como usuário root
na porta 3306
. Os dados serão mantidos em sua máquina em ~/boxball/mysql
(~12GB), o que significa que você pode parar/remover o contêiner sem precisar recarregar os dados ao ligá-lo novamente.
Para instalar e executar:
docker run --name sqlite -d -p 8080:8080 -v ~/boxball/sqlite:/db doublewick/boxball:sqlite-latest
Aproximadamente dois minutos após o download da imagem, os dados serão totalmente carregados no banco de dados. localhost:8080
fornecerá uma UI web onde você pode escrever consultas e realizar exploração de esquema.
Parquet é um formato de dados colunar desenvolvido originalmente para o ecossistema Hadoop. Possui suporte sólido em Spark, Pandas e muitos outros frameworks. OneDrive
Os CSVs originais da etapa de extração (cada arquivo CSV é compactado no formato ZSTD). OneDrive
O Chadwick Bureau de Ted Turocy desenvolveu as ferramentas e repositórios que tornaram este projeto possível. Também sou grato a Sean Lahman por criar seu banco de dados, que utilizo há mais de 15 anos. Consegui desenvolver e hospedar este projeto gratuitamente graças aos generosos planos de código aberto do Jetbrains, CircleCI, Github e Docker Hub.
Retrosheet representa o esforço coletivo de milhares de fãs de beisebol ao longo de 150 anos de pontuação e entrada de dados. Espero que Boxball facilite mais pesquisas históricas para continuar esta tradição.
Todo o código é lançado sob a licença Apache 2.0. Os dados do Baseball Databank são distribuídos sob a licença CC-SA 4.0. Os dados da Retrosheet são divulgados sob a condição de que o texto abaixo apareça com destaque:
The information used here was obtained free of
charge from and is copyrighted by Retrosheet. Interested
parties may contact Retrosheet at "www.retrosheet.org".