ستعمل الخطوات أدناه بسهولة أيضًا على تثبيت محلي لـ ClickHouse. والتغيير الوحيد هو استخدام الدالة
s3 بدلًا من s3cluster (إلا إذا كان لديك عنقود مُعدّ — وفي هذه الحالة غيّر default إلى اسم العنقود لديك).تعليمات خطوة بخطوة
1
استكشاف البيانات
لنرَ شكل البيانات. تُرجِع دالة الجدولs3cluster جدولًا، لذا يمكننا DESCRIBE النتيجة:2
أنشئ الجدول
استنادًا إلى المخطط المُستنتَج، نقّحنا أنواع البيانات وأضفنا مفتاحًا أساسيًا. عرّف الجدول التالي:3
إدراج البيانات
يقوم الأمر التالي بتمرير السجلات من ملفات S3 إلى الجدولyoutube.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 صفًا.title أو description: