Skip to content

mkaspulanwar/p4_bigdata_streaming_processing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PRAKTIKUM 4 - STREAMING PROCESSING & REAL - TIME DASHBOARD

Repository praktikum Teknologi Big Data yang berfokus pada implementasi streaming processing dan real-time dashboard menggunakan Spark Structured Streaming dan Streamlit.


Overview

Praktikum ini bertujuan untuk membangun alur pemrosesan data modern berbasis Big Data dengan pendekatan streaming. Data diproses secara berkelanjutan menggunakan Spark Structured Streaming, kemudian disimpan ke layer penyajian dalam format Parquet, dan akhirnya divisualisasikan melalui dashboard real-time menggunakan Streamlit.

Repository ini menunjukkan bagaimana sebuah pipeline data sederhana dapat digunakan untuk:

  • membaca aliran data secara kontinu,
  • melakukan pemrosesan streaming,
  • menyimpan hasil ke serving layer,
  • dan menampilkan insight secara interaktif melalui dashboard.

Dengan kata lain, praktikum ini mensimulasikan workflow dasar yang umum digunakan pada sistem analitik modern.


Tim Developer

Peran Nama NIM Profil GitHub
Pengembang Proyek M. Kaspul Anwar 230104040212
Dosen Pengampu Muhayat, M. IT -

Key Features

  • Streaming Processing dengan Spark Structured Streaming
  • Real-Time Analytics Dashboard menggunakan Streamlit
  • Serving Layer berbasis file output terstruktur
  • Data Storage menggunakan format Parquet
  • Visualisasi Interaktif untuk insight data secara langsung
  • Pipeline Sederhana namun Relevan untuk memahami alur kerja Big Data end-to-end

Project Structure

bigdata-project/
├── .venv/                        # Virtual environment
├── dashboard/                    # Dashboard application
│   └── dashboard_streamlit.py    # Streamlit dashboard for real-time monitoring
├── data/
│   ├── clean/                    # Cleaned data
│   ├── curated/                  # Curated/processed datasets
│   ├── raw/                      # Raw input data
│   ├── serving/                  # Output data for dashboard consumption
│   │   ├── avg_transaction/      # Average transaction results
│   │   ├── category_revenue/     # Revenue by category
│   │   ├── stream/               # Streaming output data
│   │   ├── top_products/         # Top-selling products
│   │   └── total_revenue/        # Total revenue metrics
│   └── ecommerce_raw.csv         # Main raw dataset
├── logs/
│   ├── stream_checkpoint/              # Streaming checkpoint files
│   └── batch_pipeline.log              # Log file for batch pipeline
├── screenshots/                        # Project screenshots for documentation
├── scripts/
│   ├── analytics_layer.py              # Analytics and aggregation logic
│   ├── batch_pipeline_enterprise.py    # Batch processing pipeline
│   ├── streaming_layer.py              # Streaming ingestion and processing
│   └── transaction_generator.py        # Transaction data generator
├── stream_data/                        # Streaming input simulation data
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
└── README.md

Bukti Screenshots

Struktur Project Generator Transaksi
Spark Streaming Folder data/serving/stream
Dashboard Realtime Dashboard Realtime

Workflow Architecture

Secara umum, alur kerja pada praktikum ini adalah sebagai berikut:

  1. Data streaming dibaca secara kontinu.
  2. Spark Structured Streaming memproses data yang masuk.
  3. Hasil pemrosesan disimpan ke serving layer.
  4. Dashboard Streamlit membaca data dari serving layer.
  5. Insight ditampilkan kepada pengguna secara real-time.

How It Works

1. Streaming Layer

Layer ini bertugas menangani data yang masuk secara terus-menerus. Dalam praktikum ini, Spark Structured Streaming digunakan untuk membaca dan memproses data streaming secara efisien.

2. Processing Layer

Data yang masuk kemudian diolah untuk menghasilkan metrik atau agregasi tertentu, misalnya:

  • Total Revenue
  • Top Products
  • Category Revenue
  • Average Transaction

3. Serving Layer

Hasil olahan disimpan ke direktori serving dalam format yang mudah dibaca ulang oleh dashboard, seperti Parquet.

4. Visualization Layer

Dashboard Streamlit mengambil data dari serving layer dan menampilkannya dalam bentuk visual yang interaktif agar insight dapat dipahami dengan cepat.

Installation

1. Clone Repository

git clone <url-repository>
cd bigdata-project

2. Aktifkan Virtual Environment

Jika environment sudah tersedia:

source .venv/bin/activate

Jika belum ada, buat terlebih dahulu:

python -m venv .venv
source .venv/bin/activate

3. Install Dependencies

pip install -r requirements.txt

Running the Project

Menjalankan Pipeline

Untuk menjalankan pipeline secara lengkap, gunakan 3 terminal yang berjalan secara bersamaan.

Terminal 1 — Spark Streaming

spark-submit scripts/streaming_layer.py

Terminal ini bertugas menjalankan proses Spark Structured Streaming untuk membaca dan memproses data streaming secara kontinu.

Terminal 2 — Transaction Generator

python3 scripts/transaction_generator.py

Terminal ini digunakan untuk menjalankan generator transaksi yang mensimulasikan aliran data masuk ke pipeline.

Terminal 3 — Dashboard

python -m streamlit run dashboard/dashboard_streamlit.py

Terminal ini digunakan untuk menjalankan dashboard Streamlit yang akan menampilkan hasil pemrosesan data secara real-time.

Membuka Dashboard

Setelah ketiga terminal berjalan, buka browser lalu akses:

http://localhost:8501

Expected Output

Setelah pipeline berhasil dijalankan, beberapa output yang diharapkan akan terbentuk di dalam direktori serving layer, antara lain:

data/serving/total_revenue/
data/serving/top_products/
data/serving/category_revenue/
data/serving/avg_transaction/

Selain itu, dashboard Streamlit akan menampilkan visualisasi real-time berdasarkan data terbaru yang tersedia dari hasil pipeline streaming.

About

Praktikum 4: Implementasi streaming processing dan real-time dashboard untuk menganalisis aliran data secara langsung menggunakan Spark Structured Streaming dan Streamlit.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages