TD1 - ETL des données de fréquentation IDFM sur GCS et BigQuery

En binôme - À rendre le 1er novembre 2026

1. Objectif

Construire sur GCP un pipeline pour étudier la fréquentation du réseau ferré francilien à partir de quatre sources :

Les données préparées doivent couvrir au moins trois années civiles complètes, par exemple 2023-2025. Les éventuelles lacunes doivent être identifiées et documentées.

Votre modèle de données doit répondre aux besoins de trois publics :

Public Besoin
Data Scientist Préparer un modèle de prévision grâce à l’historique des validations et à des variables explicatives : calendrier, météo, validations passées, moyennes glissantes.
Data Analyst Calculer des KPI pour un tableau de bord : évolution des validations, fréquentation par zone, répartition par catégorie de titre et comparaison selon les jours.
Agent IA Interroger des données documentées pour répondre aux questions métier sur la fréquentation, son évolution et les périodes couvertes.

Le travail demandé porte sur la préparation des données. L’entraînement d’un modèle ML, la création d’un tableau de bord et le développement d’un agent IA sont hors périmètre.

2. Collecter les données - Bronze dans Cloud Storage

Récupérer les sources et stocker les fichiers bruts dans un bucket GCS.

Organiser les fichiers par source et par période. Conserver leur provenance afin de pouvoir retrouver les données utilisées et relancer le traitement.

Un snapshot Bronze est conservé : une relance réutilise le fichier déjà collecté. Pour actualiser une source, créer un nouveau snapshot sous un nouveau chemin. Enregistrer l’URL, les paramètres, l’horodatage de collecte et une empreinte du fichier (par exemple SHA-256).

Les sources sont présentées dans la page Données sources.

3. Préparer les données - Silver dans BigQuery

Après exploration des sources, définir explicitement le schéma de chaque table Silver avant son chargement.

Pour chaque colonne, préciser :

  • son nom ;
  • son type ;
  • ses contraintes (unicité, valeur obligatoire, etc.) ;
  • une courte description.

Les tables Silver finales doivent avoir un schéma défini explicitement. Une table intermédiaire peut reprendre le schéma embarqué d’un fichier Parquet. Elle sert à explorer et préparer les données ; elle ne remplace pas la définition du schéma final. Pour les CSV et JSON, définir aussi le schéma de chargement.

Charger chaque source dans une table de chargement, puis créer la table Silver avec son schéma explicite et l’alimenter par une requête SQL. À chaque relance, remplacer le contenu des tables au lieu d’ajouter les mêmes lignes. Afficher ensuite les contrôles et commenter les résultats.

L’unicité et les relations entre clés doivent être vérifiées par des contrôles : une description de colonne ou une clé déclarée dans BigQuery ne suffit pas.

Examiner et traiter les formats, les valeurs manquantes ou invalides, les doublons et les différences entre fichiers. Vérifier la couverture des dates et des zones ainsi que les possibilités de jointure entre sources.

Justifier les transformations appliquées aux données : corrections, filtrages, agrégations, conservations ou exclusions.

4. Concevoir le modèle cible - Gold dans BigQuery

Construire un modèle adapté aux trois publics. Plusieurs tables ou vues peuvent être proposées à partir d’un socle commun.

Pour chaque table ou vue, préciser :

  • son rôle et sa granularité : ce que représente une ligne ;
  • ses colonnes, ses clés et ses relations ;
  • ses mesures et leurs règles d’agrégation.

Documenter les tables et les colonnes : définitions métier, unités, périodes couvertes, règles de jointure et limites connues. Cette documentation permet notamment à un agent IA d’interpréter les résultats sans inventer leur sens.

5. Vérifier et démontrer

Réaliser des contrôles sur :

  • la conformité aux schémas ;
  • l’unicité des clés ;
  • les dates couvertes et les valeurs manquantes ;
  • la cohérence des mesures ;
  • les résultats des jointures.

Pour chaque jointure, préciser les clés et la cardinalité attendue. Présenter le nombre de lignes et les totaux de validations avant et après enrichissement, ainsi que le taux de non-correspondance en lignes et en volume de validations. Justifier toute variation de volume. Vérifier que les tables utilisées pour enrichir les validations ont une seule ligne par clé de jointure, afin de ne pas multiplier les lignes ni les totaux de validations.

Présenter deux exemples d’exploitation obligatoires :

  1. Un calcul de variables pour le Data Scientist.
  2. Une requête de KPI pour le Data Analyst.

Une requête répondant à une question métier pour l’agent IA est optionnelle. Pour chaque exemple présenté, expliquer la question, fournir la requête ou le calcul, afficher le résultat et en commenter les limites.

Le traitement doit être rejouable : à sources et paramètres identiques, une relance doit produire les mêmes données, sans doublons supplémentaires.

L’exécution est manuelle, depuis le notebook. L’orchestration et la planification sont hors périmètre.

6. Livrables

Un notebook

Présenter la collecte, les schémas Silver, les transformations, l’alimentation des couches Bronze/Silver/Gold, les contrôles et les exemples d’exploitation (dont celui de l’agent IA, optionnel).

Rendre le fichier .ipynb avec ses résultats de contrôles et d’exploitation visibles, les paramètres nécessaires et les instructions pour une exécution depuis un environnement neuf. Un lien Colab peut compléter ce fichier.

Un rapport PDF

Viser 6 à 10 pages hors annexes. Identifier les deux membres du binôme dans le rapport et le notebook. Remettre ensemble les deux fichiers, nommés TD1_Nom1_Nom2.ipynb et TD1_Nom1_Nom2.pdf, pour le 1er novembre 2026.

Inclure :

  • Le modèle Gold : tables ou vues, granularités, clés, relations et mesures.
  • Les transformations par source : traitements, justifications et conséquences.
  • Une note de fiabilité sur 10 par table Gold, argumentée à partir de vos observations : qualité, couverture, limites et adéquation aux besoins.
  • Les vérifications réalisées : résultats, anomalies détectées et problèmes restants.
  • L’usage de l’IA : parties concernées, manière de l’utiliser, évaluation des résultats et corrections apportées.
  • Ce que vous avez appris pendant le TD.

7. Évaluation

Le notebook et le rapport sont évalués ensemble, sur 20 points.

Critère Points Attendu pour obtenir tous les points
Qualité des données 5 Schémas explicites, traitements justifiés sur les quatre sources et limites documentées.
Utilité des données 4 Granularités, clés et agrégations cohérentes ; deux exemples obligatoires exploitables ; documentation pour les trois publics.
Vérifications 4 Contrôles des clés, valeurs, dates et jointures ; résultats chiffrés ; anomalies traitées ou justifiées ; notes de fiabilité argumentées.
Qualité du code 2 Code lisible, structuré et exécutable dans l’ordre avec les paramètres indiqués.
Bonnes pratiques 3 Couches organisées, provenance conservée, snapshots Bronze préservés, erreurs gérées et livrables documentés.
Rejouabilité 2 Seconde exécution démontrée, contenu identique sans doublons supplémentaires.