samedi 30 octobre 2010

Extract Transform Load... and Cry

J'ai la possibilité dans mon blog de voir si les personnes sont passées par un moteur de recherche et surtout quels mots clés utilisés dans la recherche... Il y'a une recherche qui a retenu toute mon attention dont le libellé était "dataware sans etl"...

Le schéma ci-dessus montre toutes les fonctionnalités d'un ETL... depuis les sources de données jusqu'au chargement dans votre datawarehouse... c'est une brique de votre solution BI. Il y'a un excellent article Wiki ici qui explique chacune des trois étapes que je vous détaille ci-dessous

1 - Extract
"the goal of the extraction phase is to convert the data into a single format which is appropriate for transformation processing... An intrinsic part of the extraction involves the parsing of extracted data, resulting in a check if the data meets an expected pattern or structure. If not, the data may be rejected entirely or in part."


2 - Transform
"The transform stage applies a series of rules or functions to the extracted data... Selecting only certain columns to load... Translating coded values... Encoding free-form values... Deriving a new calculated value... Sorting... Aggregation... Splitting a column into multiple columns... etc...".



3 - Load

"The load phase loads the data into the end target, usually the data warehouse (DW)... "



4 - ... and Cry
Vous pouvez commencer à pleurer : 
- sur le temps que vous allez passer à faire la recette du datawarehouse... avec tout ce que la donnée à subi, il vous sera impossible de la rapprocher avec quoi que ce soit du système d'origine. Vu et archi vu, le datawarehouse qui est censé le reflet de votre ERP ressemble à une copie déformée invérifiable.
-  sur le temps que cela va prendre à mettre à jour les données... très forte probabilité que vous n'aurez rien avant 24h !
- sur le temps que passera l'équipe d'exploitation à réparer tous les incidents sur le processus de la transformation au chargement (cf mon article sur les 10 plaies de votre dataware ici ).

Et d'évoquer deux pistes à explorer (ou en cours d'exploration) :

- le bulk copy de base à base : les solutions les plus simples... sont aussi les plus rapides. Pourquoi se prendre la tête avec une extraction, une transformation et un chargement... identifiez le/les tables qui vous intéressent dans votre ERP... et faite une violente copie de la table dans votre datawarehouse. Vous serez étonné par les temps et surtout risque d'erreur réduit à néant. Ca ne fait pas un datawarehouse me direz vous... "a subject oriented, nonvolatile, integrated, time variant collection of data in support of management's decisions"... cf article ici ... c'est encore à démontrer et une chose est sure, un datawarehouse n'est pas un truc qu'on répare tous les matins avec des utilisateurs en berne une grande majorité du temps !

- le change data capture : article wiki ici - le graphique résume à peu près l'idée qui est de s'appuyer sur des log de modification de votre base qui est en support de votre applicatif (OLTP DB)... pour alimenter ainsi votre dataware. Cela réduit fortement l'intrusion... j'y crois beaucoup à cette idée et cela nous permet d'imaginer des solutions en temps réel sans casser votre système source.


PS : j'espère ajouter d'autres pistes !

Aucun commentaire:

Enregistrer un commentaire