อัปเดต : ฉันได้เปิดตัวโปรเจ็กต์ใหม่ Baseball.computer ซึ่งได้รับการออกแบบให้เป็นผู้สืบทอดต่อ Boxball ใช้งานง่ายกว่ามาก (ไม่ต้องใช้ Docker ทำงานทั้งหมดในเบราว์เซอร์/โปรแกรมของคุณ) และมีตาราง คุณสมบัติ และการควบคุมคุณภาพอีกมากมาย สคีมาเหตุการณ์แตกต่างออกไป ซึ่งจะเป็นปัญหาหลักของการย้ายข้อมูล ฉันตั้งเป้าที่จะบำรุงรักษาและอัปเดต Boxball ต่อไปตราบใดที่ผู้คนยังคงใช้งานอยู่ และฉันอาจพยายามรีบูต Boxball เพิ่มเติมจากโปรเจ็กต์ใหม่เพื่อให้การบำรุงรักษาทั้งสองอย่างง่ายขึ้น โปรดแจ้งให้เราทราบหากมีสิ่งที่คุณสามารถทำได้ใน Boxball ที่คุณยังทำไม่ได้ใน Baseball.computer โดยยื่นปัญหาใน repo หรือติดต่อฉันที่ [email protected]
Boxball สร้างฐานข้อมูลที่เติมไว้ล่วงหน้าของชุดข้อมูลเบสบอลโอเพ่นซอร์สที่สำคัญที่สุดสองชุด: Retrosheet และ Baseball Databank Retrosheet มีข้อมูลเกี่ยวกับทุกสนามในเมเจอร์ลีกตั้งแต่ปี 2000 ทุกการเล่นตั้งแต่ปี 1928 คะแนนทุกกล่องตั้งแต่ปี 1901 และทุกเกมตั้งแต่ปี 1871 Databank (ตามฐานข้อมูล 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
ประมาณหนึ่งชั่วโมงหลังจากดาวน์โหลดรูปภาพ ข้อมูลจะถูกโหลดลงในฐานข้อมูลโดยสมบูรณ์ และคุณสามารถเชื่อมต่อเข้ากับฐานข้อมูลได้ในฐานะผู้ใช้ 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
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
ข้อมูลจะพร้อมให้ค้นหาได้ทันทีหลังจากดาวน์โหลดรูปภาพแล้ว ใช้พอร์ต 8047
เพื่อเข้าถึง Web UI (ซึ่งรวมถึง SQL runner) และพอร์ต 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
จะจัดเตรียม UI ของเว็บที่คุณสามารถเขียนคำสั่งและดำเนินการสำรวจสคีมาได้
Parquet คือรูปแบบข้อมูลแบบเรียงเป็นแนวที่พัฒนาขึ้นมาสำหรับระบบนิเวศ Hadoop มีการรองรับอย่างมั่นคงใน Spark, Pandas และเฟรมเวิร์กอื่น ๆ อีกมากมาย วันไดรฟ์
CSV ดั้งเดิมจากขั้นตอนการแยก (ไฟล์ CSV แต่ละไฟล์ถูกบีบอัดในรูปแบบ ZSTD) วันไดรฟ์
Chadwick Bureau ของ Ted Turocy ได้พัฒนาเครื่องมือและ repos ที่ทำให้โปรเจ็กต์นี้เป็นไปได้ ฉันยังรู้สึกขอบคุณ Sean Lahman ที่สร้างฐานข้อมูลของเขา ซึ่งฉันใช้มานานกว่า 15 ปี ฉันสามารถพัฒนาและโฮสต์โปรเจ็กต์นี้ได้ฟรีด้วยแผนโอเพ่นซอร์สที่เอื้อเฟื้อของ Jetbrains, CircleCI, Github และ Docker Hub
Retrosheet แสดงถึงความพยายามร่วมกันของแฟนเบสบอลหลายพันคนตลอดระยะเวลา 150 ปีของการเก็บคะแนนและการป้อนข้อมูล ฉันหวังว่า Boxball จะอำนวยความสะดวกในการวิจัยทางประวัติศาสตร์เพิ่มเติมเพื่อสืบสานประเพณีนี้
รหัสทั้งหมดเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0 ข้อมูล Baseball Databank ได้รับการเผยแพร่ภายใต้ใบอนุญาต 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".