Projet par Camille Bezet, Brasa Franklin, Kenmogne Loic, Martin Soares Flavio en ING3 IA A.
Pipeline Big Data complet pour l'analyse des courses de taxis jaunes de New York (juin - août 2025, ~9 millions de trajets).
Le rapport détaillé se trouve dans le fichier Rapport.md à la racine du projet.
- Docker Desktop en cours d'exécution
- Java 17 (requis pour Spark 3.5)
- SBT (Scala Build Tool) pour les exercices 1, 2
- Python 3.8+ pour les exercices 4, 5
- uv (gestionnaire d'environnement Python) pour l'exercice 5
Avant de lancer les exercices, démarrer les services de base (Spark, MinIO, PostgreSQL) :
docker compose up -dInterfaces disponibles :
| Service | URL | Identifiants |
|---|---|---|
| MinIO Console | http://localhost:9001 | minio / minio123 |
| Spark Master UI | http://localhost:8081 | - |
| PostgreSQL | localhost:5432 | datawarehouse / datawarehouse123 |
Les exercices doivent être exécutés dans l'ordre (chaque exercice dépend des précédents).
Télécharge les fichiers Parquet depuis NYC Open Data et les stocke dans MinIO (bucket nyc-raw).
cd ex01_data_retrieval
./run_ex01.shPrérequis : Docker + MinIO démarrés, Java 17, SBT
Branche 1 - Nettoyage des données (11 règles de validation) et stockage dans MinIO (nyc-cleaned) :
cd ex02_data_cleaning
./run_ex02.shBranche 2 - Transformation et ingestion dans PostgreSQL (fact_trips) :
cd ex02_data_ingestion
./run_ex02_branch2.shPrérequis : Exercice 1 terminé, exercice 3 terminé (pour la branche 2)
Crée les tables du modèle en flocon (snowflake schema) et insère les données de référence dans PostgreSQL.
cd ex03_sql_table_creation
./run_ex03.shPrérequis : Docker + PostgreSQL démarrés
Lance le tableau de bord interactif Streamlit (KPIs, analyses temporelles, géographiques, financières).
cd ex04_dashboard
./run_ex04.shAccessible sur http://localhost:8501
Prérequis : Exercices 1, 2, 3 terminés, Python 3.8+
Entraîne un modèle Gradient Boosting pour prédire le tarif des courses, puis lance une application Streamlit de démonstration.
cd ex05_ml_prediction_service
# Entraînement + application
./run_ex05.sh
# Entraînement seul
./run_ex05.sh --train-only
# Application seule (modèle déjà entraîné)
./run_ex05.sh --app-only
# Tests unitaires
./run_ex05.sh --testAccessible sur http://localhost:8502
Prérequis : Données de l'exercice 1 disponibles, uv installé
Orchestre l'ensemble du pipeline via Apache Airflow (DAG mensuel).
cd ex06_airflow
# Première utilisation : initialisation
./run_ex06.sh init
# Démarrer les services
./run_ex06.sh start
# Arrêter les services
./run_ex06.sh stop
# Voir le statut
./run_ex06.sh status
# Voir les logs
./run_ex06.sh logsInterface Airflow accessible sur http://localhost:8080 (identifiants : admin / admin)
Prérequis : Docker + Docker Compose
1. docker compose up -d # Infrastructure
2. ./ex01_data_retrieval/run_ex01.sh # Collecte
3. ./ex02_data_cleaning/run_ex02.sh # Nettoyage
4. ./ex03_sql_table_creation/run_ex03.sh # Data Warehouse
5. ./ex02_data_ingestion/run_ex02_branch2.sh # Ingestion
6. ./ex04_dashboard/run_ex04.sh # Dashboard
7. ./ex05_ml_prediction_service/run_ex05.sh # ML
8. ./ex06_airflow/run_ex06.sh init # Orchestration
- Pull Request vers la branch
master - Dépôt du rapport et du code source zippé dans cours.cyu.fr
Date limite de rendu : 7 février 2026