تحديث : لقد قمت بإصدار مشروع جديد، Baseball.computer، والذي تم تصميمه ليكون خليفة للعبة Boxball. إنه أسهل بكثير في الاستخدام (لا يتطلب Docker، ويعمل بالكامل في المتصفح/البرنامج الخاص بك) ويتضمن العديد من الجداول والميزات وضوابط الجودة. يختلف مخطط الحدث، والذي سيكون نقطة الألم الرئيسية للترحيل. أهدف إلى مواصلة صيانة Boxball وتحديثاته طالما أن الأشخاص ما زالوا يستخدمونه، وقد أحاول إعادة وضع Boxball فوق المشروع الجديد لتسهيل صيانة كليهما. يرجى إخباري إذا كانت هناك أشياء يمكنك القيام بها في Boxball ولا يمكنك القيام بها بعد في البيسبول.كمبيوتر عن طريق تقديم مشكلة في الريبو أو التواصل معي على [email protected].
يقوم Boxball بإنشاء قواعد بيانات معدة مسبقًا لأهم مجموعتين من بيانات البيسبول مفتوحة المصدر: Retrosheet وBasball 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.5 جيجابايت)، مما يعني أنه يمكنك إيقاف/إزالة الحاوية دون الحاجة إلى إعادة تحميل البيانات عند تشغيلها مرة أخرى.
Clickhouse هي قاعدة بيانات تم تطويرها بواسطة Yandex مع بعض معايير الأداء الرائعة للغاية. يستخدم مساحة قرص أقل من Postgres cstore_fdw، ولكنه يستخدم ذاكرة وصول عشوائي (RAM) أكبر بكثير (~ 5 جيجابايت). لم أقم بعد بإجراء أي مقارنات لأداء الاستعلام. لتثبيت وتشغيل خادم قاعدة البيانات:
docker run --name clickhouse -d -p 8123:8123 -v ~/boxball/clickhouse:/var/lib/clickhouse doublewick/boxball:clickhouse-latest
بعد 15-30 دقيقة من تنزيل الصورة، سيتم تحميل البيانات بالكامل في قاعدة البيانات، ويمكنك الاتصال بها إما عن طريق إرفاق الحاوية واستخدام واجهة سطر clickhouse-client
أو باستخدام عميل قاعدة بيانات محلي على المنفذ 8123
باعتباره default
للمستخدم . سيتم الاحتفاظ بالبيانات على جهازك في ~/boxball/clickhouse
(حوالي 700 ميجابايت)، مما يعني أنه يمكنك إيقاف/إزالة الحاوية دون الحاجة إلى إعادة تحميل البيانات عند تشغيلها مرة أخرى.
Drill هو إطار عمل يسمح باستعلامات SQL مباشرة على الملفات، دون الحاجة إلى الإعلان عن أي مخطط. يتم استخدامه عادةً في مجموعة حوسبة تحتوي على مجموعات بيانات ضخمة، ولكننا نستخدم إعدادًا أحادي العقدة. للتثبيت والتشغيل:
docker run --name drill -id -p 8047:8047 -p 31010:31010 -v ~/boxball/drill:/data doublewick/boxball:drill-latest
ستكون البيانات متاحة على الفور للاستعلام عنها بعد تنزيل الصورة. استخدم المنفذ 8047
للوصول إلى واجهة مستخدم الويب (التي تتضمن مشغل SQL) والمنفذ 31010
للاتصال عبر عميل قاعدة البيانات. يمكنك أيضًا إرفاق الحاوية والاستعلام من سطر الأوامر. سيتم الاحتفاظ بالبيانات على جهازك في ~/boxball/drill
(حوالي 700 ميجابايت).
ملاحظة: من المرجح أن تكون أطر العمل هذه بطيئة للغاية عند الاستعلام عن بيانات اللعب تلو الآخر، كما أنها تشغل مساحة قرص أكبر بكثير من نظيراتها العمودية.
تكوين مماثل للإصدار الموسع 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
(~12 جيجابايت)، مما يعني أنه يمكنك إيقاف/إزالة الحاوية دون الحاجة إلى إعادة تحميل البيانات عند تشغيلها مرة أخرى.
للتثبيت والتشغيل:
docker run --name mysql -d -p 3306:3306 -v ~/boxball/mysql:/var/lib/mysql doublewick/boxball:mysql-latest
بعد ساعتين تقريبًا من تنزيل الصورة، سيتم تحميل البيانات بالكامل في قاعدة البيانات، ويمكنك الاتصال بها root
المستخدم على المنفذ 3306
. سيتم الاحتفاظ بالبيانات على جهازك في ~/boxball/mysql
(~12 جيجابايت)، مما يعني أنه يمكنك إيقاف/إزالة الحاوية دون الحاجة إلى إعادة تحميل البيانات عند تشغيلها مرة أخرى.
للتثبيت والتشغيل:
docker run --name sqlite -d -p 8080:8080 -v ~/boxball/sqlite:/db doublewick/boxball:sqlite-latest
بعد دقيقتين تقريبًا من تنزيل الصورة، سيتم تحميل البيانات بالكامل في قاعدة البيانات. localhost:8080
سيوفر واجهة مستخدم ويب حيث يمكنك كتابة الاستعلامات وإجراء استكشاف المخطط.
الباركيه هو تنسيق بيانات عمودي تم تطويره في الأصل لنظام Hadoop البيئي. يتمتع بدعم قوي في Spark وPandas والعديد من أطر العمل الأخرى. ون درايف
ملفات CSV الأصلية من خطوة الاستخراج (يتم ضغط كل ملف CSV بتنسيق ZSTD). ون درايف
قام مكتب تشادويك التابع لـ Ted Turocy بتطوير الأدوات والمستودعات التي جعلت هذا المشروع ممكنًا. كما أنني ممتن أيضًا لشون لاهمان لإنشاء قاعدة البيانات الخاصة به، والتي أستخدمها منذ أكثر من 15 عامًا. لقد تمكنت من تطوير هذا المشروع واستضافته مجانًا بفضل الخطط السخية مفتوحة المصدر لـ 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".