Skip to content

aDJi2003/nyc-restaurant-etl-pipeline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NYC Restaurant Inspection - ETL & Analysis Pipeline

Python Version Docker Postgres

📝 Deskripsi Proyek

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.


🛠️ Tumpukan Teknologi (Tech Stack)

  • 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)

🏗️ Arsitektur Pipeline

Pipeline ini mengikuti alur kerja yang sederhana namun logis:

  1. Extract: Skrip Python membaca data mentah dari file nyc_restaurant_data.json yang tersimpan secara lokal.
  2. Transform: Data dibersihkan, diformat, dan diubah tipe datanya menggunakan Pandas untuk memastikan kualitas dan konsistensi.
  3. Load: DataFrame yang sudah bersih kemudian dimuat ke dalam tabel di database PostgreSQL yang berjalan di dalam sebuah container Docker.
  4. Analyze: Skrip menjalankan query SQL terhadap database untuk mengekstrak wawasan, seperti 5 jenis masakan paling populer di kota New York.
  5. Visualize: Hasil analisis kemudian divisualisasikan menjadi sebuah grafik batang menggunakan Matplotlib dan disimpan sebagai file .png.

🚀 Cara Menjalankan Proyek

Untuk menjalankan proyek ini di mesin Anda, ikuti langkah-langkah berikut.

Prasyarat

  • Pastikan Anda sudah menginstal Git.
  • Pastikan Anda sudah menginstal Docker Desktop dan dalam keadaan berjalan.

Langkah-langkah Instalasi

  1. Clone repositori ini:

    git clone [URL_REPOSITORI_ANDA]
    cd nyc-restaurant-etl-pipeline
  2. 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
  3. Verifikasi Container: Pastikan semua container berjalan dengan baik. Anda akan melihat tiga service (app, db, adminer) dalam status "Up" atau "healthy".

    docker compose ps

Menjalankan Skrip ETL & Analisis

Untuk mengeksekusi pipeline, jalankan perintah berikut di terminal:

docker compose exec app python main.py

❤️ Closing Note

Made with ☕ for data engineering.

About

A simple end-to-end ETL and data analysis pipeline for NYC restaurant inspection data. Built with Docker, Python (Pandas), and PostgreSQL to automate data ingestion, cleaning, database loading, and visual analysis.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors