Proyek ini adalah sebuah pipeline data end-to-end mini yang dibangun untuk mensimulasikan alur kerja seorang Data Engineer. Pipeline ini melakukan proses ETL (Extract, Transform, Load), dilanjutkan dengan Analisis dan Visualisasi data inspeksi restoran di New York City.
Seluruh lingkungan, mulai dari aplikasi Python hingga database, diorkestrasi menggunakan Docker dan Docker Compose untuk memastikan portabilitas dan konsistensi.
- Bahasa Pemrograman: 🐍 Python
- Library Pengolahan Data: 🐼 Pandas
- Database: 🐘 PostgreSQL
- Konektor Database: 🧪 SQLAlchemy & Psycopg2
- Visualisasi Data: 📊 Matplotlib
- Kontainerisasi: 🐳 Docker & Docker Compose
- Base Image: Jupyter/Scipy-Notebook (menyediakan lingkungan sains data yang kaya)
Pipeline ini mengikuti alur kerja yang sederhana namun logis:
- Extract: Skrip Python membaca data mentah dari file
nyc_restaurant_data.jsonyang tersimpan secara lokal. - Transform: Data dibersihkan, diformat, dan diubah tipe datanya menggunakan Pandas untuk memastikan kualitas dan konsistensi.
- Load: DataFrame yang sudah bersih kemudian dimuat ke dalam tabel di database PostgreSQL yang berjalan di dalam sebuah container Docker.
- Analyze: Skrip menjalankan query SQL terhadap database untuk mengekstrak wawasan, seperti 5 jenis masakan paling populer di kota New York.
- Visualize: Hasil analisis kemudian divisualisasikan menjadi sebuah grafik batang menggunakan Matplotlib dan disimpan sebagai file
.png.
Untuk menjalankan proyek ini di mesin Anda, ikuti langkah-langkah berikut.
- Pastikan Anda sudah menginstal Git.
- Pastikan Anda sudah menginstal Docker Desktop dan dalam keadaan berjalan.
-
Clone repositori ini:
git clone [URL_REPOSITORI_ANDA] cd nyc-restaurant-etl-pipeline -
Bangun dan Jalankan Container Docker: Buka terminal di direktori utama dan jalankan perintah berikut. Perintah ini akan membangun image aplikasi, menarik image Postgres & Adminer, dan menjalankan semua service di latar belakang.
docker compose up -d --build
-
Verifikasi Container: Pastikan semua container berjalan dengan baik. Anda akan melihat tiga service (
app,db,adminer) dalam status "Up" atau "healthy".docker compose ps
Untuk mengeksekusi pipeline, jalankan perintah berikut di terminal:
docker compose exec app python main.pyMade with ☕ for data engineering.