منصوبے کے بارے میں

یہ پروجیکٹ ایک مکمل Dockeriz شدہ، مقامی حقیقی وقت کے اسٹریمنگ تجزیاتی پایپ لائن مہیا کرتا ہے جو Spark Structured Streaming کے تصورات کو ظاہر کرتی ہے بغیر کسی کلاؤڈ اکاؤنٹ کی ضرورت کے۔ ## یہ کیا کرتا ہے ایک Python پروڈیوسر Redpanda موضوع میں بھیجے جانے والے clickstream واقعات کی نقل تیار کرتا ہے (Kafka سے ہم آہنگ)، اور ایک PySpark Structured Streaming جاب ان واقعات کو وصول کرتی ہے، واٹر مارکنگ کے ساتھ 1 منٹ کے tumbling ونڈو اِعتبارات لاگو کرتی ہے، اور نتائج کو کنسول یا Parquet فائلوں میں لکھتی ہے۔ ## تعمیر - **Python پروڈیوسر**: URL اور ٹائمسٹیمپ ڈیٹا سمیت مشابہ clickstream JSON واقعات پیدا کرتا ہے - **Redpanda**: Docker میں چلنے والا Kafka سے ہم آہنگ بریکر، Zookeeper کی ضرورت نہیں - **PySpark Structured Streaming**: Kafka سے ایک غیر محدود DataFrame کے طور پر پڑھتا ہے، واضح schema کے ساتھ JSON کو پارس کرتا ہے، event-time ونڈونگ کو واٹر مارکنگ کے ساتھ لاگو کرتا ہے، اور ہر URL کے لیے ونڈو فی page-view گنتی کو جمع کرتا ہے ## اہم تصورات - Spark Structured Streaming کے ساتھ Kafka موضوع کو غیر محدود DataFrame کے طور پر پڑھنا - schema-on-read کے ساتھ JSON event پیLOADS کو پارس کرنا - واٹر مارکنگ کے ساتھ event-time ونڈونگ (1 منٹ کے tumbling ونڈوز) بعد آنے والے واقعات کو سنبھالنے کے لیے - URL فی page views کا مسلسل micro-batch aggregation - سیکھنے کے لیے کنسول میں output، بمقام ذخیرہ کے لیے Parquet sink اختیار ## پروجیکٹ ڈھانچہ ``` streaming-pipeline-kafka-spark/ ├── docker-compose.yml # Redpanda + Spark containers ├── producer/ │ └── click_event_producer.py # simulated clickstream producer ├── spark_app/ │ └── streaming_aggregation.py # Structured Streaming job └── requirements.txt ``` ## شروع کرنے کا طریقہ ```bash git clone https://github.com/Kornelius99/streaming-pipeline-kafka-spark.git cd streaming-pipeline-kafka-spark docker-compose up -d # Terminal 1: events پیدا کرنا شروع کریں python producer/click_event_producer.py # Terminal 2: Spark Streaming جاب چلائیں docker-compose exec spark spark-submit \ --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.5.1 \ /opt/spark_app/streaming_aggregation.py ``` نتائج 1 منٹ کے ونڈو فی page-view گنتی کے طور پر کنسول پر ظاہر ہوتے ہیں، نئے واقعات آنے کے ساتھ اپڈیٹ ہوتے رہتے ہیں۔ ## Redpanda کیوں Redpanda Kafka پروٹوکول بولتا ہے لہذا موجودہ Kafka client code بغیر تبدیل کے کام کرتا ہے، لیکن یہ Zookeeper کی انحصار کے بغیر ایک سنگل container میں آتا ہے، جو docker-compose کو سیکھنے کے مقاصد کے لیے سادہ رکھتا ہے۔ ## لائسنس MIT