التحليلات في الوقت الفعليمستودعات البياناتCloudOSS
نظرة عامة
المتطلبات المسبقة
1
إنشاء جدول جديد
تحتوي مجموعة بيانات سيارات الأجرة في مدينة نيويورك على تفاصيل ملايين رحلات سيارات الأجرة، بما في ذلك أعمدة لمبلغ الإكرامية والرسوم ونوع الدفع وغيرها. أنشئ جدولًا لتخزين هذه البيانات.
-
اتصل بـ SQL Console:
- في ClickHouse Cloud، اختر خدمة من القائمة المنسدلة، ثم اختر SQL Console من قائمة التنقل الجانبية اليسرى.
- في ClickHouse ذاتية الإدارة، اتصل بـ SQL Console على
https://_hostname_:8443/play. راجع مسؤول ClickHouse للحصول على التفاصيل.
-
أنشئ جدول
tripsالتالي في قاعدة البياناتdefault:
2
أضِف مجموعة البيانات
بعد إنشاء جدول، أضف بيانات سيارات الأجرة في مدينة نيويورك من ملفات CSV على S3.
-
يُدرج الأمر التالي نحو 2,000,000 صف في جدول
tripsمن ملفين مختلفين على S3:trips_1.tsv.gzوtrips_2.tsv.gz: -
انتظر حتى يكتمل
INSERT. قد يستغرق تنزيل بيانات بحجم 150 MB بعض الوقت. -
بعد اكتمال الإدراج، تحقّق من نجاح العملية:
ينبغي أن يُرجع هذا الاستعلام 1,999,657 صفاً.
3
تحليل البيانات
نفّذ بعض الاستعلامات لتحليل البيانات. استكشف الأمثلة التالية أو جرّب استعلام SQL الخاص بك.
-
احسب متوسط مبلغ الإكرامية:
الناتج المتوقع
-
احسب متوسط التكلفة حسب عدد الركاب:
المخرجات المتوقعة
تتراوح قيم
passenger_countبين 0 و9: -
احسب العدد اليومي لرحلات الانطلاق في كل حي:
الناتج المتوقع
-
احسب مدة كل رحلة بالدقائق، ثم جمّع النتائج حسب مدة الرحلة:
الناتج المتوقع
-
اعرض عدد الرحلات المنطلقة من كل حي موزعًا حسب ساعات اليوم:
الناتج المتوقع
-
استرجع الرحلات المتجهة إلى مطاري LaGuardia أو JFK:
الناتج المتوقع
4
إنشاء قاموس
القاموس (dictionary) هو خريطة (mapping) لأزواج المفتاح-القيمة (key-value pairs) مخزَّنة في الذاكرة. لمزيد من التفاصيل، راجع القواميسأنشئ قاموسًا (Dictionary) مرتبطًا بجدول في خدمة ClickHouse لديك.
يستند الجدول والقاموس إلى ملف CSV يحتوي على صف لكل حي في مدينة نيويورك.تُربَط الأحياء بأسماء البلديات الخمس لمدينة نيويورك (Bronx وBrooklyn وManhattan وQueens وStaten Island)، إضافةً إلى مطار Newark (EWR).فيما يلي مقتطف من ملف CSV الذي تستخدمه معروضًا في هيئة جدول. يقابل العمود
LocationID في الملف العمودين pickup_nyct2010_gid وdropoff_nyct2010_gid في جدول trips الخاص بك:- نفّذ أمر SQL التالي لإنشاء قاموس باسم
taxi_zone_dictionaryوتعبئته من ملف CSV في S3. عنوان URL الخاص بالملف هوhttps://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/taxi_zone_lookup.csv.
يؤدي ضبط
LIFETIME على 0 إلى تعطيل التحديثات التلقائية لتجنّب نقل البيانات غير الضروري إلى حاوية S3 الخاصة بنا. وفي حالات أخرى، قد تهيّئه بشكل مختلف. لمزيد من التفاصيل، راجع تحديث بيانات القاموس باستخدام LIFETIME.-
تحقّق من نجاح العملية. ينبغي أن يُرجع ما يلي 265 صفًا، بصف واحد لكل حي:
-
استخدم الدالة
dictGet(أو صيغها المختلفة) لاسترجاع قيمة من قاموس. مرّر اسم القاموس والقيمة المطلوبة والمفتاح (وهو في مثالنا العمودLocationIDمنtaxi_zone_dictionary). على سبيل المثال، يُرجع الاستعلام التالي قيمةBoroughذاتLocationIDيساوي 132، والتي تشير إلى مطار JFK):يقع JFK في كوينز. لاحظ أن زمن استرجاع القيمة يساوي 0 تقريبًا: -
استخدم الدالة
dictHasللتحقق مما إذا كان مفتاح موجودًا في القاموس. على سبيل المثال، يُرجع الاستعلام التالي القيمة1(أي “صحيح” في ClickHouse): -
يعرض الاستعلام التالي القيمة 0 لأن 4567 ليست ضمن قيم
LocationIDفي القاموس: -
استخدم الدالة
dictGetلاسترجاع اسم الـborough في استعلام. على سبيل المثال:يحسب هذا الاستعلام إجمالي عدد رحلات سيارات الأجرة لكل حي إداري تنتهي في مطارَي LaGuardia أو JFK. تبدو النتيجة كما يلي، ولاحظ أن عددًا كبيرًا من الرحلات لا تُعرف فيها منطقة الانطلاق:
5
إجراء ربط
اكتب بعض الاستعلامات التي تربط
taxi_zone_dictionary بجدول trips.-
ابدأ بعبارة
JOINبسيطة تعمل على نحو مشابه لاستعلام المطار السابق أعلاه:تبدو الاستجابة مطابقة لاستعلامdictGet:
لاحظ أن ناتج استعلام
JOIN أعلاه هو نفسه ناتج الاستعلام السابق الذي استخدم dictGetOrDefault، باستثناء عدم تضمين قيم Unknown. في الخلفية، يستدعي ClickHouse فعليًا الدالة dictGet للقاموس taxi_zone_dictionary، لكن صياغة JOIN أكثر شيوعًا لدى مطوري SQL.- يعيد هذا الاستعلام صفوف الرحلات الألف ذات أعلى إكرامية، ثم يجري ربطًا داخليًا لكل صف مع القاموس:
عمومًا، نتجنب استخدام
SELECT * بكثرة في ClickHouse. استرجع فقط الأعمدة التي تحتاج إليها فعليًا.الخطوات التالية
- مقدمة إلى الفهارس الأساسية المتناثرة في ClickHouse: تعرّف على كيفية استخدام ClickHouse للفهارس الأساسية المتناثرة لتحديد البيانات ذات الصلة بكفاءة أثناء تنفيذ الاستعلامات.
- دمج مصدر بيانات خارجي: اطّلع على خيارات دمج مصادر البيانات، بما في ذلك الملفات وKafka وPostgreSQL ومسارات البيانات وغيرها الكثير.
- تصوّر البيانات في ClickHouse: وصّل أداة UI/BI المفضلة لديك بـ ClickHouse.
- مرجع SQL: استعرض دوال SQL المتاحة في ClickHouse لتحويل البيانات ومعالجتها وتحليلها.