DATA ENGINEERING — Projet open source
Real-Time Streaming Data Platform

Contexte
Les données produites en continu doivent être collectées, contrôlées et rendues exploitables sans perdre la trace des événements invalides. Ce projet utilise les événements utilisateurs fictifs de la Random User API pour démontrer le fonctionnement d’une plateforme de données distribuée, de l’ingestion à l’analyse en temps réel.
Résumé
Conception et développement d’une plateforme de données en temps réel fondée sur une architecture distribuée d’event streaming. Les événements sont collectés, validés et traités en continu. Les données exploitables et les agrégations sont stockées dans un Data Lake compatible S3. Les événements invalides sont conservés séparément pour faciliter leur diagnostic.
Contributions
- Ingestion et contrats de données : Orchestration avec Airflow, publication dans un cluster Kafka à trois brokers, sérialisation Avro et gestion de la compatibilité des schémas avec Schema Registry.
- Traitement et analyse : Validation avec Spark Structured Streaming sur un cluster composé d’un master et de deux workers ; stockage des données valides en Parquet sur MinIO et calcul d’agrégations en continu.
- Fiabilité et exploitation : Mise en quarantaine des événements invalides avec leurs informations de diagnostic, supervision avec Prometheus et Grafana, authentification et ACL Kafka, tests automatisés et contrôles CI avec GitHub Actions.
Résultats
- Pipeline complet : Ingestion, validation, stockage et analyse des événements dans une même plateforme.
- Trois sorties MinIO : Données validées, événements en quarantaine et agrégations analytiques.
- Environnement reproductible : Démonstration locale avec Docker Compose, trois brokers Kafka et un cluster Spark composé d’un master et de deux workers.
Plus-value
- Données plus fiables : Les contrôles de schéma et de qualité distinguent les événements exploitables des données invalides.
- Anomalies traçables : La quarantaine conserve les événements rejetés pour faciliter leur diagnostic.
- Analyses réutilisables : Les données validées et les agrégations stockées en Parquet peuvent alimenter des usages analytiques.
- Exploitation facilitée : Métriques, tableaux de bord et contrôles automatisés rendent le comportement du pipeline plus visible.
Stack technique
Python · Apache Airflow · Apache Kafka · Apache Spark Structured Streaming · Avro · Schema Registry · MinIO · Parquet · Prometheus · Grafana · Docker · pytest · Ruff · GitHub Actions
Format des événements et contrôle qualité
Les événements utilisateurs sont sérialisés en Avro selon un schéma enregistré dans Schema Registry. Spark vérifie ensuite les règles de qualité : champs requis non vides, âge entre 0 et 105 ans et coordonnées géographiques valides. Par exemple, un événement avec age = 34 est accepté si ses autres champs sont valides ; avec age = 145, il est conservé en quarantaine avec le motif age_out_of_range.
