업데이트 : Boxball의 후속작으로 디자인된 새로운 프로젝트인 Baseball.computer를 출시했습니다. 사용하기가 훨씬 쉽고(Docker가 필요하지 않으며 브라우저/프로그램에서 완전히 실행됨) 더 많은 테이블, 기능 및 품질 관리가 포함되어 있습니다. 이벤트 스키마가 다르기 때문에 마이그레이션의 주요 문제점이 됩니다. 나는 사람들이 계속 Boxball을 사용하는 한 Boxball 유지 관리 및 업데이트를 계속하는 것을 목표로 하며, 유지 관리를 더 쉽게 만들기 위해 새 프로젝트 위에 Boxball을 리베이스하려고 노력할 수도 있습니다. 아직 야구.컴퓨터에서는 할 수 없지만 Boxball에서는 할 수 있는 일이 있다면 저장소에 문제를 제출하거나 [email protected]로 연락하여 알려주시기 바랍니다.
Boxball은 가장 중요한 두 가지 오픈 소스 야구 데이터세트인 Retrosheet와 Baseball Databank로 구성된 데이터베이스를 생성합니다. 레트로시트에는 2000년 이후의 모든 메이저 리그 투구, 1928년 이후의 모든 플레이, 1901년 이후의 모든 박스 스코어, 1871년 이후의 모든 게임에 대한 정보가 포함되어 있습니다. 데이터뱅크(Lahman 데이터베이스 기반)에는 역사상 모든 선수와 팀에 대한 연간 요약이 포함되어 있습니다. 데이터 및 데이터베이스 자체 외에도 Boxball은 다음 도구를 사용합니다.
선택한 배포판을 설치하려면 아래 지침을 따르십시오. 전체 이미지 세트는 Docker Hub에서도 사용할 수 있습니다.
Retrosheet 스키마는 코드에 광범위하게 문서화되어 있습니다. 더 좋은 해결책을 찾을 때까지 여기에서 소스를 확인하세요.
프로젝트가 유용하다고 생각되면 다음 주소에 기부해 보세요.
질문이나 의견이 있으면 언제든지 저에게 연락해주세요!
이 배포판은 cstore_fdw 확장을 사용하여 PostgreSQL을 열 기반 데이터베이스로 전환합니다. 이는 Postgres의 풍부한 기능 세트를 얻을 수 있으면서도 속도와 디스크 사용량이 크게 향상되었음을 의미합니다. 데이터베이스 서버를 설치하고 실행하려면 다음을 수행하십시오.
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
이미지가 다운로드되고 약 한 시간 후에 데이터가 데이터베이스에 완전히 로드되고 포트 5433
에서 비밀번호 postgres
사용하여 postgres
사용자로 연결할 수 있습니다( psql
명령줄 도구 또는 선택한 데이터베이스 클라이언트 사용). ). 데이터는 머신의 ~/boxball/postgres-cstore-fdw
(~1.5GB)에 유지됩니다. 즉, 컨테이너를 다시 켤 때 데이터를 다시 로드할 필요 없이 컨테이너를 중지/제거할 수 있습니다.
Clickhouse는 매우 인상적인 성능 벤치마크를 바탕으로 Yandex에서 개발한 데이터베이스입니다. Postgres cstore_fdw보다 적은 디스크 공간을 사용하지만 훨씬 더 많은 RAM(~5GB)을 사용합니다. 아직 쿼리 성능 비교를 실행해 본 적이 없습니다. 데이터베이스 서버를 설치하고 실행하려면 다음을 수행하십시오.
docker run --name clickhouse -d -p 8123:8123 -v ~/boxball/clickhouse:/var/lib/clickhouse doublewick/boxball:clickhouse-latest
이미지가 다운로드되고 15~30분 후에 데이터가 데이터베이스에 완전히 로드되며, 컨테이너를 연결하고 clickhouse-client
CLI를 사용하거나 포트 8123
의 로컬 데이터베이스 클라이언트를 포트로 사용하여 이미지에 연결할 수 있습니다. 사용자 default
. 데이터는 컴퓨터의 ~/boxball/clickhouse
(~700MB)에 유지됩니다. 즉, 컨테이너를 다시 켤 때 데이터를 다시 로드할 필요 없이 컨테이너를 중지/제거할 수 있습니다.
Drill은 스키마를 선언할 필요 없이 파일에서 직접 SQL 쿼리를 허용하는 프레임워크입니다. 일반적으로 대규모 데이터 세트가 있는 컴퓨팅 클러스터에서 사용되지만 우리는 단일 노드 설정을 사용합니다. 설치하고 실행하려면:
docker run --name drill -id -p 8047:8047 -p 31010:31010 -v ~/boxball/drill:/data doublewick/boxball:drill-latest
이미지가 다운로드된 후 데이터를 즉시 쿼리할 수 있습니다. 웹 UI(SQL Runner 포함)에 액세스하려면 포트 8047
사용하고, 데이터베이스 클라이언트를 통해 연결하려면 포트 31010
사용하세요. 명령줄에서 컨테이너와 쿼리를 연결할 수도 있습니다. 데이터는 컴퓨터의 ~/boxball/drill
(~700MB)에 유지됩니다.
참고: 이러한 프레임워크는 실황 데이터를 쿼리할 때 엄청나게 느릴 수 있으며 열 형식 프레임워크보다 훨씬 더 많은 디스크 공간을 차지합니다.
위의 cstore_fdw 확장 버전과 구성이 비슷하지만 기존 방식으로 저장됩니다.
docker run --name postgres -d -p 5432:5432 -e POSTGRES_PASSWORD="postgres" -v ~/boxball/postgres:/var/lib/postgresql/data doublewick/boxball:postgres-latest
이미지가 다운로드되고 약 90분이 지나면 데이터가 데이터베이스에 완전히 로드되고 포트 5432
에서 비밀번호 postgres
사용하여 postgres
사용자로 연결할 수 있습니다( psql
명령줄 도구 또는 선택한 데이터베이스 클라이언트 사용). ). 데이터는 컴퓨터의 ~/boxball/postgres
(~12GB)에 유지됩니다. 즉, 컨테이너를 다시 켤 때 데이터를 다시 로드할 필요 없이 컨테이너를 중지/제거할 수 있습니다.
설치하고 실행하려면:
docker run --name mysql -d -p 3306:3306 -v ~/boxball/mysql:/var/lib/mysql doublewick/boxball:mysql-latest
이미지가 다운로드되고 약 2시간 후에 데이터가 데이터베이스에 완전히 로드되며 포트 3306
에서 사용자 root
로 연결할 수 있습니다. 데이터는 컴퓨터의 ~/boxball/mysql
(~12GB)에 유지됩니다. 즉, 컨테이너를 다시 켤 때 데이터를 다시 로드할 필요 없이 컨테이너를 중지/제거할 수 있습니다.
설치하고 실행하려면:
docker run --name sqlite -d -p 8080:8080 -v ~/boxball/sqlite:/db doublewick/boxball:sqlite-latest
이미지가 다운로드되고 약 2분 후에 데이터가 데이터베이스에 완전히 로드됩니다. localhost:8080
쿼리를 작성하고 스키마 탐색을 수행할 수 있는 웹 UI를 제공합니다.
Parquet은 원래 Hadoop 생태계용으로 개발된 열 형식의 데이터 형식입니다. Spark, Pandas 및 기타 여러 프레임워크에서 견고한 지원을 제공합니다. 원드라이브
추출 단계의 원본 CSV(각 CSV 파일은 ZSTD 형식으로 압축됨) 원드라이브
Ted Turocy의 Chadwick Bureau는 이 프로젝트를 가능하게 한 도구와 저장소를 개발했습니다. 또한 제가 15년 넘게 사용해 온 데이터베이스를 만들어 준 Sean Lahman에게도 감사드립니다. Jetbrains, CircleCI, Github, Docker Hub의 넉넉한 오픈소스 계획 덕분에 이 프로젝트를 무료로 개발하고 호스팅할 수 있었습니다.
레트로시트(Retrosheet)는 150년 동안 점수 기록과 데이터 입력을 이어온 수천 명의 야구팬들의 공동 노력을 나타냅니다. Boxball이 이러한 전통을 이어가기 위해 더 많은 역사적 연구를 촉진하기를 바랍니다.
모든 코드는 Apache 2.0 라이센스에 따라 릴리스됩니다. 야구 데이터뱅크 데이터는 CC-SA 4.0 라이센스에 따라 배포됩니다. 레트로시트 데이터는 아래 텍스트가 눈에 띄게 나타나는 조건으로 공개됩니다.
The information used here was obtained free of
charge from and is copyrighted by Retrosheet. Interested
parties may contact Retrosheet at "www.retrosheet.org".