Rapport Final de Projet

Cours : Data Engineering I (2025-2026)

1. Cas d'Usage et Dataset

L'objectif est d'analyser la sécurité routière aux États-Unis pour aider les autorités de transport (DOT) et les actuaires d'assurance à identifier les zones à haut risque et les tendances temporelles.

Origine et Taille

Problèmes Identifiés

Le dataset présente un fort taux de valeurs nulles dans les colonnes météo et un typage entièrement en String nécessitant un casting explicite.

2. Système et SLOs

Configuration Spark

  • Environnement : Cluster Spark Local Standalone.
  • Stockage : Parquet (Compression Snappy).
  • Config Réseau : SPARK_LOCAL_IP = 127.0.0.1 forcé pour résoudre les erreurs Netty.

Objectifs (SLOs)

  • Ingestion CSV vers Parquet < 1 minute.
  • Aucune donnée avec Date ou État nul dans la couche Gold.
  • Lecture optimisée par partitionnement temporel.

3. Architecture Lakehouse

L'architecture suit le modèle "Medallion".

4. Design Physique et Optimisation

Nous avons comparé deux stratégies de partitionnement :

  1. Par State (Baseline) : Efficace pour le géospatial mais génère trop de petits fichiers ("Small Files").
  2. Par Year (Optimisé) : Active le Partition Pruning pour les requêtes temporelles.

Résultat : Sur une requête filtrant l'année 2021, nous passons de 400ms (lecture de tous les états) à 43ms (lecture ciblée).

5. Travaux Futurs