Retour catalogue
Débutant~4 hingestion

Du CSV à la table typée

Projet qui sépare ceux qui savent lire un CSV de ceux qui pensent savoir.

Contexte

Opérateur de vélos en libre-service, Vélia, dépose tous les soirs un CSV de trajets sur un SFTP. Entre janvier et février, fournisseur a changé l'ordre des colonnes et le format de date,sans prévenir personne. Ton job : écrire un ingestor Python qui lit les deux versions, les nettoie, et les charge dans une table DuckDB typée.

Pas de magie pandas qui devine les types tout seul. Tu déclares un contrat. Tu coerces. Tu loggues ce que tu as détecté. Et tu rends ton script idempotent,relancer deux fois ne duplique pas une ligne.

C'est volontairement court (4 h) et accessible aux débutants. Tu touches comment plateforme évalue : workflow GitHub Actions, quatre checks déterministes, verdict pédagogique en français.

Architecture

Stack et flow du projet

Loading diagram…

Ce que tu vas livrer

  • Module `src/ingest.py` exposant `load(path) -> pd.DataFrame` avec colonnes typées
  • Fichier DuckDB `data/velia.duckdb` contenant la table `trips` après exécution
  • Note `docs/schema_changes.md` qui documente la dérive de schéma détectée

Ce que CI vérifie

  • Schéma de la table `trips` matche contrat `contracts/trips.json` (colonnes + dtypes)
  • Nombre total de lignes égale somme des deux vintages moins duplicates sur `trip_id`
  • Zéro ligne avec `trip_id IS NULL` dans la table finale
  • Relancer script deux fois produit exactement le même nombre de lignes (idempotence)

Prérequis

  • Python de base (fonctions, lecture de fichier, gestion d'erreurs)
  • SQL de base (CREATE TABLE, SELECT COUNT, GROUP BY)
  • Git de base (clone, commit, push)

Comment ça marche

  1. 01

    Tu cliques « Commencer »

    On forke template sur ton compte GitHub. Aucune install locale, aucun Docker à débugger.

  2. 02

    Tu codes dans GitHub Codespaces

    VS Code dans ton navigateur, prêt à l'emploi : DBs locales, dépendances Python, tout dans devcontainer. 60h/mois gratuits chez GitHub.

  3. 03

    Tu pushes, CI te répond

    GitHub Actions exécute rubrique. Vert = validé. Rouge = chaque check échoué te dit ce qui manque, en français.

Information précontractuelle

  • Vendeur : Merta
  • Prix : 29 € TTC, franchise de TVA
  • Livraison : numérique, immédiate après paiement
  • Droit de rétractation : exclu après début d'exécution, voir case à cocher
  • Paiement sécurisé via Stripe

Achat soumis aux CGV.