Skip to main content
تُعد Sensor.Community شبكة عالمية من المستشعرات يقودها المساهمون، وتُنتج بيانات بيئية مفتوحة. وتُجمع هذه البيانات من مستشعرات منتشرة في أنحاء العالم كافة. ويمكن لأي شخص شراء مستشعر ووضعه في أي مكان يريده. وتتوفر واجهات برمجة التطبيقات لتنزيل البيانات على GitHub، كما أن البيانات متاحة بحرية بموجب Database Contents License (DbCL).
تحتوي مجموعة البيانات على أكثر من 20 مليار سجل، لذا توخَّ الحذر عند مجرد نسخ الأوامر أدناه ولصقها، ما لم تكن مواردك قادرة على التعامل مع هذا الحجم. نُفِّذت هذه الأوامر على خدمة ClickHouse Cloud ذات حجم مناسب.
لتجربة هذه الأوامر بنفسك، يمكنك التسجيل للحصول على فترة تجريبية مجانية من ClickHouse Cloud أو إعداد ClickHouse مستضاف ذاتيًا.
  1. البيانات موجودة في S3، لذا يمكننا استخدام الدالة الجدولية s3 لإنشاء جدول من الملفات. ويمكننا أيضًا استعلام البيانات في موضعها مباشرةً. لنلقِ نظرة على بعض الصفوف قبل محاولة إدراجها في ClickHouse:
البيانات موجودة في ملفات CSV، لكنها تستخدم فاصلة منقوطة كفاصل. وتبدو الصفوف كما يلي:
  1. سنستخدم جدول MergeTree التالي لتخزين البيانات في ClickHouse:
  1. سنستخدم دالة الجدول s3Cluster، التي توزّع ملفات S3 على العقد في عنقودك لتُقرأ بالتوازي. في ClickHouse Cloud، يحمل عنقودك الاسم default، ويمكنك تشغيل الاستعلام كما هو موضّح. أما على خادم مُدار ذاتيًا، فاستبدل default باسم عنقودك — أو إذا كنت تشغّل خادمًا واحدًا، فاستخدم بدلًا منها دالة الجدول s3، مع حذف الوسيط الأول ليبدأ الاستدعاء بعنوان URL.
سيستغرق هذا الاستعلام بعض الوقت - إذ يبلغ حجم البيانات غير المضغوطة نحو 1.67 تيرابايت:
إليك الاستجابة - تُظهر عدد الصفوف وسرعة المعالجة. يتم الإدخال بمعدل يتجاوز 6 ملايين صف في الثانية!
  1. لنرَ مقدار مساحة التخزين على القرص المطلوبة لجدول sensors:
تم ضغط 1.67T إلى 310 GiB، ويبلغ إجمالي عدد الصفوف 20.69 مليار صف:
  1. لنحلّل البيانات الآن بعد انتقالها إلى ClickHouse. لاحظ أن كمية البيانات تزداد بمرور الوقت مع نشر المزيد من المستشعرات:
يمكننا إنشاء مخطط في SQL Console لعرض النتائج بشكل مرئي:
  1. يحسب هذا الاستعلام عدد الأيام شديدة الحرارة والرطوبة:
فيما يلي تصور للنتيجة: