প্রকল্প সম্পর্কে

ই-কমার্স ক্লিকস্ট্রিম অ্যানালিটিক্স প্ল্যাটফর্ম হলো একটি ফুল-স্ট্যাক ডেটা ইঞ্জিনিয়ারিং প্রজেক্ট, যা অক্টোবর–নভেম্বর ২০১৯ সময়কালের কাগেল ডেটাসেট থেকে প্রায় ২৮৫ মিলিয়ন ই-কমার্স ক্লিকস্ট্রিম ইভেন্ট প্রক্রিয়া করে। ## ওভারভিউ এই প্ল্যাটফর্মটি কাঁচা 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