Data Engineering 2

Cours Data Engineering IIData-Intensive Workloads (ESIEE 2025-2026). Pile technique : Apache Spark 4.x (PySpark), Delta Lake, Parquet, GitHub Archive (Track B), Kafka, Airflow, FastAPI, Next.js.

Pour le correcteur — cette page donne un aperçu de chaque rendu avant d’ouvrir le détail. Chaque carte ci-dessous résume l’objectif du lab, les livrables et pointe vers le notebook ainsi que les preuves d’exécution.

Aperçu des labs

LabSujetPracticeAssignment
0Setup Spark + environnementSetup practice
1Streaming structuré + watermarkPracticeAssignment
2Traitement de texte (Inverted Index)PracticeAssignment
3Charge itérative (Graphe / PageRank)PracticeAssignment

Lab 0 — Setup practice

Mise en place de l’environnement local : Spark 4.x en local[*], Python 3.10, écriture/lecture Parquet, premier notebook de vérification. → Ouvrir le lab 0

Lab 1 — Streaming Pipeline (Track B)

Pipeline Spark Structured Streaming sur GitHub Archive : fenêtre 1 h, watermark 15 min, agrégations count / countDistinct / sum, sink Parquet. Comparaison baseline vs optimisé (repartition par event_type + repo_name) avec plans d’exécution EXPLAIN FORMATTED et lab1_metrics_log.csv. → Voir l’assignment 1

Lab 2 — Inverted Index (Texte)

Construction d’un index inversé à partir d’événements GitHub (PushEvent, IssuesEvent…) : tokenisation, stop-words, agrégation token → [doc_ids]. Comparaison Parquet vs CSV sur la latence de lookup et l’empreinte disque, plans plan_index_build.txt et plan_query.txt. → Voir l’assignment 2

Lab 3 — Charge itérative

Algorithme itératif distribué (graphe PageRank / connected components) avec mesure des coûts de shuffle par itération, analyse de convergence et expérience de partitionnement. Sert de base au volet « graphe » du projet final. → Voir l’assignment 3


Projet final — Pipeline GitHub Archive de bout en bout

Track B — GitHub Archive : pipeline data-intensive complet, du JSON brut horaire jusqu’à un dashboard temps réel déployé.

🎥 Vidéo de démonstration

Regarder la démo complète sur SharePoint ESIEE Vue d’ensemble du pipeline et démonstration du dashboard en action.

Démo en ligne

▶ Dashboard live : https://de2-dashboard-e2e.pages.dev/ Frontend Next.js déployé sur Cloudflare Pages, branché sur l’API analytics FastAPI du pipeline. Captures dans la galerie de preuves.

Ce que contient le projet

  1. Architecture Medallion (Bronze / Silver / Gold) Ingestion JSON brut → schéma aplati avec sélection précoce des colonnes (évite l’OutOfMemoryError sur le payload imbriqué) → table analytique repo_activity partitionnée par date.
  2. Streaming fichier FileStreamSource avec maxFilesPerTrigger=1, fenêtre 5 min, watermark 10 min, sink Parquet en mode append.
  3. Traitement de texte Index inversé sur les messages de commit (PushEvent) avec normalisation, stop-words et lookup ≤ 2 s par terme.
  4. Charge itérative — PageRank Graphe bipartite actor_login → repo_name (contributions Push/PR/Issues), PageRank par jointures distribuées (damping = 0.85), expérience de partitionnement par hash pour réduire les Exchange, courbe de convergence.
  5. LLM-readiness Corpus filtré (longueur ≥ 50, déduplication par xxhash64) prêt pour fine-tuning ou RAG, documenté dans la Data Card.
  6. Extension Plateforme E2E (v2) — au-delà du périmètre noté Kafka (ingestion event-driven) + Airflow (orchestration des DAGs Bronze/Silver/Gold) + FastAPI (API analytics DuckDB) + Next.js (dashboard temps réel). Le tout orchestré via Docker Compose et déployable en production.

Deux faces, deux entrées

Sommaire détaillé du projet

  1. Rapport final — la version notée
  2. Plateforme E2E (extension v2)
  3. Data Card — qualité des données pour l’IA
  4. Déclaration d’utilisation de l’IA
  5. Code source du notebook PySpark
  6. Preuves d’exécution — dashboard, Spark UI, plans, PageRank

Ouvrir la page du projet final


Support

Setup et troubleshooting — installation, problèmes courants, environnement.

Roadmap officielle : roadmap-labs-project-DE2-FR.pdf (racine du dossier)

9 éléments sous ce dossier.