Documentation Talend Charly Riviere CDG35
1. Présentation générale Talend est un ETL pour "Extract Transform Load". Comme son nom l'indique il permet d'extraire des données pour ensuite les transformer à souhait et les charger dans une autre base. On manipule des objets graphiques représentant, par exemple, une connexion à une base de données puis on relie les composants entre eux. Du code Java est généré automatiquement ce qui permet de gagner du temps. Prenons par exemple le cas où une entreprise veut changer d'application tout en gardant ses données. Talend permet d'extraire les données existantes pour les manipuler et les rendre compatibles avec la nouvelle base si besoin. Il n'y a donc pas besoin de développer un outil exprès pour transférer les données d'une application à une autre puisque c est fait avec Talend. 2. Contexte entreprise Le CDG 35 fait partie de la coopération informatique GO+ (Grand Ouest Plus) qui rassemble plusieurs centres de gestions d'autres départements et qui a pour but de mutualiser les moyens et compétences pour créer des applications adaptés à leurs besoins. Une collectivité souhaite utiliser une partie des données de la base qui alimente cette application. Dans ce contexte, le centre de gestion a pour rôle de réaliser des manipulations de données par le biais du logiciel Talend en fonction des spécifications demandés par la collectivité. Mon rôle est donc de créer un job Talend suivant des spécifications prédéfinis. Celui-ci sera par la suite utilisé en production. 2.1 Les spécifications La collectivité souhaitant utiliser des données créé un «tableau de spécification». Ce document permet à la collectivité de spécifier le format de sortie du fichier qu ils ont à utiliser dans leur logiciel. Voici un exemple de ce document : Déb Fin Long Rubriques Type Obl Observations 1 10 10 Référence du Tiers x O Identifiant du tiers. Si le tiers ainsi référencé n existe pas l ensemble du fichier sera rejeté. 11 61 51 Compte budgétaire: x O Si le compte budgétaire ainsi référencé n existe pas l ensemble du fichier sera rejeté. Gestionnaire (10c) (il convient d initialiser à blanc les composants du compte budgétaire qui seraient sans objet) Code fonctionnel (7c) Nature (10c) ZONE Z28 Opération (10c) Z38 Service (4c) Z48 Antenne (10c) 62 62 1 Dépenses/Recettes x O D ou R 63 64 2 Budget x O Identifiant du budget. Si le budget ainsi référencé n existe pas l ensemble du fichier sera rejeté.
65 68 4 Exercice num O ex: 2008 L identifiant du budget doit être unique quelle que soit la collectivité. 69 78 10 Date x O Sous la forme: AAAA-MM-JJ 79 88 10 Utilisateur x O Si l utilisateur ainsi référencé n existe pas l ensemble du fichier sera rejeté. Si notion inexistante mettre CIRIL. 89 90 2 Code TVA x Si notion inexistante mettre 00 Exemple du tableau : (Le fichier de sortie doit être au format.csv.) Pour la 1 ère ligne, la taille du champ doit être de 10 caractères. Le type «x» signifie que la valeur peut-être de type numérique ou alphanumérique. La colonne «Rubriques» spécifie les données à sélectionner. La colonne «Obligation» indique si la valeur est obligatoire ou si elle peut être nulle. La dernière indique ajoute des informations sur la gestion des cas de test à inclure dans le Talend. Ce tableau va permettre de construire le Talend en gérant les cas de test et d erreurs. 3. Présentation du logiciel Lorsqu on lance le logiciel on arrive sur cette fenêtre qui permet de choisir sur quel projet démarrer : Puis on clique sur «Ouvrir» pour ouvrir le projet.
Sur l écran ci-dessus, on clique sur «Start now!» pour ouvrir le projet. Voici l interface principale. En haut (1), on retrouve les icônes permettant d exécuter un job ce qui compile le code générée par Talend lors de la mise en place des objets graphiques. Le panneau de gauche (2) est constitué de différents éléments tels que les Jobs qui permettent de manipuler les données, les Contextes qui permettent de mettre en place des variables, les Métadonnées permettant par exemple d enregistrer des données d accès à une base de données et d autres éléments. Le panneau du centre (3) représente le job par le biais d objets graphiques et de liens entre eux. En bas à gauche (4), on trouve la structure du job, on y retrouve la liste des noms des objets graphiques utilisés dans le job sélectionné.
En (5) on a un panneau qui permet de configurer les éléments des composants graphiques. Par exemple pour un objet de connexion à une base de données il faut spécifier le nom de la base ainsi que le login et le mot de passe d accès et plusieurs autres informations. Il est aussi possible de débugger le programme ou encore de donner des valeurs si des variables de contexte existent. Le panneau de droite (6) permet de sélectionner les objets graphiques qui sont triés par catégories. 4. Job d extraction des données 4.1 Présentation générale Voici le job d extraction de données qui permet de sélectionner certaines données de l application 1 (Java client lourd) et d écrire le résultat dans un fichier.csv : 4.2 Présentation par composants Partie Prejob : Le composant «tprejob_1» indique que la séquence qui suit va être exécuté avant l exécution du job.
Le composant «tfileexist_1» permet de vérifier l existence d un fichier. On doit lui indiquer le chemin du fichier : Le composant «tfiledelete_1» permet de supprimer le fichier s il existe. La liaison entre le composant tfileexist et tfiledelete est un if qui permet d indiquer que, si le fichier existe, il est supprimé pour laisser la place à celui qui sera créé après. Partie connexion : Le composant «toracleconnection_1» permet d établir la connexion avec la base Oracle en liaison avec l application 1. Voici ses paramètres : Le composant «tdie_1» permet de stopper l exécution du job si la connexion à la base de données n a pas fonctionnée.
Partie traitement : Le composant «toracleinput_1» permet d effectué le «Select» des données nécessaires. Il faut saisir une requête SQL dans un champ prévu à cet effet et sélectionner une connexion à une base de données disponible. Le composant «tlogrow_1» permet d afficher le résultat de la requête dans la fenêtre d exécution.
Le composant «tmap_1» permet de faire des tests sur les données entrantes. Il se présente comme ceci : On distingue 2 parties distinctes qu on peut diviser en plusieurs sous parties : Dans le premier encadré rouge en haut on trouve : A gauche, «row2» représente les données provenant du composant contenant la requête SQL de sélection des données. On y retrouve le nom des colonnes. Au centre, «var» permet d ajouter des variables ou d effectuer des opérations. C est ici qu on va pouvoir déclarer par exemple : Si la valeur contiens 10 caractères et qu il faut qu on en est 5 en sortie, on va créer une nouvelle chaine qui sera créée à partir du premier caractère en entrée jusqu au cinquième. On peut aussi vérifier si la valeur est nulle ou pas, supprimer les espaces blancs, etc A droite, on a le fichier de sortie. Le tableau est créé lorsqu on lie un composant tel que le «tfileoutputdelimited_1» qui permet d écrire dans un fichier.csv. Il est vide lors de la création et on l alimente ensuite en fonction des spécifications données. Le deuxième encadré rouge en bas permet d avoir une vue des types de données dans les colonnes. On peut aussi ajouter une colonne dans le tableau de droite pour ajouter un espace vide ou une valeur précise. Voici un exemple de traitement que peut réaliser le composant tmap : De gauche à droite : L id de la ligne est récupéré dans un premier temps.
On clique ensuite sur le bouton permettant d accéder au Constructeur d expression. On peut voir la fonction «Relational.ISNULL» qui prend en paramètre la colonne ID_DEMANDE. Ici, on teste donc si la valeur est nulle. Ensuite, dans le constructeur d expression du fichier d export, on trouve «!Var.exist». Cela veut dire que «Si la valeur est différente de null» le fichier sera créé.