الانتقال إلى المحتوى الرئيسي
في نوفمبر 2021، أزال YouTube عدد عدم الإعجاب العام من جميع مقاطع الفيديو الخاصة به. وبينما لا يزال بإمكان منشئي المحتوى رؤية عدد حالات عدم الإعجاب، لا يمكن للمشاهدين سوى رؤية عدد الإعجابات التي حصل عليها الفيديو.
تضم مجموعة البيانات أكثر من 4.55 مليار سجل، لذا توخَّ الحذر عند نسخ الأوامر أدناه ولصقها، ما لم تكن مواردك قادرة على التعامل مع هذا الحجم. نُفِّذت الأوامر أدناه على مثيل Production من ClickHouse Cloud.
البيانات بتنسيق JSON، ويمكن تنزيلها من archive.org. وقد أتحنا هذه البيانات نفسها على S3 بحيث يمكن تنزيلها بكفاءة أعلى إلى مثيل ClickHouse Cloud. فيما يلي خطوات إنشاء جدول في ClickHouse Cloud وإدخال البيانات.
ستعمل الخطوات أدناه بسهولة أيضًا على تثبيت محلي لـ ClickHouse. والتغيير الوحيد هو استخدام الدالة s3 بدلًا من s3cluster (إلا إذا كان لديك عنقود مُعدّ — وفي هذه الحالة غيّر default إلى اسم العنقود لديك).

تعليمات خطوة بخطوة

1

استكشاف البيانات

لنرَ شكل البيانات. تُرجِع دالة الجدول s3cluster جدولًا، لذا يمكننا DESCRIBE النتيجة:
يستنتج ClickHouse البنية التالية من ملف JSON:
2

أنشئ الجدول

استنادًا إلى المخطط المُستنتَج، نقّحنا أنواع البيانات وأضفنا مفتاحًا أساسيًا. عرّف الجدول التالي:
3

إدراج البيانات

يقوم الأمر التالي بتمرير السجلات من ملفات S3 إلى الجدول youtube.
يؤدي هذا إلى إدراج كمية كبيرة من البيانات — 4.65 مليار صف. إذا كنت لا تريد مجموعة البيانات بالكامل، فما عليك سوى إضافة عبارة LIMIT مع عدد الصفوف المطلوب.
بعض الملاحظات حول أمر INSERT:
  • تكون الدالة parseDateTimeBestEffortUSOrZero مفيدة عندما لا تكون حقول التاريخ الواردة بالتنسيق الصحيح. وإذا تعذّر تحليل fetch_date بشكل صحيح، فستُضبط قيمته على 0
  • يحتوي العمود upload_date على تواريخ صالحة، لكنه يتضمن أيضًا سلاسل نصية مثل “4 hours ago”، وهي بالتأكيد ليست تاريخًا صالحًا. لذلك قررنا تخزين القيمة الأصلية في upload_date_str ومحاولة تحليلها باستخدام toDate(parseDateTimeBestEffortUSOrZero(upload_date::String)). وإذا فشل التحليل، فسنحصل ببساطة على 0
  • استخدمنا ifNull لتجنّب ظهور قيم NULL في جدولنا. وإذا كانت القيمة الواردة هي NULL، فستضبط الدالة ifNull القيمة على سلسلة نصية فارغة
4

احسب عدد الصفوف

افتح علامة تبويب جديدة في SQL Console ضمن ClickHouse Cloud (أو نافذة clickhouse-client جديدة) وراقب ازدياد العدد. سيستغرق insert ‏4.56B صفًا بعض الوقت، وذلك بحسب موارد الخادم المتاحة لديك. (من دون أي تعديل على الإعدادات، يستغرق الأمر نحو 4.5 ساعات.)
5

استكشاف البيانات

بمجرد إدخال البيانات، يمكنك الآن حساب عدد مرات عدم الإعجاب بمقاطع الفيديو أو القنوات المفضلة لديك. لنرَ كم عدد مقاطع الفيديو التي رفعها ClickHouse:
يُنفَّذ الاستعلام أعلاه بهذه السرعة لأننا اخترنا uploader كأول عمود في المفتاح الأساسي، لذلك لم يحتج إلا إلى معالجة 237k صفًا.
لنلقِ نظرة على الإعجابات وعدم الإعجاب في مقاطع فيديو ClickHouse:
يكون الردّ كما يلي:
إليك بحثًا عن مقاطع فيديو يظهر فيها ClickHouse في الحقلين title أو description:
يجب أن يعالج هذا الاستعلام كل صف، وأن يُحلِّل أيضًا عمودين من القيم النصية. ورغم ذلك، نحصل على أداء جيد بمعدل 4.15 مليون صف/ثانية:
تبدو النتائج كما يلي:

الأسئلة

إذا عطّل أحدهم التعليقات، فهل يقلّ احتمال أن يضغط الآخرون فعلاً على زر الإعجاب أو عدم الإعجاب؟

عندما تكون التعليقات معطّلة، هل يكون الناس أكثر ميلاً إلى الضغط على زر الإعجاب أو عدم الإعجاب للتعبير عن مشاعرهم تجاه الفيديو؟
يبدو أن تفعيل التعليقات يرتبط بارتفاع معدل التفاعل.

كيف يتغيّر عدد مقاطع الفيديو مع مرور الوقت، وما الأحداث البارزة؟

يُلاحظ ارتفاع حاد في عدد رافعي المحتوى بالتزامن تقريبًا مع جائحة كوفيد.

المزيد من الترجمات المصاحبة مع مرور الوقت ومتى

مع تطور التعرّف على الكلام، أصبح إنشاء ترجمات مصاحبة للفيديو أسهل من أي وقت مضى، وقد أضاف يوتيوب التسميات التوضيحية التلقائية في أواخر عام 2009 - فهل كانت القفزة حينها؟
تُظهر نتائج البيانات ارتفاعًا حادًا في عام 2009. ويبدو أنه في ذلك الوقت كانت YouTube تلغي ميزة التسميات التوضيحية المجتمعية، التي كانت تتيح لك إضافة تسميات توضيحية إلى مقاطع فيديو الآخرين. وقد أدى ذلك إلى إطلاق حملة ناجحة جدًا لحثّ منشئي المحتوى على إضافة تسميات توضيحية إلى مقاطع الفيديو الخاصة بهم من أجل المشاهدين ضعاف السمع والصم.

أبرز رافعي المحتوى عبر الزمن

كيف تتغير نسبة الإعجاب مع زيادة عدد المشاهدات؟

كيف تتوزع المشاهدات؟

آخر تعديل في ١ يوليو ٢٠٢٦