Logo Lanfrica

kainwangroger/Togo-Data-Lab-Project

Domain:

digital infrastructure
Creator:
kai
Host:
Projet de Data Engineering comportant ETL et Big data avec Pyspark et Mongodb # Togo Data Lab - Projet Data Engineering Projet de formation en **Data Engineering** réalisé dans le cadre du **Togo Data Lab**. Comporte deux pipelines de données complets, conteneurisés avec Docker. ## Exercice 1 : Pipeline ETL (Sécurité Routière) Pipeline ELT pour l'analyse des accidents de la route au Togo. **Stack** : Python (Pandas), PostgreSQL 15, Docker Compose **Pipeline** : 1. Chargement du CSV `accidents_raw.csv` (10 000 entrées) 2. Nettoyage : suppression des dates invalides, normalisation de la colonne alcool 3. Enrichissement : extraction année/mois/heure 4. Stockage dans PostgreSQL (table `accidents_clean`) 5. Vue analytique `accidents_monthly_stats` (total accidents + taux alcool par mois) ```bash cd exercice_1_etl docker compose up --build ``` ## Exercice 2 : Pipeline Big Data (Services Publics) Pipeline Big Data suivant l'architecture **Medallion (Bronze/Silver/Gold)** pour analyser les demandes de services publics au Togo. **Stack** : MongoDB, Apache Spark 3.5, PostgreSQL 15, Docker Compose **Architecture** : - **Bronze** : Stockage brut des JSON dans MongoDB - **Silver** : Nettoyage PySpark, harmonisation des dates, extraction des coordonnées GPS - **Gold** : Agrégations (KPIs par région/type/statut) dans PostgreSQL ```bash cd exercice_2_big_data docker compose up --build -d docker exec spark_engine python3 /opt/spark/scripts/mongo_setup.py docker exec spark_engine spark-submit --packages org.mongodb.spark:mongo-spark-connector_2.12:3.0.1,org.postgresql:postgresql:42.5.0 /opt/spark/scripts/spark_pipeline.py ``` ## Structure du Projet ``` ├── exercice_1_etl/ # Pipeline ETL (Pandas + PostgreSQL) │ ├── Dockerfile │ ├── docker-compose.yml │ ├── scripts/main.py # Script d'ingestion │ ├── scripts/init_db.sql # Init table + vue │ ├── data/accidents_raw.csv │ └── readme.md ├── exercice_2_big_data/ # Pipeline Big Data (MongoDB + PySpark + PostgreSQL) │ ├── Dockerfile │ ├── docker-compose.yml │ ├── scr …