job talend lisibilité bonne pratique

Il vous arrive très certainement de créer des jobs complexes, avec une multitude de composants. Cependant, à partir d’un certain nombre de composants, un job peut devenir illisible. En voici un exemple :

job talend illisible trop de composants

Ce job est particulièrement illisible car il comporte un très grand nombre de composants. De plus, comme chaque job a une taille (en termes de bytes) à ne pas dépasser, un job tel que celui-ci à de grandes probabilités de ne même pas s’exécuter. Que faire ?

 

Diminuer le nombre de composants

Diminuer le nombre de tMap

Dans un premier temps, on peut opter pour la suppression de quelques tMap. En effet, il est judicieux de se demander «Ai-je besoin de plusieurs tMap pour les transformations, ou bien pourrai-je faire plusieurs transformations dans un seul tMap ? »

Par exemple

Le sous-job ci-dessous…

sous-job taend tmap

… pourrait se transformer en ça

sous job talend tmap 2

 

Regrouper plusieurs sous job en un seul sous job

On peut aussi envisager de regrouper des sous-job en un seul sous-job, pour une meilleure lisibilité.

Les sous-jobs ci-dessous…

job talend plusieurs sous job

 

…pourraient être regroupés et ressembler à ça :

job talend regroupement de sous-job

 

Et cela grâce aux filtres du tMap !

job-talend-lisibilite6

 

Regrouper plusieurs sous job en un seul job fils

Le job ci-dessous…

job talend sous-job fils

 

…pourrait être divisé en jobs fils, comme cela :

job-talend-lisibilite8

Où les jobs « Chargement_fichiers » et « Chargement_tables » sont des jobs fils d’un job principal.

Voici à quoi ressemble le job « Chargement_fichiers »

job chargement fichiers

 

Et voici à quoi ressemble le job « Chargement_tables »

job talend chargement table

 

Attention à ne pas oublier de transmettre les contextes éventuellement !

job talend transmission contexte

 

Utiliser des joblets

Un joblet sert à regrouper plusieurs composants en un seul. Il est utile lorsqu’on utilise de manière récurrente les mêmes composants dans plusieurs jobs. C’est un peu comme si on crée un nouveau composant, et qu’on le réutilise dans plusieurs jobs. Il peut aussi être utilisé pour améliorer la lisibilité d’un job.

Imaginons le job suivant :

job talend joblet

Nous remarquons qu’il y a une partie qui se répète souvent. Et il est tentant de pouvoir « factoriser » cette partie.

job talend joblet

De plus les composants d’entrée ont le même schéma,

job talend schema fichier délimité

Schéma du fichier délimité

 

job talend schema fichier excel

Schéma du fichier Excel

 

job talend chema table clients

Schéma de la table Clients

 

Et les composants de sortie ont aussi le même schéma.

job talend schema fichier delimité sortie

Schéma du fichier délimité de sortie

 

job talend schema fichier excel sortie

Schéma du fichier Excel de sortie

 

job talend schema tMSSsqlOutput

Schéma du tMSSqlOutput

 

Nous allons donc créer un joblet qui contient cette partie.

job talend création joblet

 

Ce joblet ressemblera à cela :

job talend joblet

 

Le composant INPUT a le même schéma que le composant d’entrée dans le job principal :

job talend joblet schema input

 

…et le composant OUTPUT a le même schéma que le composant de sortie du job principal.

job talend joblet schema output

 

Ensuite dans le job principal, nous remplacerons toutes les parties qui se répètent par le joblet que nous venons de créer :

job talend emplacement job par joblet

 

Pour rappel,  le job d’origine ressemblait à ça :

job talend job d'origine

 

Nous avons donc amélioré la lisibilité du job grâce à l’utilisation d’un joblet pour les composants qui se répètent. De plus, la maintenance du job sera plus facile car si une règle change, on la modifiera une seule fois dans le joblet, au lieu de la modifier dans chaque sous-job !

En conclusion

Nous venons de voir quelques moyens d’améliorer la lisibilité d’un job. Il en existe bien d’autres évidemment, mais quoiqu’il en soit, ayez à l’esprit ces quelques points :

  • Un trop grand nombre de composants (à partir d’une trentaine en général) tend à rendre un job illisible,
  • Quand un job contient trop de sous-job, on peut les regrouper de manière logique et créer des jobs contenant ces groupes de sous-jobs. Ensuite ces derniers jobs seront des jobs fils d’un job qui les exécutera tous.
  • Quand un enchaînement de plusieurs composants se répète dans un job, il est possible de créer un joblet qui remplacera cet enchaînement de composants.

Améliorer la lisibilité d’un job permettra de se prémunir d’une erreur de type « talend exceeding 65535 bytes limit», mais facilite aussi la maintenance d’un job. Il faut donc penser à la lisibilité d’un job, et ce dès sa conception.

 


Apprenez d’autres bonnes pratiques en assistant à l’une des formations Talend animées par nos experts ! Découvrez-les dans notre catalogue !