更新: boxball の後継として設計された新しいプロジェクト、baseball.computer をリリースしました。非常に使いやすく (Docker は必要なく、完全にブラウザ/プログラムで実行されます)、さらに多くのテーブル、機能、品質管理が含まれています。イベント スキーマが異なります。これが移行の主な問題点となります。私は、ユーザーがまだ使用している限り、Boxball のメンテナンスと更新を継続することを目指しています。また、両方のメンテナンスを容易にするために、新しいプロジェクトの上に Boxball をリベースしようとするかもしれません。 Boxball ではできて、baseball.computer ではまだできないことがあれば、リポジトリに問題を提出するか、[email protected] までご連絡ください。
Boxball は、 Retrosheet と Baseball Databank という 2 つの最も重要なオープンソース野球データセットの事前設定されたデータベースを作成します。レトロシートには、2000 年以降のメジャー リーグのすべての投球、1928 年以降のすべてのプレー、1901 年以降のすべてのボックス スコア、および 1871 年以降のすべての試合に関する情報が含まれています。データバンク (ラーマン データベースに基づく) には、歴史上のすべての選手とチームの年次概要が含まれています。 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
イメージがダウンロードされてから約 1 時間後、データがデータベースに完全にロードされ、ポート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
イメージがダウンロードされると、データはすぐにクエリに使用できるようになります。 Web UI (SQL ランナーを含む) にアクセスするにはポート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 時間後に、データがデータベースに完全にロードされ、ユーザーroot
としてポート3306
に接続できるようになります。データはマシン上の~/boxball/mysql
(~12GB) に保存されます。つまり、コンテナーを再度オンにするときにデータをリロードすることなく、コンテナーを停止/削除できます。
インストールして実行するには:
docker run --name sqlite -d -p 8080:8080 -v ~/boxball/sqlite:/db doublewick/boxball:sqlite-latest
イメージがダウンロードされてから約 2 分後に、データがデータベースに完全にロードされます。 localhost:8080
クエリを作成してスキーマ探索を実行できる Web UI を提供します。
Parquet は、もともと Hadoop エコシステム用に開発された列指向のデータ形式です。 Spark、Pandas、その他多くのフレームワークで確実にサポートされています。 OneDrive
抽出ステップからの元の CSV (各 CSV ファイルは ZSTD 形式で圧縮されています)。 OneDrive
Ted Turocy の Chadwick Bureau は、このプロジェクトを可能にするツールとリポジトリを開発しました。また、私が 15 年以上使用してきたデータベースを作成してくれた Sean Lahman にも感謝しています。 Jetbrains、CircleCI、Github、Docker Hub の寛大なオープンソース プランのおかげで、このプロジェクトを無料で開発してホストすることができました。
Retrosheet は、150 年にわたるスコア管理とデータ入力における何千人もの野球ファンの共同の努力を表しています。この伝統を継続するために、ボックスボールがより多くの歴史研究を促進することを願っています。
すべてのコードは Apache 2.0 ライセンスに基づいてリリースされています。 Baseball Databank データは 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".