العودة لقائمة المشاريع
تحليل بيانات الحساسات في الوقت الفعلي باستخدام Apache Flink
الميزانية
$50.00 - $100.00
التصنيف
برمجة، تطوير المواقع والتطبيقات
المهارات المطلوبة
تحليل البيانات
برمجة مواقع
هندسة البرمجيات
برمجة
جافا
تحليل البيانات
برمجة مواقع
هندسة البرمجيات
برمجة
جافا
الوصف
١. مقدمة وهدف المشروع
في عصر إنترنت الأشياء (IoT)، تجمع المؤسسات كميات هائلة من البيانات من الحساسات المنتشرة في بيئات متنوعة—مصانع، مدن ذكية، ومرافق صناعية. القدرة على معالجة هذه البيانات فورياً واستخلاص رؤى ذات قيمة أمر حيوي لاتخاذ قرارات مدروسة، تحسين العمليات، والكشف عن الشواذ.
في هذا المشروع، ستمثل نشاط شركة تقدّم حلولاً لجمع وتحليل بيانات حسّاسات IoT في مصنع. الهدف هو تصميم وتنفيذ نظام قائم على Apache Flink يعالج تيار بيانات الحساسات، يحسب مؤشرات إحصائية، ويكشف عن القراءات الشاذة.
٢. متطلبات المشروع
المشروع مقسّم إلى جزئين رئيسيين بالإضافة لجزء بونص.
الجزء أ: محاكاة مصدر البيانات وحساب المتوسط العالمي للحرارة
أ.1 محاكي حسّاسات IoT
تطوير محاكي يولّد تيار بيانات (stream) يحاكي قراءات حرارة من حسّاسات افتراضية.
صيغة كل رسالة JSON كالتالي:
{
"device_id": "0x1",
"time": 432453455,
"temperature": 23.67
}
قيمة الحقل temperature تٌنشأ عشوائياً ضمن نطاق معقول للمصنع (مثلاً من 10 إلى 50 درجة مئوية).
عدد الحساسات قابل للتعديل (إعداد افتراضي: 10).
كل حساس يصدر عدد قراءات في الدقيقة قابل للتعديل (إعداد افتراضي: 100)، مع توزيع شبه متساوٍ للقراءات على مدار الدقيقة.
أ.2 معالجة البيانات بـ Flink – الجزء أ
تطوير Flink Job يلتقط تيار بيانات الحرارة من المحاكي.
حساب المتوسط العالمي للحرارة (من جميع الحساسات) في كل نافذة زمنية مدتها دقيقة.
طباعة النتيجة على الكونسول بالشكل التالي:
Timestamp: 16788864, Global Average Temperature: 95.4 °C
الجزء ب: حساب المتوسط لكل حساس على حدة
ب.1 معالجة البيانات بـ Flink – الجزء ب
استكمالاً للجزء أ، توسيع Flink Job ليحسب ويطبع، في كل دقيقة، المتوسط الفردي لكل حساس على حدة.
مثال إخراج:
Timestamp: 16788864, Device: 0x1, Average Temperature: 95.4 °C
الجزء ج : كشف الشواذ
ج.1 تعريف واكتشاف الشواذ
يُعرف الشاذ بأنه أي قراءة حرارة تنحرف أكثر من ثلاث انحرافات معيارية عن المتوسط العالمي للنافذة نفسها (كما حسب في الجزء أ).
توسيع Flink Job ليكشف كل قراءة شاذة ويطبع رسالة تتضمن:
معرف الحساس (Device ID)
القيمة الشاذة
المتوسط والانحراف المعياري المستخدمين للكشف
صيغة إخراج مقترحة للشواذ:
Anomaly Detected! Timestamp: <event_time>, Device: 0x1,
Anomalous Temperature: 120.5 °C (Minute Avg: 95.4 °C, StdDev: 5.2)
٣. التوجيهات التقنية والنقاط الرئيسية
النوافذ (Windows): استخدام آلية النوافذ في Flink لتنفيذ جميع عمليات التجميع المطلوبة.
هيكلية المشروع: تقديم كود منظم، مقروء، وموثق بشكل جيد.
التكوين (Configuration): تنفيذ المعاملات القابلة للتعديل (عدد الحساسات، معدل القراءات) بطريقة تتيح تعديلها بسهولة.
التشغيل والعرض: تضمين تعليمات واضحة ومفصلة حول كيفية تشغيل المحاكي وFlink Job وعرض النتائج.
إذا كنت مطوراً متمرساً في Java وApache Flink ومستعدّاً لتنفيذ كل نقطة بحذافيرها الرجاء تقديم العرض