更新:我發布了一個新項目,baseball.computer,它被設計為 boxball 的後繼者。它更容易使用(不需要 Docker,完全在瀏覽器/程式中運行),並且包含更多表格、功能和品質控制。事件模式不同,這將是主要的遷移痛點。我的目標是只要人們仍在使用 Boxball 就繼續維護和更新它,我可能會嘗試在新專案之上重新建立 Boxball 基礎,以使維護變得更容易。如果您在 Boxball 中可以做一些在 Baseball.computer 中還不能做的事情,請透過在儲存庫上提交問題或透過 [email protected] 與我聯繫來告訴我。
Boxball創建兩個最重要的開源棒球資料集的預先填充資料庫:Retrosheet 和 Baseball Databank。 Retrosheet 包含自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
下載映像大約一個小時後,資料將完全載入到資料庫中,您可以以使用者postgres
身分、密碼postgres
在連接埠5433
上連接到它(使用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
default
或使用連接埠8123
上的本機資料庫用戶端作為連接到資料庫。資料將保存在您的電腦上的~/boxball/clickhouse
(~700MB) 中,這意味著您可以停止/刪除容器,而無需在重新開啟容器時重新載入資料。
Drill 是一個框架,允許直接對檔案進行 SQL 查詢,而無需聲明任何模式。它通常用於具有大量資料集的計算集群,但我們使用單節點設定。安裝並運行:
docker run --name drill -id -p 8047:8047 -p 31010:31010 -v ~/boxball/drill:/data doublewick/boxball:drill-latest
圖片下載後可立即查詢資料。使用連接埠8047
存取 Web UI(其中包括 SQL 運行程序),使用連接埠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 分鐘,資料將完全載入到資料庫中,您可以以使用者postgres
和密碼postgres
在連接埠5432
上連接到它(使用psql
命令列工具或您選擇的資料庫用戶端) )。資料將保存在您的電腦上的~/boxball/postgres
(~12GB) 中,這意味著您可以停止/刪除容器,而無需在重新開啟容器時重新載入資料。
安裝並運行:
docker run --name mysql -d -p 3306:3306 -v ~/boxball/mysql:/var/lib/mysql doublewick/boxball:mysql-latest
下載鏡像後大約兩個小時,資料將完全載入到資料庫中,您可以以root
使用者身分在連接埠3306
上連接到資料庫。資料將保存在您的電腦上的~/boxball/mysql
(~12GB) 中,這意味著您可以停止/刪除容器,而無需在重新開啟容器時重新載入資料。
安裝並運行:
docker run --name sqlite -d -p 8080:8080 -v ~/boxball/sqlite:/db doublewick/boxball:sqlite-latest
下載圖像後大約兩分鐘,資料將完全載入到資料庫中。 localhost:8080
將提供一個 Web UI,您可以在其中編寫查詢並執行模式探索。
Parquet 是一種最初為 Hadoop 生態系統開發的列式資料格式。它在 Spark、Pandas 和許多其他框架中擁有堅實的支撐。雲端硬碟
提取步驟中的原始 CSV(每個 CSV 檔案都以 ZSTD 格式壓縮)。雲端硬碟
Ted Turocy 的 Chadwick Bureau 開發了使該專案成為可能的工具和儲存庫。我還感謝 Sean Lahman 創建了他的資料庫,我已經使用該資料庫超過 15 年了。感謝 Jetbrains、CircleCI、Github 和 Docker Hub 慷慨的開源計劃,我能夠免費開發和託管這個專案。
Retrosheet 代表了數千名棒球迷 150 年來記分和資料輸入的集體努力。我希望 Boxball 能促進更多的歷史研究,以延續這項傳統。
所有程式碼均在 Apache 2.0 許可證下發布。棒球資料庫數據根據 CC-SA 4.0 許可證分發。 Retrosheet資料在以下文字突出顯示的情況下發布:
The information used here was obtained free of
charge from and is copyrighted by Retrosheet. Interested
parties may contact Retrosheet at "www.retrosheet.org".