প্রকল্প সম্পর্কে
ই-কমার্স ক্লিকস্ট্রিম অ্যানালিটিক্স প্ল্যাটফর্ম হলো একটি ফুল-স্ট্যাক ডেটা ইঞ্জিনিয়ারিং প্রজেক্ট, যা অক্টোবর–নভেম্বর ২০১৯ সময়কালের কাগেল ডেটাসেট থেকে প্রায় ২৮৫ মিলিয়ন ই-কমার্স ক্লিকস্ট্রিম ইভেন্ট প্রক্রিয়া করে।
## ওভারভিউ
এই প্ল্যাটফর্মটি কাঁচা CSV ইভেন্ট ডেটা (~১৪ জিবি) S3-সামঞ্জস্যপূর্ণ অ্যাক্টব স্টোরেজ (মিনIO)-তে ইনজেস্ট করে, অ্যাপাচি স্পার্ক ব্যবহার করে ব্যাচ অ্যানালিটিক্স চালায়, কাফকা ও স্পার্ক স্ট্রাকচার্ড স্ট্রিমিংয়ের মাধ্যমে লাইভ স্ট্রিমিং পরিচালনা করে, হ্যাডপুপ ম্যাপরিডিউস জব সম্পন্ন করে এবং ফলাফলগুলো একটি ফাস্টএপি ব্যাকএন্ডের মাধ্যমে রিঅ্যাক্ট ফ্রন্টএন্ড ড্যাশবোর্ডে সরবরাহ করে।
## আর্কিটেকচার উপাদান
**ইনজেস্টিং ও স্টোরেজ:**
- মিনIO (S3-সামঞ্জস্যপূর্ণ অ্যাক্টব স্টোরেজ) কাঁচা CSV ও প্যারকুট আউটপুট ধারণ করে
- পোস্টগ্রSQL ১৬.৩ সমষ্টিগত KPI ও কোয়েরি-রেডি ফলাফল সংরক্ষণ করে
- রিDIS ৭.৪.১ ক্যাশিং স্তর হিসেবে কাজ করে
- অ্যাপাচি কাফকা ৩.৯ (KRaft মোড) স্ট্রিমিং ডেটার মেসেজ বাস হিসেবে ব্যবহৃত হয়
**প্রসেসিং:**
- অ্যাপাচি স্পার্ক ৩.৫ পাঁচটি পাইস্পার্ক জবের মাধ্যমে ব্যাচ EETL পরিচালনা করে: দৈনিক KPI কম্পিউটেশন, ফানেল অ্যানালিসিস, কার্ট অ্যাবানডনমেন্ট ডিটেকশন, প্রোডাক্ট অ্যাফিনিটি স্কোরিং, ও ম্যাপরিডিউস-এর জন্য ডেটা প্রস্তুতিকরণ
- অ্যাপাচি হ্যাডপুপ ৩.৪.১ (YARN স্ট্রিমিং মোড) দুটি ম্যাপরিডিউস জব চালু করে: বিভাগ অনুযায়ী ইভেন্ট গণনা ও ব্র্যান্ড আয় aggregation
- স্পার্ক স্ট্রাকচার্ড স্ট্রিমিং কাফকা থেকে ডেটা গ্রহণ করে প্রতি ৫ সেকেন্ডে সক্রিয় সেশন aggregation করে পোস্টগ্রSQL-এ আপসার্ট করে
**অর্কেস্ট্রেশন ও API:**
- অ্যাপাচি এয়ারফ্লো ২.৯.৩ সম্পূর্ণ ব্যাচ পাইপলাইনটি DAG হিসেবে অর্কেস্ট্রেট করে
- ফাস্টএপি (asyncpg সহ) ড্যাশবোর্ডের জন্য REST endpoint প্রদান করে
- টেরাফর্ম টেমপ্লেট AWS ও GCP ডিপ্লয়মেন্টের জন্য ব্যবহৃত হয়
**ফ্রন্টএন্ড:**
- React 18.3, TypeScript, Tailwind CSS, Recharts ব্যবহার করে চারটি পেজ রেন্ডার করা হয়েছে:
- Overview: KPI কার্ড ও দৈনিক ট্রেন্ড চার্ট
- Funnel Analysis: ভিউ-টু-কার্ট-টু-পারচেজ ফ্লো ও বিভাগভিত্তিক অ্যাবানডনমেন্ট
- Product Analytics: শীর্ষ প্রোডাক্ট, ব্র্যান্ড ও ক্যাটাগরি
- Live Monitor: Server-Sent Events-এর মাধ্যমে রিয়েল-টাইম সেশন ট্র্যাকিং
## ডেটা পাইপলাইন
1. **ব্যাচ অ্যানালিটিক্স**: মিনIO থেকে কাঁচা CSV পড়ে দৈনিক মাত্রা (ইভেন্ট, ইউজার, আয়, কনভার্সন রেট), শীর্ষ প্রোডাক্ট/ব্র্যান্ড/ক্যাটাগরিগণনা করে PostgreSQL-এ লেখা হয়। আলাদাভাবে বিভাগভিত্তিক ফানেল রেট, কার্ট অ্যাবানডনমেন্ট ও প্রোডাক্ট অ্যাফিনিটি lift score (প্রদর্শনের জন্য ১০% নমুনা) গণনা করা হয়।
2. **ম্যাপরিডিউস**: প্রস্তুতকৃত প্যারকুট ফাইল CSV-তে রূপান্তরিত হয়ে HDFS-এ আপলোড করা হয়, যেখানে হ্যাডপুপ স্ট্রিমিং জব দিয়ে বিভাগ/ইভেন্ট টাইপ অনুযায়ী ইভেন্ট গণনা ও ব্র্যান্ড অনুযায়ী আয় যোগ করা হয়।
3. **লাইভ স্ট্রিমিং**: একা কাফকা প্রোডিউসার CSV কে কনফিগারেবল হারে (ডিফল্ট ২০০ ইভেন্ট/সেকেন্ড) রিপ্লে করে। স্পার্ক স্ট্রিমিং কনজিউমার ৫ সেকেন্ডের মাইক্রো-ব্যাচে সক্রিয় সেশন aggregation করে `live_sessions` টেবিলে সংরক্ষণ করে।
## ডিপ্লয়মেন্ট
মোট ১৩টি সার্ভিস Docker Compose-এর মাধ্যমে চালানো হয়। প্রয়োজনীয়তা: Docker Desktop ≥ ৪.৩০, কমপক্ষে ১৬ GB RAM ও ৩০ GB ডিস্ক স্থান। Windows ব্যবহারকারীদের WSL2-এ কমপক্ষে ১২ GB মেমরি প্রয়োজন। Makefile-এ সার্ভিস চালু, ডেটা আপলোড, পাইপলাইন রান ও টেস্ট চলানোর টার্গেট রয়েছে।
স্টার্টআপের পর অ্যাক্সেস URL: ড্যাশবোর্ড (পোর্ট ৩০০০), FastAPI docs (পোর্ট ৮০০০), Airflow (পোর্ট ৮০৮০), MinIO Console (পোর্ট ৯০০১), Spark Master UI (পোর্ট ৮০৮১), HDFS NameNode (পোর্ট ৯৮৭০), YARN (পোর্ট ৮০৮৮)।
## রিপোজিটরি গঠন
প্রধান ডিরেক্টরি: `spark/jobs/` (পাঁচটি পাইস্পার্ক ব্যাচ স্ক্রিপ্ট), `spark/streaming/` (কাফকা কনজিউমার), `kafka/producer/` (রিপ্লে প্রোডিউসার), `api/` (ফাস্টএপি সার্ভিস), `frontend/` (রিঅ্যাক্ট অ্যাপ্লিকেশন), `hadoop/mapreduce/` (স্ট্রিমিং জব স্ক্রিপ্ট), `airflow/dags/` (অর্কেস্ট্রেশন), `terraform/` (IaC টেমপ্লেট), `docker/` (হ্যাডপুপ ও কাফকা সার্ভিস সংজ্ঞা)।
License: MIT
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.