الانتقال إلى المحتوى الرئيسي
تتكوّن عيّنة بيانات سيارات الأجرة في نيويورك من أكثر من 3 مليارات رحلة لسيارات الأجرة والمركبات المؤجرة (Uber وLyft وغيرها) انطلقت من مدينة نيويورك منذ عام 2009. يستخدم هذا الدليل التمهيدي عيّنة من 3 ملايين صف. يمكن الحصول على مجموعة البيانات الكاملة بعدة طرق:
  • أدرِج البيانات مباشرةً في ClickHouse Cloud من S3 أو GCS
  • نزّل الأجزاء المُقسَّمة المُعدّة مسبقًا
  • أو يمكنك بدلاً من ذلك تنفيذ استعلام على مجموعة البيانات الكاملة في بيئة العرض التوضيحي لدينا على sql.clickhouse.com.
نُفِّذت استعلامات المثال أدناه على مثيل Production من ClickHouse Cloud. لمزيد من المعلومات، راجع “مواصفات Playground”.

أنشئ جدول trips

ابدأ بإنشاء جدول لرحلات سيارات الأجرة:

حمّل البيانات مباشرةً من تخزين الكائنات

يمكن للمستخدمين الحصول على مجموعة فرعية صغيرة من البيانات (3 ملايين صف) للتعرّف عليها. توجد البيانات في ملفات TSV ضمن تخزين الكائنات، ويمكن بثّها بسهولة إلى ClickHouse Cloud باستخدام الدالة الجدولية s3. البيانات نفسها مخزّنة في كلٍّ من S3 وGCS؛ اختر أي علامة تبويب.
يبثّ الأمر التالي ثلاثة ملفات من حاوية S3 إلى الجدول trips_small (صيغة {0..2} هي حرف بدل للقيم 0 و1 و2):

استعلامات نموذجية

تُنفَّذ الاستعلامات التالية على العينة الموضَّحة أعلاه. يمكنك تشغيل الاستعلامات النموذجية على مجموعة البيانات الكاملة في sql.clickhouse.com، مع تعديل الاستعلامات أدناه لاستخدام الجدول nyc_taxi.trips. لنرَ عدد الصفوف التي أُدرجت: يحتوي كل ملف TSV على نحو 1M صف، ويبلغ إجمالي عدد الصفوف في الملفات الثلاثة 3,000,317 صفًا. لنلقِ نظرة على بعض الصفوف: لاحظ أن هناك أعمدة لتواريخ الالتقاط والإنزال، وإحداثيات Geo، وتفاصيل الأجرة، وأحياء نيويورك، وغير ذلك. لنُشغِّل بعض الاستعلامات. يوضّح هذا الاستعلام أفضل 10 أحياء تسجّل أعلى عدد من عمليات الالتقاط: يعرض هذا الاستعلام متوسط الأجرة بناءً على عدد الركاب:
runnable
فيما يلي علاقة بين عدد الركاب ومسافة الرحلة:
runnable

تنزيل الأجزاء المُقسَّمة المُعدّة مسبقًا

توضّح الخطوات التالية معلومات عن مجموعة البيانات الأصلية، وطريقة تحميل الأجزاء المُقسَّمة المُعدّة مسبقًا إلى بيئة خادم ClickHouse تتم إدارته ذاتيًا.
راجع https://github.com/toddwschneider/nyc-taxi-data و http://tech.marksblogg.com/billion-nyc-taxi-rides-redshift.html للاطلاع على وصف مجموعة البيانات وإرشادات التنزيل. سينتج عن التنزيل نحو 227 جيجابايت من البيانات غير المضغوطة في ملفات CSV. ويستغرق التنزيل حوالي ساعة عبر اتصال بسرعة 1 جيجابت (إذ يتيح التنزيل المتوازي من s3.amazonaws.com الاستفادة من نصف سعة اتصال 1 جيجابت على الأقل). قد لا تكتمل عملية تنزيل بعض الملفات بالكامل. تحقّق من أحجام الملفات، وأعِد تنزيل أي ملف يبدو مشكوكًا فيه.
إذا كنت ستشغّل الاستعلامات الموضّحة أدناه، فعليك استخدام اسم الجدول الكامل datasets.trips_mergetree.

النتائج على خادم واحد

Q1:
0.490 ثانية. Q2:
1.224 ثانية. Q3:
2.104 ثانية. Q4:
3.593 ثانية. استُخدم الخادم التالي: معالجان Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz، بإجمالي 16 نواة فعلية، وذاكرة RAM بسعة 128 GiB، و8 أقراص HD سعة 6 تيرابايت لكل منها ضمن RAID-5 عتادي زمن التنفيذ هو الأفضل من بين ثلاث عمليات تشغيل. ولكن ابتداءً من عملية التشغيل الثانية، تقرأ الاستعلامات البيانات من ذاكرة التخزين المؤقت لنظام الملفات. ولا يحدث أي تخزين مؤقت إضافي: إذ تُقرأ البيانات وتُعالَج في كل عملية تشغيل. إنشاء جدول على ثلاثة خوادم: على كل خادم:
على الخادم المصدر:
يقوم الاستعلام التالي بإعادة توزيع البيانات:
استغرق هذا 2454 ثانية. على ثلاثة خوادم: Q1: 0.212 ثانية. Q2: 0.438 ثانية. Q3: 0.733 ثانية. Q4: 1.241 ثانية. لا مفاجآت هنا، لأن الاستعلامات تتوسع بشكل خطي. ولدينا أيضًا نتائج عنقود يضم 140 خادمًا: Q1: 0.028 ثانية. Q2: 0.043 ثانية. Q3: 0.051 ثانية. Q4: 0.072 ثانية. في هذه الحالة، يتحدد وقت معالجة الاستعلام بالدرجة الأولى بزمن انتقال الشبكة. لقد أجرينا الاستعلامات باستخدام عميل موجود في مركز بيانات مختلف عن مركز البيانات الذي كان العنقود موجودًا فيه، مما أضاف نحو 20 مللي ثانية من زمن الانتقال.

الخلاصة

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