AXOPEN

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 permettent donc pas dans l’état un déclenchement sur une sollicitation extérieur applicative (Service Web ou message JMS). 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), d’applications 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.

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.

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 :

Interface :

½ interface XXX

½ interface entrant XXX

Nombre de ligne base source :

1 290

1 280

Nombre de ligne base cible :

1 280

1 167

Nombre de ligne en erreur :

10

113

Pourcentage d’erreur :

0,78%

8,83%

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 Java, 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 Messaging, 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 API 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 SQL*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 s’appuyer sur un utilitaire de tri externe. Les 2 supportent une volumétrie importante : utilisation de l’espace temporaire (swap de l’OS) sur disque (à vérifier) pour tSortRow

–          Dédoublonnage : Composant tUniqueRow

–          Filtre : 3 composants pour effectuer des filtres: – tFilterColumns pour supprimer des colonnes d’un 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 d’intégration appellée Talend Open Studio ainsi qu’une 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é d’utiliser un gestionnaire de source (principalement CVS ou SNV) ainsi qu’un 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).

Fonctionnalités :

Talend Open Studio

Talend Integration Suite

AGL d’intégration de données : X

X

Productivité des développeurs :

X

Gestionnaire de source :

X

Déploiement et exécution :

X

Intégration temps réel :

X

Exécution en parallèle des jobs :

X

En savoir plus sur les ETL

En savoir plus sur l’offre Talend