Étude de cas · Application web · ETL / ELT
Plateforme de migration de données
Une plateforme web qui génère, exécute et planifie des traitements d'intégration de données sur cinq moteurs de bases de données. Mon projet de fin d'études d'ingénieur.
- Rôle
- Seul développeur
- Entreprise
- Datarox
- Période
- Janv. 2024 - Août 2024
- État
- Livrée et présentée
Le produit

Interface redessinée pour ce portfolio
Le problème
Déplacer des données d'une base à une autre revient le plus souvent à écrire un script à la main pour chaque couple source et cible. Les scripts se ressemblent, mais chaque moteur a son dialecte SQL : chacun est réécrit et débogué de nouveau.
Une fois les scripts lancés, il est difficile de dire ce qui a tourné, quand, et d'où vient telle table. L'objectif : un seul outil qui écrit les traitements, les exécute selon un calendrier et montre ce qui s'est passé.
Mon rôle
C'était mon projet de fin d'études d'ingénieur chez Datarox, et je l'ai construit seul : l'application React et le moteur Python derrière elle.
Il a été livré et présenté à l'entreprise à la fin du stage.
Ce que j'ai construit
01
Connexions
Enregistrer une fois la connexion à chaque base, la tester, puis parcourir ses schémas et ses tables depuis l'application.
02
Espace SQL
Écrire et exécuter du SQL sur n'importe quelle connexion enregistrée et lire les résultats dans le même écran.
03
Des traitements générés à partir de modèles
Choisir un modèle d'intégration, une source et une cible : le moteur Python écrit le traitement ETL ou ELT, dans le bon dialecte pour chaque moteur.
04
Planificateur et suivi
Planifier un traitement, suivre chaque exécution et voir d'un coup d'œil lesquelles ont réussi, échoué ou tournent encore.
05
Lignage des données
Pour chaque table, voir d'où viennent ses données et où elles vont, à travers les traitements qui la touchent.
06
Cinq moteurs
MySQL, PostgreSQL, Oracle, SQL Server et Snowflake, comme source ou comme cible.
Comment ça marche
Le chemin d'une migration, de la première connexion au lignage du résultat.
Connecter
Bases source et cible
Explorer
Schémas, tables et espace SQL
Choisir un modèle
Modèle d'intégration ETL ou ELT
Générer
Le moteur Python écrit le traitement
Planifier et exécuter
Exécutions suivies une à une
Tracer
Lignage de chaque table
Ce qui était difficile
Un modèle, cinq dialectes
Un même chargement ne s'écrit pas pareil en Oracle et en Snowflake : types, fonctions et façon de fusionner les lignes diffèrent. Chaque modèle est décrit une fois et rendu pour le moteur visé.
ETL et ELT dans le même outil
Transformer les données avant de les charger et les transformer dans la cible sont deux traitements différents. Le moteur génère les deux, et l'utilisateur choisit celui qui convient à la migration.
Rendre les exécutions visibles
Un traitement qui échoue en silence est pire que pas de traitement. Chaque exécution est enregistrée avec son état : un échec se voit quand il arrive, pas des jours plus tard.
Technologies
Autres études de cas
Des données à déplacer, ou un outil à construire autour ?
Je peux construire l'application et le moteur de données derrière elle.