Skip to content

MediaComem/comem-infradon

Repository files navigation

Infrastructure de Données (InfraDon)

License: CC BY 4.0

Cours Infrastructure de Données de la filière Ingénierie des Médias, HEIG-VD.

Ce document est mis à jour au fur et à mesure du semestre avec les informations du cours, les jalons du projet et les ressources.


Objectifs

  • Comprendre les enjeux liés à l'infrastructure de données : concurrence, performance, sécurité, durabilité
  • Savoir importer, nettoyer et transformer des données brutes en une base exploitable.
  • Comparer les différentes structures de données et choisir la plus adaptée à un besoin donné
  • Concevoir et mettre en oeuvre des pipelines de transformation de données (ETL/ELT)
  • Sécuriser, optimiser et automatiser une infrastructure de données
  • Porter un regard critique sur les dimensions éthiques et environnementales des systèmes de données

Outils

Outil Usage
PostgreSQL + PostGIS SGBD principal
Docker Conteneurisation de l'environnement
dbt Transformation et pipelines de données
Git / GitHub Versioning du projet

Un fichier docker-compose.yml est fourni pour démarrer PostgreSQL + PostGIS.


Cours

# Module Contenu
01 Introduction Présentation du cours, outils, projet fil rouge
02 Fondamentaux des bases de données CRUD, ACID, OLAP vs OLTP, vues, vues matérialisées
03 Import et nettoyage des données Import Excel vers PostgreSQL, staging, CAST, TRIM, COALESCE, regexp_replace, dédoublonnage
04 Transactions et concurrence Niveaux d'isolation, verrous, deadlocks
05 Optimisation et indexation EXPLAIN ANALYZE, types d'index (B-tree, GIN, GiST), vues matérialisées
06 Sécurité, rôles et sauvegarde GRANT/REVOKE, Row-Level Security, pg_dump/pg_restore, stratégies de backup
07 Structures de données Relationnel vs NoSQL (document, key-value, colonnes, graph), stockage médias, cas concrets (Instagram, TikTok, Spotify)
08 Flux de données et data engineering ETL vs ELT, triggers, CDC, dbt (models, sources, tests, seeds), workflows de transformation
09 Architectures modernes Data mesh, architecture medallion, lakehouse, RAG, systèmes cloud
10 Éthique et durabilité des données Impact environnemental, biais, gouvernance, RGPD/nLPD, data feminism

Évaluation

Composante Poids
Projet — présentation + poster A3 50%
Examen final — semaine d'examen 50%

Projet fil rouge — Service technique communal d'Yverdon-les-Bains

Contexte

La personne en charge du Service technique de la Commune d'Yverdon-les-Bains gère depuis 2018 le mobilier urbain (bancs, lampadaires, fontaines, poubelles, bornes de recharge) dans des fichiers Excel. Elle note les signalements de la population, enregistre les interventions de maintenance et tient une liste de fournisseurs.

Vous recevez les 4 fichiers Excel tels quels. Votre mission : en faire une infrastructure de données fonctionnelle, optimisée et utile.

Note : toutes les données du projet sont fictives. Les noms, numéros de téléphone, coordonnées et autres informations personnelles ont été générés pour les besoins du cours et ne correspondent à aucune personne réelle.

Données

Fichier Description
projet/data/inventaire_mobilier.xlsx ~120 objets (bancs, lampadaires, fontaines, poubelles, bornes EV) avec positions GPS
projet/data/signalements.xlsx ~200 signalements de la population et de patrouilles
projet/data/interventions.xlsx ~150 interventions de maintenance (dates, technicien-ne-s, durée, coûts)
projet/data/fournisseurs_contacts.xlsx ~15 fournisseurs régionaux avec contacts et spécialités

Les données sont volontairement imparfaites : casse variable, formats de date incohérents, références par texte libre, champs vides. Comme de vrais fichiers Excel faits à la main.

Briefs

Chaque groupe (2-3 personnes) reçoit les mêmes données mais un brief différent :

Brief Thème Détail
A Rapport budgétaire Coût par type de mobilier, top 5 objets coûteux, saisonnalité
B Délais de traitement Délai moyen par quartier, signalements ouverts > 30 jours, taux de résolution
C Remplacement lampadaires Fiche par lampadaire, score de priorité, sélection dans un budget de CHF 50'000.-
D Renouvellement des bancs État du parc, bancs à remplacer sous 2 ans, estimation budgétaire

Jalons du projet (formatifs)

Jalon Semaines Livrable Cours
J0 — Exploration et modélisation 1-2 MCD et MLD. Identifier les entités, relations et cardinalités. Documenter les problèmes de qualité observés dans les Excel 01-02
J1 — Import et nettoyage 3-4 MPD (CREATE TABLE). Import des données brutes dans des tables staging. Nettoyage SQL : TRIM, COALESCE, regexp_replace, dédoublonnage. Migration staging vers tables finales 03-04
J2 — Requêtes et optimisation 5-6 Premières requêtes métier pour le brief. EXPLAIN ANALYZE, index pertinents. Premières vues SQL 05-06
J3 — Sécurité et ouverture 7-8 Rôles et permissions (lecture seule pour citoyen-ne, écriture pour technicien-ne). Réflexion sur les structures alternatives adaptées au cas d'usage 07-08
J4 — Pipeline dbt + poster 9-10 Refactoring du nettoyage avec dbt (staging vers marts). Tests dbt. Documentation. Préparation du poster A3 08-09
J5 — Présentation + poster 28-29 mai Poster A3 affiché en classe + présentation et discussion 09-10
Rendu final 31 mai Scripts, jalons, adaptations selon retour des présentations

Ressources

Livres

  • Designing Data-Intensive Applications — Kleppmann (2017), O'Reilly Media
  • Data Feminism — D'Ignazio & Klein (2020), MIT Press — accès libre
  • Atlas of AI — Crawford (2021), Yale University Press
  • Data Mesh — Dehghani (2022), O'Reilly Media

En ligne


Licence

Ce matériel est mis à disposition sous licence Creative Commons Attribution 4.0 International (CC BY 4.0).

Vous êtes libre de partager et adapter ce contenu, à condition de créditer l'autrice.

About

Cours d'Infrastructure de données à la filière d'Ingénierie des Médias @HEIG-VD

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors