Pipeline ETL v1.0.0

Description

Dans le cadre de ma formation à l'EPSI Paris, nous avons été amenés à travailler sur un pipeline ETL (Extract, Transform, Load) conçu pour extraire des données de sources variées, les transformer en un format exploitable, et les charger dans une base de données pour analyse. Ce projet se concentre sur l'analyse des données COVID-19 et MPOX.

💡 Analyse et Choix Techniques

Nous avons choisi d'utiliser les données COVID-19 en raison de leur structure bien définie et de leur couverture mondiale, ce qui est essentiel pour notre modÚle d'intelligence artificielle.

Stack Technique

  • Python pour ETL
  • PostgreSQL pour la base de donnĂ©es
  • Gestion de version avec GitHub
  • SQLAlchemy pour l'ORM
  • pandas pour la manipulation des donnĂ©es
  • github action pour l'aoĂ»t de l'automatisation des tests

Modélisation des Données

Le modÚle de données comprend trois tables principales : pays, maladie, et situation_pandemique. Ces tables sont conçues pour capturer les relations entre les pays, les maladies, et les situations pandémiques.

Défis Techniques Rencontrés

Lors de la mise en place du pipeline ETL, plusieurs défis ont été rencontrés, notamment la gestion des données manquantes et l'optimisation des performances de la base de données.

Solutions Apportées

L'utilisation de bibliothĂšques Python puissantes comme pandas et NumPy a permis de surmonter ces dĂ©fis. De plus, l'optimisation des requĂȘtes SQL et l'utilisation d'index ont amĂ©liorĂ© les performances.

Autres ProblĂšmes et Solutions
  • ProblĂšme : DifficultĂ© Ă  suivre les erreurs et les avertissements pendant l'exĂ©cution.
    • Solution : Mise en place d'un systĂšme de logs dĂ©taillĂ© pour capturer les erreurs et les Ă©vĂ©nements importants. Utilisation de la bibliothĂšque python-json-logger pour structurer les logs.
  • ProblĂšme : DĂ©bogage complexe des erreurs dans le code.
    • Solution : Utilisation de points d'arrĂȘt (breakpoints) et de l'outil de dĂ©bogage intĂ©grĂ© Ă  l'IDE pour inspecter les variables et le flux d'exĂ©cution.
  • ProblĂšme : IncompatibilitĂ© des versions de Python entre les environnements de dĂ©veloppement et de production.
    • Solution : Utilisation de pyenv pour gĂ©rer les versions de Python et s'assurer que tous les environnements utilisent la mĂȘme version.
  • ProblĂšme : Manque de documentation pour les nouveaux dĂ©veloppeurs.
    • Solution : CrĂ©ation d'une documentation complĂšte avec des exemples de code et des instructions dĂ©taillĂ©es. Utilisation de Sphinx pour gĂ©nĂ©rer une documentation lisible et bien structurĂ©e.

Processus de DĂ©veloppement

  1. Création et initialisation du dépÎt GitHub
  2. Configuration de l'environnement virtuel
  3. Début du développement avec une architecture modulaire
DĂ©tails du Projet

Status: En cours

Date: Janvier 2025

Type: Pipeline ETL

Catégorie: Data Engineering

RĂ©gion cible: Global

Points Forts
  • ✅ Architecture modulaire
  • ✅ SĂ©curitĂ© des donnĂ©es
  • ✅ Automatisation des processus
  • ✅ QualitĂ© du code
Technologies Utilisées
  • Python
  • PostgreSQL
  • GitHub
  • SQLAlchemy
  • pandas