Repository praktikum Teknologi Big Data yang berfokus pada implementasi streaming processing dan real-time dashboard menggunakan Spark Structured Streaming dan Streamlit.
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.
| Peran | Nama | NIM | Profil GitHub |
|---|---|---|---|
| Pengembang Proyek | M. Kaspul Anwar | 230104040212 | |
| Dosen Pengampu | Muhayat, M. IT | - |
- 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
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| Struktur Project | Generator Transaksi |
![]() |
![]() |
| Spark Streaming | Folder data/serving/stream |
![]() |
![]() |
| Dashboard Realtime | Dashboard Realtime |
![]() |
![]() |
Secara umum, alur kerja pada praktikum ini adalah sebagai berikut:
- Data streaming dibaca secara kontinu.
- Spark Structured Streaming memproses data yang masuk.
- Hasil pemrosesan disimpan ke serving layer.
- Dashboard Streamlit membaca data dari serving layer.
- Insight ditampilkan kepada pengguna secara real-time.
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.
Data yang masuk kemudian diolah untuk menghasilkan metrik atau agregasi tertentu, misalnya:
- Total Revenue
- Top Products
- Category Revenue
- Average Transaction
Hasil olahan disimpan ke direktori serving dalam format yang mudah dibaca ulang oleh dashboard, seperti Parquet.
Dashboard Streamlit mengambil data dari serving layer dan menampilkannya dalam bentuk visual yang interaktif agar insight dapat dipahami dengan cepat.
git clone <url-repository>
cd bigdata-projectJika environment sudah tersedia:
source .venv/bin/activateJika belum ada, buat terlebih dahulu:
python -m venv .venv
source .venv/bin/activatepip install -r requirements.txtUntuk menjalankan pipeline secara lengkap, gunakan 3 terminal yang berjalan secara bersamaan.
spark-submit scripts/streaming_layer.pyTerminal ini bertugas menjalankan proses Spark Structured Streaming untuk membaca dan memproses data streaming secara kontinu.
python3 scripts/transaction_generator.pyTerminal ini digunakan untuk menjalankan generator transaksi yang mensimulasikan aliran data masuk ke pipeline.
python -m streamlit run dashboard/dashboard_streamlit.pyTerminal ini digunakan untuk menjalankan dashboard Streamlit yang akan menampilkan hasil pemrosesan data secara real-time.
Setelah ketiga terminal berjalan, buka browser lalu akses:
http://localhost:8501Setelah 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.





