Vous les e-commerçants, vous avez deux possibilités : écouter vos techniciens/agences et leur faire une confiance aveugle. Ou connaître les outils et savoir ce que vous pouvez demander/exiger et mieux estimer la quantité de travail.
Il existe beaucoup d’outils qui sont techniques et que les non-techniciens ne peuvent pas utiliser ; et il en existe d’autres qui sont plus visuels et plus accessibles.
Parmi eux, il est important je pense de connaître les outils d’ETL (Extract, Transform, Load). Le principal intérêt d’un outil d’ETL est de
- récupérer diverses sources dans divers formats (fichier(s) / base(s) de données / flux),
- de les traiter,
- de les transformer,
- de les mixer,
- de former un résultat puis
- d’exporter dans le format souhaité vers une destination souhaitée (fichier(s) / base(s) de données / flux).
Je vous présente ici sommairement les ETL en général et Kettle en particulier, mais je reste volontairement très en surface. Mon but ici est de vous laisser découvrir par vous-même si vous souhaitez vous y former ou que vos techniciens utilisent une telle suite.
L’intérêt est que vous pouvez faire faire les scripts (visuels) par des techniciens, et que vous pouvez ensuite vous-même y jeter un oeil et comprendre l’ordre des étapes, vous pouvez changer des paramètres dans les étapes, et éventuellement vous rendre compte d’incohérences.
Il existe deux principaux acteurs Open Source sur le marché, Kettle (Pentaho Data Integration) et Talend. Les deux proposent en annexe des services de BI et leurs outils d’ETL sont souvent nécessaires pour préparer les données pour les bases de données des outils de Business Intelligence.
Les outils d’ETL font grosso modo ce que la plupart des techniciens codent lorsqu’ils gèrent des flux, mais de façon plus optimisée, plus rapide, et plus sécurisée.
Tout ceci se fait de façon visuelle en créant des étapes et en éditant le détail de chaque étape. (je sais, ça dépasse.. mais comme ça on peut tout voir ;-))
Il est possible de faire des scripts personnalisés sous forme de script java (javascript)
Exemples de sources et exports possibles :
- Bases de données (37 bases de données disponibles dont MySQL, Oracle, SQLite, PostgreSQL, MS Access, MS SQL Server, Sybase, Firebird SQL, AS/400,…)
- Fichiers (XML, TXT, CSV, PSV, TSV ou autres séparateurs, instructions SQL dans fichier,
- Flux SOAP, REST
- Récupération ou envoi depuis ou vers des FTP/SFTP/FTPS/over SSH2
- Possibilité de dézipper ou zipper des fichiers en entrée ou en sortie
- Envoi / récupération depuis ou vers des e-mails / courriels (suivant sensibilité)
Comme les exemples sont souvent plus parlants, je vais vous donner quelques exemples bien pratiques de choses que l’on peut faire avec un ETL :
- récupérer un fichier XML à 10 niveaux de données depuis un FTP, l’aplatir sous forme de tableau, mettre à jour les données dans une table MySQL puis l’exporter sous forme de fichier CSV et l’envoyer par e-mail
- joindre trois fichiers excel (format XLS) et les entrées en base de données en comparant les sources, en dédoublonnant, et en faisant un fichier par type d’erreur possible
- prendre tout simplement un fichier, renommer des colonnes, en rajouter, normaliser la longueur des champs et le nombre de décimales, enlever les espaces vides et réexporter le tout dans un format souhaité
Les scripts réalisés visuellement sont exportables et installables comme tâches planifiées sur un serveur.
Je vous conseille de télécharger la version Pentaho Data Integration Spoon 3.2 (http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=spoon+3.2) même si la version 4.0 est sortie il n’y a pas longtemps, justement parce qu’elle est sortie il n’y a pas longtemps (la version windows en téléchargement contient la version linux..)
Il s’agit d’un dossier à dézipper, dans lequel il faut lancer le fichier Kettle.exe. Une fois ouvert, n’hésitez pas à aller chercher les exemples qui sont nombreux dans le sous-dossier /examples/.
Suivez l’auteur sur Twitter : http://twitter.com/romainboyer
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.