العودة للمشاريع

البيانات والتقارير 2024

تكامل Metabase للتقارير التشغيلية

ربط الأنظمة الداخلية بمنصة Metabase عبر طبقة معالجة غير متزامنة، أثناء العمل في لوسيديا.

دوري
مهندس برمجيات
التقنيات
FastAPI / RabbitMQ / PostgreSQL / Metabase

شكل ٠٥ معالجة غير متزامنة للتقارير

  • Async المعالجة خارج مسار الطلب عبر RabbitMQ
  • FastAPI طبقة خدمة تستلم الأحداث وتمرّرها
  • PostgreSQL مخزن النتائج الذي يغذّي لوحات Metabase
رسم مبسّط للمعمارية — أعداد العمّال والأحداث في المحاكاة توضيحية. اقرأ الرسم
  1. الأنظمة الداخلية: كل نظام يرسل أحداثه حين تقع.
  2. خدمة FastAPI: تستلم الحدث وتضعه في الطابور، فلا ينتظر المُرسِل انتهاء المعالجة.
  3. RabbitMQ: طابور يمتص الذروة ويمرّر الأحداث بالترتيب — اضغط «دفعة أحداث» لترى ذلك.
  4. عمّال المعالجة: يستهلكون الطابور بشكل غير متزامن، كلٌّ بسرعته.
  5. PostgreSQL ولوحات Metabase: النتائج تُخزَّن، واللوحات تقرأ منها مباشرة.

المشكلة

الفرق تحتاج تقارير تشغيلية، والبيانات موزّعة على أنظمة داخلية متعددة.

دوري

مهندس برمجيات ضمن العمل في لوسيديا.

القرارات

  • طبقة خدمة: بلغة بايثون وإطار FastAPI.
  • معالجة غير متزامنة: RabbitMQ لتمرير الأحداث ومعالجتها خارج مسار الطلب.
  • مخزن للتقارير: النتائج تُخزَّن في PostgreSQL لتغذية لوحات Metabase.

ما يمكن إثباته

مشروع عمل؛ الرسم أعلاه تبسيط للمعمارية، وأعداد العمّال والأحداث فيه توضيحية.