الانتقال إلى المحتوى الرئيسي
تحتوي مجموعة البيانات هذه على جميع عناصر Posts وUsers وVotes وComments وBadges وPostHistory وPostLinks الموجودة على Stack Overflow. يمكنك إما تنزيل إصدارات Parquet المُعدّة مسبقًا من هذه البيانات، والتي تتضمن جميع المنشورات حتى أبريل 2024، أو تنزيل أحدث البيانات بتنسيق XML ثم تحميلها. يوفّر Stack Overflow تحديثات لهذه البيانات بشكل دوري - وكان ذلك تاريخيًا كل 3 أشهر. يوضح المخطط التالي بنية الجداول المتاحة بافتراض استخدام تنسيق Parquet. يمكن العثور على وصف لبنية هذه البيانات هنا.

بيانات مُعدّة مسبقًا

نوفّر نسخة من هذه البيانات بتنسيق Parquet، ومحدَّثة حتى أبريل 2024. وعلى الرغم من أن مجموعة البيانات هذه تُعد صغيرة بالنسبة إلى ClickHouse من حيث عدد الصفوف (60 مليون منشور)، فإنها تحتوي على كميات كبيرة من النصوص وأعمدة String كبيرة.
المدد الزمنية التالية خاصة بعنقود ClickHouse Cloud بسعة 96 GiB و24 vCPU والموجود في eu-west-2. وتقع مجموعة البيانات في eu-west-3.

Posts

يتوفر جدول Posts أيضًا مقسمًا حسب السنة، مثل: https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/posts/2020.parquet

Votes

تتوفر بيانات Votes أيضًا حسب السنة، مثل https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/votes/2020.parquet

Comments

تتوفر بيانات Comments أيضًا حسب السنة، على سبيل المثال https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/comments/2020.parquet

Users

Badges

PostHistory

مجموعة البيانات الأصلية

تتوفّر مجموعة البيانات الأصلية بصيغة XML مضغوطة (7zip) على https://archive.org/download/stackexchange - الملفات ذات البادئة stackoverflow.com*.

تنزيل

تصل سعة هذه الملفات إلى 35 غيغابايت، وقد يستغرق تنزيلها حوالي 30 دقيقة تبعًا لاتصال الإنترنت، إذ يحدّ خادم التنزيل السرعة عند نحو 20 ميغابايت/ثانية.

التحويل إلى JSON

حتى وقت كتابة هذا النص، لا يوفّر ClickHouse دعمًا أصليًا لـ XML كصيغة إدخال. ولتحميل البيانات إلى ClickHouse، نحوّلها أولًا إلى NDJSON. لتحويل XML إلى JSON، نوصي باستخدام أداة xq على Linux، وهي wrapper بسيطة لأداة jq للتعامل مع مستندات XML. ثبّت xq و jq:
تنطبق الخطوات التالية على أيٍّ من الملفات المذكورة أعلاه. نستخدم الملف stackoverflow.com-Posts.7z كمثال. عدِّل حسب الحاجة. استخرج الملف باستخدام p7zip. سينتج عن ذلك ملف XML واحد — في هذه الحالة Posts.xml.
الملفات مضغوطة بحوالي 4.5×. وعند حجم مضغوط قدره 22GB، يتطلب ملف منشور نحو 97G بدون ضغط.
يقسّم ما يلي ملف XML إلى عدة ملفات، يحتوي كلٌّ منها على 10000 صف.
بعد تشغيل ما سبق، ستكون لديك مجموعة من الملفات، يحتوي كلٌّ منها على 10000 سطر. يضمن ذلك ألّا يكون استهلاك الذاكرة الإضافي للأمر التالي كبيرًا جدًا (يُجرى تحويل xml إلى JSON في الذاكرة).
سينتج عن الأمر أعلاه ملف واحد باسم posts.json. حمِّل الملف إلى ClickHouse باستخدام الأمر التالي. لاحظ أنه تم تحديد البنية لملف posts.json. وستحتاج إلى تعديل ذلك بحسب نوع البيانات ليتوافق مع الجدول الهدف.

أمثلة على الاستعلامات

بعض الأسئلة البسيطة لمساعدتك على البدء.

المستخدم صاحب أكبر عدد من الإجابات (الحسابات النشطة)

يتطلب الحساب UserId.

أكثر المنشورات إثارةً للجدل

الإسناد

نشكر Stack Overflow على إتاحة هذه البيانات بموجب ترخيص cc-by-sa 4.0، مع الإشارة إلى جهودهم وإلى المصدر الأصلي للبيانات على https://archive.org/details/stackexchange.
آخر تعديل في ٢ يوليو ٢٠٢٦