Focus sur l’offre ETL Talend

L’ETL Talend est une boîte à outils permettant de faciliter le développement d’interfaces de synchronisation de données. Contrairement à une solution ESB, les interfaces Talend ne sont pas déployées sur un serveur d’applications. Ces interfaces ne permett
Jérôme POUSSINEAUMis à jour le 16 Sept 2011
accueil.jpg

L’ETL TalendTalend est un logiciel ETL permettant de faire de l'Extract, de la Transformation et du chargement (Load) de données. est une boîte à outils permettant de faciliter le développement d’interfaces de synchronisation de données. Contrairement à une solution ESB, les interfaces Talend ne sont pas déployées sur un serveur d’applications. Ces interfaces ne permettent donc pas dans l’état un déclenchement sur une sollicitation extérieur applicative (Service Web ou message JMSJava Messaging Service). Talend propose néanmoins l’exposition d’un job sous forme de Web Service Axis, il est alors nécessaire de disposer d’un serveur d’applications (un serveur Apache TomCat Open Source suffit) pour exposer le Web Service généré.

Le déclanchement des interfaces est donc dans la majorité des cas prévu pour être ordonnancé (depuis l’ordonnanceur interne ou tout autre outil d’ordonnancement). Talend propose néanmoins les composants tWaitForFile et tWaitForSqlData pour permettre l’attente d’un fichier sur un répertoire ou l’attente d’un résultat sur une base de données (l’interface consommera alors des ressources systèmes dans l’attente de son déclenchement).

1.1 Talend pour l’intégration de données

L’intégration de données regroupe tous les outils et processus utilisés pour déplacer et transformer des données entre systèmes source et systèmes cible. Ces systèmes source et cible peuvent se composer de bases de données, d’applications (telles que CRM, ERP ou logiciels comptables), dapplications SaaS (Software-as-a-Service), de fichiers, de systèmes legacy, de Web Services, etc.

La solution d’intégration de données Talend est généralement adoptée pour des projets d’ETL pour le décisionnel, pour la migration et la synchronisation de données, entre autres.

1.2 Implémentation des ½ interfaces

Le découpage en ½ interfaces avec un stockage intermédiaire par fichier XML n’est pas préconisé lors du développement de flux ETL (cf. illustration ci-dessous). Ce schéma reste valable pour un fichier plat. 

talend-11.jpg

En effet, contrairement à un EAI ou un à ESB les flux ETL traitent des données par lot, la volumétrie d’un flux peut donc être très importante. Or, le temps de traitement d’un fichier XML est exponentiel ce qui devient problématique lorsque sa taille commence à dépasser le Mo. Il est donc recommandé dans ce cas de réaliser des ½ interfaces en s’appuyant sur un stockage intermédiaire en base de données. 

talend-2.jpg

Cette implémentation permet à Talend d’éviter les phases de sérialisation et dé-sérialisation XML particulièrement gourmandes en ressources CPU et en mémoire vive. Cette solution permet aussi une supervision facilitée par la lecture du nombre d’enregistrement importée en table tampon ainsi que la possibilité d’effectuer directement des contrôles de cohérence au niveau de la base tampon.

Exemple de supervision possible :

L’utilisation de cette table tampon permet aussi de relancer uniquement la deuxième ½ interface lors de toute erreur de celle-ci sans solliciter à nouveau un rejeu de la première ½ interface.

2. Connectivité Talend

Talend propose nativement de nombreux mode de connectivité. S’agissant d’une solution basée sur de la génération de code JavaLangage de développement très populaire !, il est possible d’étendre la connectivité de base en développant ou en adaptant de nouveaux composants Talend.

2.1. Protocoles de transferts

Talend propose nativement les protocoles de transfert suivant : FTP, SCP, HTTP, POP, SMTP, RSS, Socket, Services Web, appels XML RPC, flux RSS, MOM en externe (Websphere MQ, JBoss MessagingSe dit d'un système à base de message (à la différence d'un système d'appel et de réponse instantanée), ActiveMQ).

Attention, ces protocoles sont utilisables principalement pour l’émission et non la réception de données ou le déclenchement de jobs.

2.2. Technologies fichiers

Talend supporte nativement le XML, il permet l’utilisation d’expression régulière sur les fichiers, la lecture des répertoires pour déclencher un traitement et la gestion des fichiers compressés. Talend permet aussi la validation d’un fichier XML en lui appliquant une XSD de validation ainsi que la transformation XML par l’application d’un fichier XSLT.

2.3. Connexions bases de données

Talend se basant sur la génération de code Java, il utilise nativement des drivers JDBC pour l’accès à une base de données. Il est donc possible de créer facilement un composant de connexion à une base de données non supportée nativement lorsque l’on dispose du driver JDBC.

La technologie JDBC est une APIUne API est un programme permettant à deux applications distinctes de communiquer entre elles et d’échanger des données. fournie avec Java (depuis la V1.1) permettant de se connecter à des bases de données. JDBC constitue un ensemble de classes permettant de développer des applications capables de se connecter à des serveurs de bases de données (SGBD).

Talend propose Out of the box les composants de connexion aux bases de données suivantes :

          Oracle DataBase (Accès Oracle DataBase en JDBC)

          Oracle SQLLangage permettant de communiquer avec une base de données.*LOAD (Accès vers Oracle SQL Loader)

          Teradata

          DB2

          SQL Server

          Informix SQL

          Sybase ASE

          MySql

          AS400

          LDAP

          …

2.4. Langages d’exécution

Talend est un outil de génération Java, il permet néanmoins de générer des traitements dans d’autres langages qui seront lancés depuis un composant Java. Voici les possibilités offertes pas la plate-forme :

          Java : via le composant tJava

          Groovy : via le composant tGroovy

          PL/SQL : via les fonctionnalités ELT

2.5. Connecteurs vers des verticaux

Talend propose un ensemble de connecteurs vers des progiciels de gestion. Ces connecteurs facilite le travail des développeurs en proposant l’insertion ou la récupération de données sur ces logiciels sans avoir à redéfinir le modèle de données ou le moyen technique d’interconnexion.

Voici la liste des connecteurs disponibles Out Of The Box :

          GED / ECM :

  • Alfresco

          GRC / CRM :

  • CentricCRM
  • Microsoft CRM
  • Salesforce
  • SugarCRM
  • VtigerCRM

          PGI / ERP :

  • SAP
  • Microsoft AX
  • Open Bravo

          BPM :

  • Bonita

2.6. Fonctions de transformation

Talend propose nativement les fonctions de transformation suivantes :

          Tri : 2 composants de tri sont disponibles: tSortRow et tExternalSortRow. Le premier effectue le tri avec un algorithme exécuté avec le langage du projet (Perl, Java). Le second propose de sappuyer sur un utilitaire de tri externe. Les 2 supportent une volumétrie importante : utilisation de lespace temporaire (swap de lOS) sur disque (à vérifier) pour tSortRow

          Dédoublonnage : Composant tUniqueRow

          Filtre : 3 composants pour effectuer des filtres: tFilterColumns pour supprimer des colonnes dun schéma tFilterRow pour filtrer des données tMap pour effectuer des opérations plus complexes

          Concaténation : A écrire pour chaque ligne dans un composant tMap

          Jointure : Au sein d’un composant tMap

          Enrichissement : Non disponible, à développer soit même dans un composant tMap ou un nouveau composant

          Distribution : Composants tFilterColumns, tFilterRow, tReplace

          Reformatage des données :

  • Chaîne de caractères : Composant tConvertType et routines disponibles
  • Date : Routines disponibles
  • Nombre : Routines disponibles
  • Fonctions de calcul : En Java ou Perl, possibilité de chargement de librairies externes

3. Mode de licencing

Talend propose une version Open Source de leur solution dintégration appellée Talend Open Studio ainsi quune version payante nommé Talend Integration Suite. Les différences majeures entre ces deux versions se situent principalement autour de la gestion, du déploiement et des l’exécution des jobs. En effet, la version payante prend en charge la gestion de configuration avec la possibilité dutiliser un gestionnaire de source (principalement CVS ou SNV) ainsi quun ordonnanceur et une solution de supervision des Flux intégérée à Eclipse mais aussi en mode Web (un simple WAR à déployer sur un serveur J2E).

En savoir plus sur les ETL

En savoir plus sur loffre Talend