Loading repository data…
Loading repository data…
mnassrib / repository
Create a complete ETL pipeline using Docker, working with SuperStore sales data. Clean raw data with Python, model a relational database in MySQL, and analyze the data using Jupyter Notebook. This project guides you through traditional ETL steps, from data cleaning to database loading and analysis.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Ce projet a pour objectif de vous initier à la création d'un pipeline ETL (Extract, Transform, Load) classique en utilisant Docker pour l'intégration et le traitement de données. Vous travaillerez avec des données de ventes issues d'un supermarché fictif appelé SuperStore. Le projet vous guidera à travers les étapes de nettoyage des données, de modélisation d'une base de données relationnelle, et de configuration d'un environnement complet pour le traitement des données.
Note : Ce projet présente une approche classique du processus ETL. Pour un pipeline ETL plus automatisé et sophistiqué, utilisant des outils comme Apache Airflow, veuillez consulter mes autres projets.
Le projet est structuré de la manière suivante :
superstore-etl-docker-project/
├── docker-compose.yml
├── .env
├── cleaner/
│ ├── Dockerfile
│ └── requirements.txt
├── jupyter/
│ ├── Dockerfile
│ └── requirements.txt
├── notebooks/
│ └── analysis.ipynb
└── mysql/
├── data/
│ └── SuperStoreRawData.csv
└── init.sql
docker-compose.yml : Fichier de configuration Docker Compose pour orchestrer les différents services nécessaires au projet.cleaner/ : Contient le script Python (clean_data.py) pour nettoyer les données et le Dockerfile associé pour créer l'image Docker.jupyter/ : Contient le Dockerfile et les dépendances pour le service Jupyter Notebook.notebooks/ : Contient le notebook Jupyter (analysis.ipynb) pour analyser les données après leur importation dans MySQL.mysql/ : Contient les données brutes (SuperStoreRawData.csv) et le script SQL (init.sql) pour créer et initialiser la base de données MySQL.Le fichier SuperStoreRawData.csv contient des problèmes courants tels que des valeurs manquantes, des duplicata, des valeurs aberrantes, et des formats de données incohérents. Vous devez nettoyer ces données avant de les charger dans la base de données.
clean_data.py dans le dossier est utilisé pour effectuer le nettoyage des données. Il est exécuté dans un conteneur Docker défini dans .cleaner/docker-compose.ymlUne fois les données nettoyées, vous devez modéliser une base de données relationnelle dans MySQL :
Le script init.sql dans le dossier mysql/ est utilisé pour :
Le fichier docker-compose.yml définit les services nécessaires pour exécuter ce projet :
Une fois les données chargées dans MySQL, vous pouvez utiliser Jupyter Notebook pour effectuer des analyses supplémentaires :
analysis.ipynb pour vous connecter à la base de données MySQL et exécuter des requêtes SQL.Cloner le dépôt :
git clone https://github.com/mnassrib/superstore-etl-docker-project.git
cd superstore-etl-docker-project
Construire et démarrer les conteneurs Docker :
docker-compose up --build
http://localhost:8080 pour gérer la base de données MySQL.http://localhost:8887 pour l'analyse des données.Analyser les données :
http://localhost:8887.analysis.ipynb et commencez vos analyses.Ce projet est une excellente introduction à la mise en place d'un pipeline ETL classique. Pour aller plus loin et explorer des solutions ETL plus avancées et automatisées, n'hésitez pas à consulter mes autres projets.