HW
Toutes les réalisations

É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

https://platform.example
Une plateforme de données : connexions, espace SQL, résultats et traitements planifiés

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.

  1. 1

    Connecter

    Bases source et cible

  2. 2

    Explorer

    Schémas, tables et espace SQL

  3. 3

    Choisir un modèle

    Modèle d'intégration ETL ou ELT

  4. 4

    Générer

    Le moteur Python écrit le traitement

  5. 5

    Planifier et exécuter

    Exécutions suivies une à une

  6. 6

    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

ReactPythonSQLMySQLPostgreSQLOracleSQL ServerSnowflake

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.