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).
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.
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 :
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.
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.
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.
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.
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
– …
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
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 :
– GRC / CRM :
– PGI / ERP :
– BPM :
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 :
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).
En savoir plus sur les ETL
En savoir plus sur l’offre Talend
Talend ETL - Définition et explication des concepts de TALEND ETL (Extract Transform and Load). Comprendre Talend et son utilité pour ses projets.
De plus en plus de serveurs sont attaqués par du flooding HTTP, mettant à genou votre serveur Apache, l’empêchant ainsi de répondre aux vraies requêtes qui lui sont adressées.
Découvrez la planche #23 !