منصوبے کے بارے میں
ای-کامرس کلکسٹریم اینالیٹکس پلیٹ فارم ایک فلک اسٹیک ڈیٹا انجینئرنگ پروجیکٹ ہے جو تقریباً 285 ملین ای-کامرس کلکسٹریم ایونٹس کو ایک Kaggle ڈیٹاسیٹ سے پروسیس کرتا ہے جو اکتوبر–نومبر 2019 پر مشتمل ہے۔
## جائزہ
پلیٹ فارم خام CSV ایونٹ ڈیٹا (~14 GB) کو MinIO (S3-compatible object store) میں انگیٹ کرتا ہے، Apache Spark کے ذریعے بچ اینالیٹکس چلاتا ہے، Kafka اور Spark Structured Streaming کے ذریعے لائیو اسٹریمنگ کرتا ہے، Hadoop MapReduce جابس چلاتا ہے، اور FastAPI بیک اینڈ سے React فرنٹ اینڈ ڈیش بورڈ تک نتائج فراہم کرتا ہے۔
## تعمیراتی اجزاء
**انگیٹریشن اور اسٹوریج:**
- MinIO (S3-compatible object storage) خام CSV اور Parquet آؤٹ پٹ کو محفوظ رکھتا ہے
- PostgreSQL 16.3 جمع شدہ KPIs اور کوئری ریڈی نتائج کو محفوظ کرتا ہے
- Redis 7.4.1 کیشنگ لیئر فراہم کرتا ہے
- Apache Kafka 3.9 (KRaft mode) اسٹریمنگ ڈیٹا کے لیے میسیج بس کے طور پر کام کرتا ہے
**پروسیسنگ:**
- Apache Spark 3.5 پانچ PySpark جابس کے ساتھ بچ ETL سنبھالتا ہے: روزانہ KPI کمپیوٹیشن، فونل اینالیسس، کارٹ ابینڈونمنٹ ڈیٹیکشن، پروڈکٹ افینیٹ اسکورنگ، اور MapReduce کے لیے ڈیٹا تیاری
- Apache Hadoop 3.4.1 YARN Streaming پر چلتا ہے اور دو MapReduce جابس چلاتا ہے (کیٹیگری ایونٹ کاؤنٹنگ اور برانڈ ریونیو ایگریگیشن)
- Spark Structured Streaming Kafka سے کنزیوم کرتا ہے، فعال سیژنز کو ہر 5 سیکنڈ میں ایگریگیٹ کرتا ہے اور PostgreSQL میں اپ سرٹ کرتا ہے
**آرکیسٹریشن اور API:**
- Apache Airflow 2.9.3 مکمل بچ پائپ لائن کو DAG کے طور پر آرکیسٹر کرتا ہے
- FastAPI (asyncpg کے ساتھ) ڈیش بورڈ کے لیے REST اینڈ پوائنٹس فراہم کرتا ہے
- Terraform ٹیمپلیٹس AWS اور GCP ڈیپلائمنٹ کو کور کرتے ہیں
**فرنٹ اینڈ:**
- React 18.3 TypeScript، Tailwind CSS، اور Recharts کے ساتھ چار پیجز پیش کرتا ہے:
- Overview: KPI کارڈز اور روزانہ ٹرینڈ چارٹس
- Funnel Analysis: ویو تو کارٹ تو پھرچز فلُو اور کیٹیگری کے لحاظ سے ابینڈونمنٹ
- Product Analytics: ٹاپ پروڈکٹس، برانڈز، اور کیٹیگریز
- Live Monitor: Server-Sent Events کے ذریعے ریئل ٹائم سیژن ٹریکنگ
## ڈیٹا پائپ لائن
1. **بچ اینالیٹکس**: خام CSV MinIO سے پڑھا جاتا ہے؛ روزانہ میٹرکس (ایونٹس، یوزرز، ریونیو، کنورژن ریٹ)، ٹاپ پروڈکٹس/برانڈز/کیٹیگریز کمپیوٹ کر کے PostgreSQL میں لکھے جاتے ہیں۔ ایک الگ جاب کیٹیگری وائز فونل ریٹس کمپیوٹ کرتی ہے، کارٹ ابینڈونمنٹ کی شناخت کرتی ہے، اور پروڈکٹ افینیٹ لفٹ اسکورز نکالتی ہے (کارکردگی کے لیے 10% نمونہ)۔
2. **MapReduce**: تیار کردہ Parquet فائلوں کو CSV میں تبدیل کر کے HDFS پر اپ لوڈ کیا جاتا ہے، جہاں Hadoop Streaming jobs کیٹیگری/ایونٹ ٹائپ کے لحاظ سے ایونٹس کی گنتی اور برانڈ کے لحاظ سے ریونیو کا مجموعہ کرتی ہیں۔
3. **لائو اسٹریمنگ**: Kafka پروڈیوسر CSV کو کنفیگر ایبل ریٹ (ڈیفالٹ 200 ایونٹس/سیکنڈ) پر دوبارہ چلاتا ہے۔ Spark اسٹریمنگ کنزیومر 5 سیکنڈ کے مائیکیرو بیچز میں فعال سیژنز کو ایگریگیٹ کرتا ہے اور انہیں `live_sessions` ٹیبل میں محفوظ کرتا ہے۔
## ڈیپلائمنٹ
تمام 13 سروسز Docker Compose کے ذریعے چلتی ہیں۔ پری ری کوئزمیں Docker Desktop >= 4.30 جس میں کم از کم 16 GB RAM اور 30 GB ڈسک سپیس ہو شامل ہے۔ Windows صارفین کو WSL2 کی ضرورت ہے جس میں کم از کم 12 GB میموری ہو۔ Makefile میں سروسز شروع کرنے، ڈیٹا اپ لوڈ کرنے، پائپ لائنز چلانے، اور ٹیسٹس چلانے کے لیے ٹارگٹس موجود ہیں۔
اسٹارٹ اپ کے بعد URL تک رسائی: ڈیش بورڈ (پورٹ 3000)، FastAPI docs (پورٹ 8000)، Airflow (پورٹ 8080)، MinIO Console (پورٹ 9001)، Spark Master UI (پورٹ 8081)، HDFS NameNode (پورٹ 9870)، اور YARN (پورٹ 8088)۔
## ریپازٹری ساخت
اہم ڈائریکٹریز میں `spark/jobs/` پانچ PySpark بچ اسکرپٹس کے لیے، `spark/streaming/` Kafka کنزیومر کے لیے، `kafka/producer/` ریپلے پروڈیوسر کے لیے، `api/` FastAPI سروس آرتھڈ اینڈ پوائنٹس کے ساتھ، `frontend/` React ایپلیکیشن کے لیے، `hadoop/mapreduce/` اسٹریمنگ جابس اسکرپٹس کے لیے، `airflow/dags/` آرکیسٹریشن کے لیے، `terraform/` IaC ٹیمپلیٹس کے لیے، اور `docker/` Hadoop اور Kafka سروس تعریفوں کے لیے شامل ہیں۔
لائسنس: MIT
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.