Skip to content

MediaComem/comem-infradon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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
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, flux et architectures modernes Relationnel vs NoSQL (document, key-value, colonnes, graph), JSONB et arrays PostgreSQL, ETL vs ELT, Data Mesh, architecture medallion, lakehouse, RAG
08 Éthique des données Impact environnemental, biais algorithmiques, Data Feminism, RGPD/nLPD, gouvernance

É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
J4 : Vues métier + poster 9-10 Finalisation des requêtes et vues SQL pour le brief. Réflexion sur les structures de données. Préparation du poster A3 07-08
J5 : Présentation + poster 28-29 mai Poster A3 affiché en classe + présentation et discussion 08
Rendu final 31 mai Scripts, jalons, adaptations selon retour des présentations 08

Structure du projet

comem-infradon-1/
├── cours/                        # Slides Slidev (01-08)
│   ├── 01-introduction.md
│   ├── 02-fondamentaux.md
│   ├── 03-import-nettoyage.md
│   ├── 04-transactions-concurrence.md
│   ├── 05-optimisation-indexation.md
│   ├── 06-securite-roles-sauvegarde.md
│   ├── 07-structures-architectures.md
│   ├── 08-ethique-donnees.md
│   └── components/               # Composants Vue.js pour les slides
├── projet/                       # Ressources du projet fil rouge
│   ├── briefs/                   # Briefs par groupe (A, B, C, D)
│   ├── data/                     # Fichiers Excel source (non versionnés)
│   └── aide-nettoyage.md         # Guide SQL de nettoyage
├── revisions/                    # Préparation à l'examen final
│   ├── examen-type.md            # Examen type (festival)
│   └── README.md                 # Ce qu'il faut maîtriser
├── scripts/                      # Scripts utilitaires (build, génération de données)
├── package.json                  # Config Slidev
└── README.md

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

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages