Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 1 livre papier acheté 
= la version en ligne automatiquement offerte. Cliquez ici
  1. Livres et vidéos
  2. Talend Open Studio
  3. Talend par la pratique
Extrait - Talend Open Studio Le guide complet pour l'intégration de données
Extraits du livre
Talend Open Studio Le guide complet pour l'intégration de données
1 avis
Revenir à la page d'achat du livre

Talend par la pratique

Introduction

Dans ce chapitre dédié exclusivement à la pratique de l’ETL Talend, nous allons explorer les composants les plus utilisés par les développeurs Talend, les Data Analysts, les Data Engineers et d’autres profils utilisant Talend Open Studio. Que vous soyez débutant et créiez vos premiers jobs ou expérimenté dans l’implémentation de jobs complexes, nous allons passer en revue ces composants pas à pas. Nous aborderons également l’orchestration de plusieurs jobs, y compris ceux que nous avons déjà étudiés ensemble. Nous aurons également l’occasion d’aborder, par la pratique, les notions décrites dans le chapitre Présentation, installation et définitions avec des explications détaillées pour un développement optimal des jobs Talend, ainsi que la détection et la résolution des erreurs aussi appelées débogage.

Premiers pas avec Talend Open Studio 8

Une fois Talend installé, nous devons nécessairement créer un projet, importer un projet démo ou importer un projet existant (figure ci-dessous).

Dans cette section, nous allons importer l’un des projets de démonstration fournis par Talend, en mettant en œuvre une présentation de tous les éléments qui le constituent, ainsi qu’une présentation de l’interface générale de l’ETL.

Pour rappel, un projet est un ensemble structuré d’éléments techniques et de leurs métadonnées associées ; ce qui veut dire que nous ne pouvons créer des jobs et effectuer des traitements sur des données, sans avoir créé ou importé un projet.

 Pour créer un projet dans Talend, cochez Créer un projet puis donnez un nom au projet. Cliquez ensuite sur Créer puis sur Terminer.

images/02EP01.png

Création de projet

Il est possible de créer plusieurs workspaces (référentiels), notamment lorsque plusieurs utilisateurs accèdent au même Studio sur la même machine mais qu’ils ne souhaitent pas mélanger leurs projets.

 Pour cela, cliquez sur Gérer les connexions.

images/02EP02.png

Gérer les connexions

 Pour supprimer un projet, cliquez sur Supprimer le(s) projet(s) existant(s), sélectionnez le projet souhaité et cliquez sur OK.

 Pour importer...

Job 0 : création d’un job

Dans cette section, nous allons illustrer la méthode la plus facile qui soit pour créer un nouveau job au sein d’un projet créé en amont.

 Effectuez un clic droit sur Jobs puis cliquez sur Création d’un nouveau job.

 Remplissez les informations relatives au job créé.

images/02EP20.png

Création d’un job

images/02EP21.png

Fenêtre générée par la création du job

Job 1 : générer un fichier XML à partir d’un fichier CSV

Dans cette section, nous allons voir ensemble, pas à pas, comment implémenter un job qui permet de générer un fichier XML à partir d’un fichier CSV.

Un fichier délimité CSV dans Talend est représenté par le composant tFileInputDelimited.

Deux méthodes sont possibles pour appeler un composant en général et le composant tFileInputDelimited en particulier dans Talend.

La première consiste à écrire quelques lettres du nom du composant, par exemple en écrivant tfile dans la palette à gauche de l’interface Talend.

images/02EP22.png

Recherche du composant tFileInputDelimited dans la Palette

Une fois que vous avez trouvé le composant qui vous intéresse, vous pouvez le glisser dans l’interface du job.

La deuxième méthode consiste à écrire quelques lettres du nom du composant, par exemple tfile en effectuant un clic gauche dans l’interface du job créé.

Vous pouvez faire la même chose pour faire appel au composant tFileOutputXML

images/02EP23.png

Création des composants d’entrée et de sortie + Connexion Row Main

Création d’un schéma de données

Les schémas définissent de quelle manière la donnée est transportée par le job. Tout composant qui gère un flux de données fournit un Editeur de schéma qui permet de visualiser et définir les schémas utilisés par le composant.

Dans la figure précédente, comme le composant tFileOutputXML n’est pas configuré, l’icône est en rouge, les paramètres de sortie devant avoir au moins une valeur.

 Dans ce cas, cliquez sur le composant de sortie puis sur Modifier le schéma, une fenêtre va s’ouvrir et vous pourrez créer un schéma.

images/02EP24.png

Figure générée pour modification du composant de sortie

 Pour générer un schéma, vous pouvez cliquer sur le symbole images/icp58.png. Ensuite, ajoutez une colonne en entrée et attribuez-lui un nom explicite ainsi qu’un type approprié. Si vous souhaitez que cette colonne soit la clé de la table (avec des valeurs uniques qui ne se retrouvent dans aucune autre ligne), cochez la case Clé. Vous pouvez également utiliser cette clé pour effectuer des jointures, comme expliqué dans le chapitre Talend et les bases de données SQL.

images/02EP25.png

Création de schéma

Le schéma en entrée (à gauche) doit toujours correspondre...

Job 2 : utilisation des liens déclencheurs

Le lien déclencheur if sert à vérifier si une condition est satisfaite, par exemple pour vérifier si un fichier existe ou pas.

Méthode

 Créez un job et générez un composant tFileExist et deux composants tJava.

images/02EP31.png

Création et indication du fichier à chercher

 Générez deux tJava qui renvoient respectivement du code Java « présent » et « absent ».

images/02EP32.png

Affichage en cas de présence du fichier

 Faites un clic droit sur tFileExists.

 Cliquez sur Déclencheur.

 Mettez un déclencheur de type Run if entre tfileExists et les deux tJava.

images/02EP33.png

Condition if schématisée

images/02EP34.png

Affichage de « present » dans la log (console) (le fichier existe)

images/02EP35.png

Résultat en modifiant le nom du fichier, le fichier est absent

Dans Talend, le ELSE n’existe pas.

Création et utilisation des groupes et variables de contexte

Un contexte décrit les paramètres prédéfinis appliqués lors de l’exécution d’un job.

Un contexte est utile, entre autres, pour variabiliser le chemin afin d’exécuter les jobs dans différents environnements mais aussi pour des raisons de sécurité. 

1. Pourquoi ?

En environnement de production, les clients expriment généralement des exigences de sécurité, ce qui rend problématique de fournir un accès direct au fichier de données, car cela constituerait une faille de sécurité du système. Par conséquent, il est nécessaire d’externaliser tous les accès aux données pour remédier à cette situation.

Les variables de contexte sont des valeurs qui peuvent changer selon le fait que le job est exploité dans un environnement de développement, de test, de production ou autre. Les valeurs peuvent également changer avec les changements d’environnements. Par exemple, pour les mots de passe, ces variables sont contenues dans des groupes appelés « groupes de contextes ».

2. Méthode

 Dans le référentiel, allez sur Contextes, puis sur Créer un nouveau contexte.

 Cliquez sur le bouton + pour ajouter une variable....

Job 3 : utilisation du composant tConvertType

Le but de ce job Talend est de convertir le type de données des colonnes d’un fichier dans tFileInputDelimited. Il peut s’agir d’une conversion du type Double (nombre réel) vers Integer, Integer vers String, String vers Integer ou encore Date vers String. Pour cela, procédez comme suit :

images/02EP41.png

Création du tFileInputDelimited et mise à jour du format du libellé

images/02EP42.png

Paramétrage et importation du schéma du fichier source

images/02EP43.png

 Cochez la conversion automatique pour tConvertType, synchronisez le schéma et modifiez-le ensuite (modification du type de sorties).

images/02EP44.png

Résultat de conversion

Vous remarquerez que dans la transformation DoubleToInt, le système n’a pris en compte que la partie entière du chiffre (999 pour une valeur initiale de 999,9).

images/02EP45.png

Les composants utilisés dans le job

Job 4 : échantillonnage de données

Le but de ce job SAMPLE_DATA est de prélever un échantillon de données à partir d’un fichier plat de type texte.

images/02EP46.png

Composants utilisés et paramétrage du tFileInputDelimited_1

images/02EP47.png

Paramétrage du tSampleRow

Dans ce job Talend, il est demandé au composant tSampleRow de prélever les données contenues dans les lignes 1 et 5, ainsi que les données contenues entre la ligne 10 et la ligne 20 du fichier SUPPLIERS.txt.

images/02EP48.png

Paramétrage du tLogRow pour un affichage sous forme de tableau

images/02EP49.png

Résultat du job

Job 5 : agréger et trier des données

Le but de ce job Talend tAGGREGATEROW est d’agréger puis de trier les données du fichier AggregationInput.csv et d’insérer le résultat du job dans un autre fichier AggregationOutput.csv.

images/02EP50.png

Job et paramétrage du tFileInputDelimited_1

images/02EP51.png

Paramétrage du composant tAggregateRow

Dans les paramètres du composant tAggretaeRow, Group by signifie que nous allons afficher les opérations contenues dans la partie Opérations par état (STATE), soit le salaire maximum (MAX_SALARY), le salaire minimum (MIN_SALARY), et le salaire moyen (AVG_SALARY) par état.

Le fichier en entrée traite les salaires aux États-Unis, c’est pour cela que nous parlons d’état et non de ville ou autre.

 Pour ajouter une opération, cliquez sur le + vert, et faites de même pour le Group by.

images/02EP52.png

Paramétrage du tSortRow

Le critère, comme nous pouvons le voir, a été positionné sur STATE (la colonne concernée par le Group by précédemment), et le tri sur Alpha,  ce qui signifie que le type de données de cette colonne est alphanumérique. Enfin, l’ordre du tri dans le fichier en sortie doit être alphanumérique ascendant (dans ce cas, par ordre alphabétique des noms des états, vu qu’aucun nom d’état...

Job 6 : filtrer les colonnes d’un fichier CSV

Le but de ce job Talend tFILTERCOLUMNS est de filtrer les colonnes d’un fichier CSV, c’est-à-dire de ne retourner en sortie que certaines colonnes du fichier d’entrée nommé FilterColumnsInput.csv.

images/02EP55.png

Job et paramétrage du composant tFileInputDelimited

images/02EP56.png

Paramétrage du composant tFilterColumns

Pour paramétrer le composant tFilterColumns, il suffit de modifier le schéma en entrée en sélectionnant seulement les colonnes à retourner en sortie. 

images/02EP57.png

Paramétrage du composant tFileOutputExcel

Job 7 : filtrer les données des lignes d’un fichier

Dans ce job Talend tFILTERROW, nous allons apprendre à filtrer les données contenues dans les lignes d’un fichier .csv, et à retourner les lignes qui satisfont les conditions dans un composant tFileOutputDelimited_1, et les autres lignes dans le composant tFileOutputDelimited_2 comme illustré ci-après.

images/02EP58.png

Job et paramétrage du composant tFileInputDelimited

Le composant tFilterRow dispose d’un lien de type Reject pour retourner les lignes qui ne remplissent pas les conditions dans un autre fichier.

images/02EP59.png

Paramétrage du composant tFilterRow

Dans ce composant, nous demandons à Talend de ne retourner en sortie que les lignes qui contiennent la valeur Adams pour le champ LastName.

Nous avons utilisé comme Opérateur logique utilisé pour combiner les conditions, l’opérateur Et pour ajouter la condition permettant de ne retourner que les personnes ayant un salaire (Salary) supérieur à 6000.

images/02EP60.png

Paramétrage du composant tFileOutputDelimited_2

Le composant tFileOutputDelimited_2 sert à capter les lignes ne remplissant pas les conditions, et à les mettre dans un fichier FilterRowError.csv.

images/02EP61.png

Paramétrage du composant tFileOutputDelimited_1

images/02EP62.png

Les contextes utilisés pour ce job

Job 8 : les variables globales

Dans ce job Talend GlobalVariables, nous allons voir comment utiliser les variables globales et en quoi elles peuvent être utiles pour récupérer une valeur. 

images/02EP63.png

Job et paramétrages du tFileInputDelimited

images/02EP64.png

Paramétrages du tFileOutputDelimited

images/02EP65.png

Variables globales utilisées et code Java Dans le composant tJava

Pour appeler et utiliser une variable globale dans un composant tJava par exemple, il suffit de la glisser et de la déposer dans la partie réservée au code.

Les variables globales se trouvent dans l’onglet Outline à gauche dans l’écran ci-dessus. Vous pouvez dérouler le nom du composant à partir duquel vous souhaitez extraire une information afin d’afficher toutes ses variables globales. 

Le texte se trouvant entre deux guillemets, à savoir "Number of rows : " et "and the Path to file : ", correspond au texte devant être affiché en intégralité. Il faut définir le texte à afficher pour les variables retournées par les variables globales

Les signes + sont là pour concaténer le texte avec les variables globales.

System.out.println() correspond à du code Java qui indique au composant d’afficher le texte et le code qui se trouvent entre les parenthèses.

Enfin, le code dans le composant tJava doit...

Job 9 : les variables globales avec tSetGlobalVar

Dans ce job Talend appelé tSetGlobalVars, nous allons voir comment créer et utiliser facilement une variable globale à l’aide du composant tSetGlobalVar

images/02EP66.png

Aperçu du job tSetGlobalVars et des composants utilisés

images/02EP67.png

Paramétrages du composant tFileInputDelimited

images/02EP68.png

Le groupe et les variables de contexte utilisés

Dans ce job, seules les variables de contexte InPutDATA et OutPutDATA sont utilisées.

images/02EP69.png

Paramétrages du composant tFileOutputDelimited

images/02EP70.png

Création de variables globales avec le composant tSetGlobalVar

Dans le composant tSetGlobalVar, nous avons créé deux variables globales que nous pourrons appeler par leurs noms, que ce soit dans un composant tJava ou dans un autre composant qui le permet.

La première variable globale, nommée GLOBAL_VAR_PATH_Name, contient la valeur du nom de fichier de sortie correspondant au nom du fichier dans le composant tFileOutputDelimited, où il est désigné par "File’s".

La deuxième variable globale, appelée FORM_REP, stocke en elle la valeur Talend 8 en clair.

Pour appeler et afficher les variables, il suffit de créer un composant tJava et d’y ajouter les clés des variables globales insérées de la fonction ((String)globalMap.get()) comme dans la figure ci-dessous :

images/02EP71.png

Appel des variables globales...

Job 10 : manipulation de dossiers et copie de fichiers

Ce job Talend IF_CONDITION permet de copier un ou plusieurs fichiers d’un dossier à un autre et d’afficher un message d’erreur si la copie ne s’effectue pas correctement.

images/02EP73.png

Job et paramétrage du composant tFileList

Dans l’exemple ci-dessus, le composant tFileList permet de lister tous les fichiers portant l’extension .txt et qui se trouvent dans le répertoire spécifié précédemment.

images/02EP74.png

Paramétrages du composant tFileCopy

Le composant tFileCopy permet de copier les fichiers listés avec le composant tFileList.

images/02EP75.png

Paramètres du composant tFileCopy et variables globales de tFileList (à gauche)

Dans les paramètres du composant tFileList, le champ Nom de fichier renvoie à la variable globale qui permet de retourner le chemin des fichiers .txt précédemment déclarés.

Les variables globales sont associées au composant et sont automatiquement générées en fonction du type de composant. Elles sont accessibles uniquement dans le job en cours et leur portée est limitée à ce job.

Les variables globales permettent d’accéder à l’état des composants, comme par exemple le nom de fichier, le nombre d’itérations en cours, le message d’erreur. 

La syntaxe d’appel de variable peut...

Contexte implicite

Pour chaque job ou projet, il est possible de créer un contexte implicite, ce qui signifie que les valeurs des variables de contexte et/ou les chemins vers des fichiers peuvent être stockés et appelés directement à partir d’un fichier, sans avoir à créer un contexte dans Talend.

 Pour ce faire, positionnez votre souris sur le job dans lequel vous voulez créer un contexte implicite, puis, dans la vue générale de Talend, allez dans Fichier et cliquez sur Modifier les propriétés du projet.

Une fenêtre appelée Paramètres du projet s’ouvre.

images/02EP89.png

Fenêtre Paramètres du projet

 Dans cette fenêtre, déroulez Paramètres du Job puis allez dans Chargement implicite d’un contexte.

images/02EP90.png

Vue du Chargement implicite d’un contexte

 Dans cette fenêtre, cochez tContextLoad implicite et sélectionnez Depuis le fichier. Ensuite, indiquez le chemin vers le fichier contenant les contextes et cliquez sur Apply and Close.

images/02EP91.png

Chemin du fichier de contexte

Le fichier de contexte se trouve dans le répertoire PROPERTIES et il porte le nom du job sur lequel vous vous êtes positionnés. Son extension est .txt.

images/02EP92.png

Liste des contextes dans le fichier

Si vous voulez utiliser le contexte FileSource, par exemple, il suffit de créer une variable de contexte dans le job, de l’appeler FileSource...

Job 11 : génération de lignes avec tRowGenerator

Dans ce job Talend appelé LINKS, nous allons générer des lignes constituées de lettres aléatoirement générées par le composant tRowGenerator, nous allons afficher ces lignes dans la log à l’aide du composant tLogRow, puis nous allons apprendre à déboguer les erreurs affichées dans la console de log, et enfin, nous allons afficher un message qui contient la date d’exécution du job à l’aide du composant tMsgBox.

images/02EP96.png

Le job Talend Links

Le composant tRowGenerator permet de générer des données aléatoires ou de générer un ID unique pour des données.

Dans ce job, un schéma contenant deux colonnes, ID et Colonne1, a été créé. Il a ensuite été demandé au composant tRowGenerator de générer 100 lignes qui contiennent des données avec une longueur égale à six caractères pour les deux colonnes ID et Colonne1, grâce à la fonction prédéfinie :

TalendString.getAsciiRandomString(int) 
images/02EP97.png

Paramétrages du composant tRowGenerator

 Cliquez sur Aperçu dans les paramètres du tRowGenerator pour afficher un aperçu des données qui vont être générées par le composant.

images/02EP98.png

Aperçu...

Job 12 : le contexte implicite avec tContextLoad

Dans ce job Talend CONTEXTLOAD nous allons voir comment utiliser un contexte implicite à l’aide du composant tContextLoad.

 Pour cela, transmettez au composant tContextLoad le fichier où se trouvent les contextes à utiliser en donnant le chemin du fichier au composant tFileInputDelimited_2.

images/02EP105.png

Job et paramétrages du composant tFileInputDelimited_2

 Toujours dans le composant tFileInputDelimited_2, créez deux variables de contexte portant le même nom que celles se trouvant dans le fichier à utiliser, à savoir Context.txt.

images/02EP106.png

Création des variables de contexte

images/02EP107.png

Données dans le fichier de contexte

images/02EP108.png

Paramètres du tContextLoad

Le composant tContextLoad doit avoir les mêmes variables de contexte que le composant tFileInputDelimited_2. Les variables de contexte doivent être les mêmes également dans le fichier Context.txt.

Dans la deuxième partie du job, nous allons directement mettre les noms des contextes suivi du nom du fichier généré en sortie, que ce soit pour le composant tFileInputDelimited_1 ou pour tFileOutputDelimited_1.

images/02EP109.png

Paramétrage du tFileInputDelimited_1

images/02EP110.png

Paramétrage du tFileOutputDelimited_1

Job 13 : générer des avertissements et capturer les erreurs

Dans ce job Talend Errors_and_Logs, les composants tWarn, tLoop, tDie et tLogCatcher (entre autres) vont être utilisés afin de générer des avertissements et capturer les éventuelles erreurs survenues lors de l’exécution du job.

images/02EP111.png

Job et paramètres du composant tWarn

tWarn est un composant qui déclenche un avertissement souvent détecté par le composant tLogCatcher pour un journal exhaustif.

tLoop est un composant qui exécute une tâche automatiquement, en fonction d’une boucle (peut-être d’une manière infinie, tInifiniteLoop).

tFileExist est un composant qui permet de vérifier si un fichier existe.

tDie est un composant qui permet, s’il y a une erreur, de mettre fin au job, il déclenche le composant tLogCatcher pour un journal exhaustif avant de supprimer le job.

tRowGenerator est un composant qui permet, si un fichier existe, de continuer le job. Il permet également de générer des données aléatoires ou de générer un identifiant unique pour des données.

tLogCatcher est un composant qui rassemble les métadonnées de traitement de la tâche au niveau de la tâche et au niveau du composant, et transfère les données au composant suivant pour affichage ou stockage.

Dans ce job...

Job 14 : orchestration des jobs

Le job Talend SUBJOB permet d’orchestrer deux jobs complémentaires de sorte que le deuxième s’exécute dès lors que le premier est exécuté sans générer d’erreur.

Pour illustrer l’orchestration des jobs, prenons les deux jobs vus précédemment, à savoir tFILTERCOLUMNS et tFILTERROW.

images/02EP122.png

Job et paramétrage du subjob tFILTERCOLUMNS

Pour réaliser un job d’orchestration, il suffit de glisser les jobs à orchestrer depuis le Référentiel vers l’espace de travail Talend.

En effectuant un double clic sur l’un des jobs, Talend renvoie directement vers le job en question en ouvrant de nouveaux onglets, tout en gardant l’onglet de départ actif.

Il est à noter que le déclencheur entre les deux jobs est OnSubjobOk et permet au deuxième job de s’exécuter si et seulement si le premier s’est exécuté sans erreur.

images/02EP123.png

Exemple d’un double clic sur le job tFILTERROW à la suite de tFILTERCOLUMNS

images/02EP124.png

Paramétrage du subjob tFILTERROW dans le job SUBJOB

Job 15 : chronométrer le temps d’exécution d’un job

Le job Talend tCHRONOMETER permet de chronométrer le temps d’exécution d’un job. Pour ce faire, de nouveaux composants tels que tPrejob, tPostjob, tChronometerStart, tChronometerStop vont être utilisés.

Afin de mieux prendre en main ce job, il est nécessaire de présenter les composants. 

tPrejob est un composant conçu pour déclencher l’exécution d’une tâche avant l’exécution du job principal.

tPostjob est un composant conçu pour déclencher l’exécution d’une tâche après l’exécution du job principal.

tChronometerStart est un composant qui fonctionne comme un chronomètre qui démarre le calcul du temps de traitement d’une ou plusieurs sous-tâches dans la tâche principale.

tChronometerStop est un composant qui fonctionne comme un chronomètre qui arrête de calculer le temps de traitement d’une ou plusieurs sous-tâches dans la tâche principale, ou qui arrête de calculer le temps de traitement d’une partie de la sous-tâche. tChronometerStop affiche le temps d’exécution total.

Les trois premiers composants présentés pour ce job (tPrejob, tPostjob et tChronometerStart) n’ont pas de paramètres.

images/02EP125.png

Paramètres...

Job 16 : tLibraryLoad pour vérifier la validité d’adresses e-mail

Le job Talend tLibraryLoad permet d’importer une libraire dans Talend afin de vérifier la validité d’une adresse e-mail, à l’aide du composant tLibraryLoad et du composant tJava.

images/02EP129.png

Job et bibliothèque à télécharger

Cette bibliothèque (jakarta-oro-2.0.8.jar), qu’il est possible de trouver et télécharger gratuitement en tapant son nom sur un moteur de recherche, consiste en un ensemble de classes Java de traitement de texte qui fournissent des expressions régulières (regex) compatibles avec Perl5.

 Après le téléchargement de cette bibliothèque sur le disque dur de l’ordinateur, cliquez sur les trois points et sélectionnez la libraire afin qu’elle soit importée dans Talend et plus précisément dans le composant tLibraryLoad

images/02EP130.png

Code dans le composant tJava

Dans ce code Java, commencez par déclarer l’e-mail que vous voulez vérifier. Les deux lignes suivantes sont des assignations, la première est utilisée pour créer un nouveau Matcher qui permet de vérifier si l’adresse e-mail saisie respecte les règles définies dans l’expression régulière et la deuxième est utilisée pour créer un nouveau...

Job 17 : calculer la distance de Levenshtein entre des mots

Le job Talend tFuzzyMatch permet de calculer la distance de Levenshtein entre le mot hello et d’autres mots comme hi, hani, Hello.

images/02EP133.png

Job et composants utilisés

images/02EP134.png

Paramétrage du composant tRowGenerator

À l’aide du composant tRowGenerator, dix lignes de type String ont été générées dans une colonne appelée word et dans laquelle les valeurs adéquates ont été insérées.

images/02EP135.png

Paramétrage du composant tFixedFlowInput

Comme son nom l’indique, le composant tFixedFlowInput sert à fixer un mot auquel il est possible de comparer d’autres mots (ceux qui ont été déclarés dans le composant tRowGenerator).

images/02EP136.png

Paramétrage du composant tFuzzyMatch

Le composant tFuzzyMatch sert à comparer une colonne du flux principal (qui se trouve dans tRowGenerator) avec une colonne de référence du flux de recherche (qui se trouve dans tFixedFlowInput). Il génère les données de flux principal affichant la distance. 

Les paramètres du composant tFuzzyMatch ont été configurés avec le Type de correspondance "Levenshtein" et la recherche dans un dictionnaire contenant la valeur "hello" provenant du composant tFixedFlowInput. La distance minimale a été définie...

Job 18 : utilisation du composant tJavaFlex

Le composant tJavaFlex est similaire au composant tJava. La différence réside dans le fait que le composant tJavaFlex crée un flux de données en sortie à partir du flux de données en entrée (aucune initialisation n’est donc nécessaire). Ce composant contient trois parties : Begin, Main et End. Il peut donc être placé seul ou en début de job, ou même au milieu en prenant en compte le flux de données.

images/02EP140.png

JOB_tJavaFlex et résultat dans la console

Méthode

 Déposez un composant tFileInputDelimited, un composant tJavaFlex et un composant tFileOutputDelimited dans l’espace de modélisation graphique de Talend.

 Reliez les composants avec des liens Row Main.

 Importez le fichier source, ici nommé employés, avec le composant tFileInputDelimited puis définissez son Schéma et mettez 1 dans en-tête, l’en-tête de fichiers ne correspondant pas à une donnée à afficher.

 Dans le composant tFileOutputDelimited, paramétrez le dossier de sortie du fichier et construisez le Schéma s’il n’existe pas tout en cochant la case Inclure l’en-tête.

 Paramétrez le composant tJavaFlex en mentionnant dans la partie code initial :

System.out.println("Content of file being transferred:\n");...

Job 19 : utilisation du composant tIntervalMatch

Le job Talend tIntervalMatch permet de détecter automatiquement si un véhicule est une voiture (car), un camion (truck) ou un grand camion (big truck). Pour cela, le composant tRowGenerator est utilisé pour générer des données aléatoires contenant une colonne pour le matricule du véhicule et une autre colonne pour son poids. Une base de connaissances est également utilisée sous forme d’un fichier texte (tFileInputDelimited), spécifiant l’intervalle du poids du véhicule pour considérer qu’il s’agit d’une voiture, d’un camion ou d’un grand camion. Le résultat du job est retourné dans la console grâce au composant tLogRow.

images/02EP141.png

Paramétrage du composant tRowGenerator

images/02EP142.png

Job et paramétrage du composant tFileInputDelimited

images/02EP143.png

Aperçu de la base de connaissances

images/02EP144.png

Paramétrage du composant tIntervalMatch

Dans le paramètre Colonne de recherche, la valeur weight correspond au poids du véhicule généré de façon aléatoire par le composant tRowGenerator.

Le paramètre Colonne (LOOKUP) correspond au nom de la première colonne du fichier de base de connaissances.

Le paramètre Colonne Lookup (min) nécessite de spécifier le nom de la deuxième colonne du fichier de base...

Job 20 : utilisation du composant tFileInputPositional

Un fichier positionnel est un fichier plat où les enregistrements positionnels d’un message d’instance du fichier plat contiennent des champs individuels (éléments de données) qui ont chacun une longueur prédéfinie. Les champs sont analysés selon ces longueurs.

Le job Talend tFileInputPositional permet de créer un fichier positionnel, de l’enregistrer dans les métadonnées, de le paramétrer selon les besoins et enfin de l’utiliser grâce au composant tFileInputPositional.

images/02EP146.png

Emplacement de la métadonnée Fichier positionnel dans le Référentiel

 Pour créer une connexion à un fichier délimité à partir de zéro, développez le nœud Métadonnées du Référentiel. Ensuite, faites un clic droit sur Fichier positionnel puis sélectionnez Créer un fichier positionnel dans le menu contextuel afin d’ouvrir l’assistant de configuration des métadonnées du fichier.

images/02EP147.png

Assistant de configuration des métadonnées du fichier positionnel (étape1)

 Donnez un nom au fichier, éventuellement un objectif et une description, puis cliquez sur Next.

images/02EP148.png

Assistant de configuration des métadonnées du fichier positionnel (étape2)

Dès...

Job 21 : apprendre à utiliser une regex avec tFileRegex

Le job Talend tFileRegex permet de générer une regex pour traiter un document texte afin de ne retourner en sortie que les données correspondant aux colonnes et aux lignes souhaitées.

images/02EP155.png

Job tFileRegex

images/02EP156.png

Paramétrage du composant tFileInputRegex

Dans Nom de fichier, il s’agit de chercher le document demo_regex.txt et d’indiquer le chemin vers celui-ci avec ou sans contexte, au choix.

Le séparateur de lignes dans ce document est un retour à la ligne.

images/02EP157.png

Aperçu du fichier demo_regex.txt

Nous souhaitons utiliser ce fichier pour ne retourner que les lignes qui satisfont toutes les conditions (nous devrons additionner toutes les conditions pour construire la regex) :

Première condition : toutes les lignes commencent par trois lettres majuscules ou minuscules (par exemple Aug).

Code :

"^"+ 
"([a-zA-Z]{3} 

Deuxième condition : à la suite de la première condition, la ligne sélectionnée doit comporter un espace suivi d’un nombre à deux caractères et d’un autre espace. 

Code :

\\s[0-9]{2}\\s 

Troisième condition : à la suite de la deuxième condition, la ligne sélectionnée doit comporter trois nombres à deux caractères, entrecoupés de deux points.

Code :...

Job 22 : générer facilement un fichier XML

Le job Talend tAdvancedFileOutputXML permet de générer facilement un fichier XML à partir de données elles-mêmes générées à l’aide du composant tRowGenerator.

images/02EP159.png

Composants utilisés pour ce job

images/p137.png

Paramétrage du composant tRowGenerator

images/02EP161.png

Paramétrage du composant tAdvancedFileOutputXML

images/02EP162.png

Schéma des deux composants

images/02EP163.png

Interface graphique du composant tAdvancedFileOutputXML

 Afin d’accéder à l’interface graphique du composant, double cliquez dessus. Créez d’abord un sous-élément (row dans ce job) comme élément boucle pour que le composant puisse récupérer toutes les lignes générées par le composant tRowGenerator. Pour ce faire, effectuez un clic droit sur rootTag puis sélectionnez ajouter un sous-élément.

 Ajoutez ensuite des attributs selon le type de données de la colonne générée par le composant tRowGenerator et reliez chaque colonne du schéma au type de données correspondant dans l’interface du composant tAdvancedFileOutputXML

 Pour ce faire, la colonne number peut être considérée comme un identifiant. Dans ce cas, ajoutez l’espace de noms SampleNameSpace en effectuant un clic droit sur le sous-élément...