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 :
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…
… pourrait se transformer en ça
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…
…pourraient être regroupés et ressembler à ça :
Et cela grâce aux filtres du tMap !
Regrouper plusieurs sous job en un seul job fils
Le job ci-dessous…
…pourrait être divisé en jobs fils, comme cela :
Où les jobs « Chargement_fichiers » et « Chargement_tables » sont des jobs fils d’un job principal.
Voici à quoi ressemble le job « Chargement_fichiers »
Et voici à quoi ressemble le job « Chargement_tables »
Attention à ne pas oublier de transmettre les contextes éventuellement !
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 :
Nous remarquons qu’il y a une partie qui se répète souvent. Et il est tentant de pouvoir « factoriser » cette partie.
De plus les composants d’entrée ont le même schéma,
Et les composants de sortie ont aussi le même schéma.
Nous allons donc créer un joblet qui contient cette partie.
Ce joblet ressemblera à cela :
Le composant INPUT a le même schéma que le composant d’entrée dans le job principal :
…et le composant OUTPUT a le même schéma que le composant de sortie du job principal.
Ensuite dans le job principal, nous remplacerons toutes les parties qui se répètent par le joblet que nous venons de créer :
Pour rappel, le job d’origine ressemblait à ça :
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 !
Sections commentaires non disponible.