dimanche 27 mars 2011

ETL, piège à cons ?

Je travaille actuellement avec la Rolls des ETL : Ab Initio. ETL est un acronyme pour Extract Transform Load. Ces outils permettent d'extraire des données de sources diverses (bases de données, fichiers plats ou binaires,...) de transformer et / ou d'agréger ces données et de les injecter dans une autre source de données.
D'un point de vue pratique ces outils prennent la forme d'un environnement de développement intégré dans lequel un développeur assemble des boites réalisant les différentes opérations :

  • Extraction

  • Transformation des champs

  • Dédoublonnage

  • Tri

  • Agrégation

  • ...



À partir des graphes tracés, l'outil génère des exécutables pouvant être intégrés dans le système. Pour le besoin, c'est plutôt efficace.

Qu'est-ce qui me dérange ? J'ai du mal à les voir comme des outils pour développeurs. Mes problèmes avec le concept d'ETL sont les suivants :

  • Couplage : le code est exécuté sur le serveur (dans le cas d'Ab Initio). Il y a un connecteur par vendeur de base de données, il y a peu de possibilité d'abstraction.

  • Il est très aisé de générer des graphe complexe difficiles à maintenir

  • C'est chiant à tester (tu mets un fichier en entrée, tu croise les doigts pour avoir une bonne sortie 1 minutes après)



Je reconnais que les avantages sont indéniables. Ce n'est cependant pas un outil pour mois : je me sens tout nu sans mon XUnit !