Pembaruan : Saya telah merilis proyek baru, baseball.computer, yang dirancang sebagai penerus boxball. Jauh lebih mudah digunakan (tidak memerlukan Docker, berjalan sepenuhnya di browser/program Anda) dan mencakup lebih banyak tabel, fitur, dan kontrol kualitas. Skema kejadiannya berbeda, yang akan menjadi masalah utama migrasi. Saya bertujuan untuk melanjutkan pemeliharaan dan pembaruan Boxball selama orang-orang masih menggunakannya, dan saya mungkin mencoba me-rebase boxball di atas proyek baru untuk membuat pemeliharaan keduanya lebih mudah. Tolong beri tahu saya jika ada hal-hal yang dapat Anda lakukan di Boxball yang belum dapat Anda lakukan di baseball.computer dengan mengajukan masalah di repo atau menghubungi saya di [email protected].
Boxball membuat database yang telah diisi sebelumnya dari dua kumpulan data bisbol sumber terbuka paling signifikan: Retrosheet dan Baseball Databank. Retrosheet berisi informasi tentang setiap pertandingan liga utama sejak tahun 2000, setiap pertandingan sejak tahun 1928, setiap kotak skor sejak tahun 1901, dan setiap pertandingan sejak tahun 1871. Bank Data (berdasarkan Database Lahman) berisi ringkasan tahunan untuk setiap pemain dan tim dalam sejarah. Selain data dan database itu sendiri, Boxball mengandalkan alat-alat berikut:
Ikuti petunjuk di bawah ini untuk menginstal distribusi pilihan Anda. Kumpulan gambar lengkap juga tersedia di Docker Hub.
Skema Retrosheet didokumentasikan secara luas dalam kode; lihat sumbernya di sini sampai saya menemukan solusi yang lebih bagus.
Jika Anda merasa proyek ini bermanfaat, mohon pertimbangkan untuk berdonasi ke:
Jangan ragu untuk menghubungi saya jika ada pertanyaan atau komentar!
Distribusi ini menggunakan ekstensi cstore_fdw untuk mengubah PostgreSQL menjadi database berorientasi kolom. Ini berarti Anda mendapatkan rangkaian fitur Postgres yang kaya, namun dengan peningkatan besar dalam kecepatan dan penggunaan disk. Untuk menginstal dan menjalankan server database:
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
Kira-kira satu jam setelah gambar diunduh, data akan dimuat sepenuhnya ke dalam database, dan Anda dapat menyambungkannya sebagai pengguna postgres
dengan kata sandi postgres
pada port 5433
(baik menggunakan alat baris perintah psql
atau klien database pilihan Anda ). Data akan disimpan di mesin Anda di ~/boxball/postgres-cstore-fdw
(~1.5GB), yang berarti Anda dapat menghentikan/menghapus container tanpa harus memuat ulang data saat Anda menyalakannya kembali.
Clickhouse adalah database yang dikembangkan oleh Yandex dengan beberapa tolok ukur kinerja yang sangat mengesankan. Ia menggunakan lebih sedikit ruang disk dibandingkan Postgres cstore_fdw, namun secara signifikan lebih banyak RAM (~5GB). Saya belum menjalankan perbandingan kinerja kueri apa pun. Untuk menginstal dan menjalankan server database:
docker run --name clickhouse -d -p 8123:8123 -v ~/boxball/clickhouse:/var/lib/clickhouse doublewick/boxball:clickhouse-latest
15-30 menit setelah gambar diunduh, data akan dimuat sepenuhnya ke dalam database, dan Anda dapat menyambungkannya dengan melampirkan container dan menggunakan CLI clickhouse-client
atau dengan menggunakan klien database lokal pada port 8123
sebagai default
pengguna. Data akan disimpan di mesin Anda di ~/boxball/clickhouse
(~700MB), yang berarti Anda dapat menghentikan/menghapus container tanpa harus memuat ulang data saat Anda menyalakannya kembali.
Drill adalah kerangka kerja yang memungkinkan kueri SQL langsung pada file, tanpa harus mendeklarasikan skema apa pun. Biasanya digunakan pada cluster komputasi dengan kumpulan data yang sangat besar, tetapi kami menggunakan pengaturan node tunggal. Untuk menginstal dan menjalankan:
docker run --name drill -id -p 8047:8047 -p 31010:31010 -v ~/boxball/drill:/data doublewick/boxball:drill-latest
Data akan segera tersedia untuk ditanyakan setelah gambar diunduh. Gunakan port 8047
untuk mengakses UI Web (yang mencakup pelari SQL) dan port 31010
untuk terhubung melalui klien database. Anda juga dapat melampirkan kontainer dan kueri dari baris perintah. Data akan disimpan di mesin Anda di ~/boxball/drill
(~700MB).
Catatan: kerangka kerja ini cenderung sangat lambat ketika menanyakan data permainan demi permainan, dan kerangka kerja ini memakan lebih banyak ruang disk secara signifikan dibandingkan kerangka kolomnya.
Konfigurasi serupa dengan versi perluasan cstore_fdw di atas, tetapi disimpan dengan cara konvensional.
docker run --name postgres -d -p 5432:5432 -e POSTGRES_PASSWORD="postgres" -v ~/boxball/postgres:/var/lib/postgresql/data doublewick/boxball:postgres-latest
Kira-kira 90 menit setelah gambar diunduh, data akan dimuat sepenuhnya ke dalam database, dan Anda dapat menyambungkannya sebagai pengguna postgres
dengan kata sandi postgres
pada port 5432
(baik menggunakan alat baris perintah psql
atau klien database pilihan Anda ). Data akan disimpan di mesin Anda dalam ~/boxball/postgres
(~12GB), yang berarti Anda dapat menghentikan/menghapus container tanpa harus memuat ulang data saat Anda menyalakannya kembali.
Untuk menginstal dan menjalankan:
docker run --name mysql -d -p 3306:3306 -v ~/boxball/mysql:/var/lib/mysql doublewick/boxball:mysql-latest
Kira-kira dua jam setelah gambar diunduh, data akan dimuat sepenuhnya ke dalam database, dan Anda dapat menyambungkannya sebagai pengguna root
pada port 3306
. Data akan disimpan di mesin Anda dalam ~/boxball/mysql
(~12GB), yang berarti Anda dapat menghentikan/menghapus container tanpa harus memuat ulang data saat Anda menyalakannya kembali.
Untuk menginstal dan menjalankan:
docker run --name sqlite -d -p 8080:8080 -v ~/boxball/sqlite:/db doublewick/boxball:sqlite-latest
Kira-kira dua menit setelah gambar diunduh, data akan dimuat sepenuhnya ke dalam database. localhost:8080
akan menyediakan UI web tempat Anda dapat menulis kueri dan melakukan eksplorasi skema.
Parket adalah format data kolom yang awalnya dikembangkan untuk ekosistem Hadoop. Ini memiliki dukungan kuat di Spark, Pandas, dan banyak kerangka kerja lainnya. OneDrive
CSV asli dari langkah ekstrak (setiap file CSV dikompresi dalam format ZSTD). OneDrive
Biro Chadwick milik Ted Turocy mengembangkan alat dan repositori yang memungkinkan proyek ini terwujud. Saya juga berterima kasih kepada Sean Lahman karena telah membuat databasenya, yang telah saya gunakan selama lebih dari 15 tahun. Saya dapat mengembangkan dan menghosting proyek ini secara gratis berkat paket sumber terbuka Jetbrains, CircleCI, Github, dan Docker Hub yang murah hati.
Retrosheet mewakili upaya kolektif ribuan penggemar bisbol selama 150 tahun dalam pencatatan skor dan entri data. Saya berharap Boxball memfasilitasi lebih banyak penelitian sejarah untuk melanjutkan tradisi ini.
Semua kode dirilis di bawah lisensi Apache 2.0. Data Baseball Databank didistribusikan di bawah lisensi CC-SA 4.0. Data retrosheet dilepaskan dengan ketentuan bahwa teks di bawah ini tampak jelas:
The information used here was obtained free of
charge from and is copyrighted by Retrosheet. Interested
parties may contact Retrosheet at "www.retrosheet.org".