Les bonnes pratiques talend (Normes & Conventions)

Structure générale des jobs

Voici les conventions officiels de talend que vous entendrez en formation:

  • Les lignes de type flux de données vont de gauche a droite (horizontal)
  • Les lignes de type itération vont de gauche à droite (horizontal)
  • Les liens de type On subjob OK, Component OK et Reject vont de haut en bas (vertical)
  • Dans un tMap les flux principaux sont toujours horizontaux et les flux de type lookup verticaux. Les lookups doivent se trouver en haut du tMap.
  • Les flux de type reject sont toujours en bas du composant.

Après la théorie, la pratique!

Dans le job ci-dessous vous noterez que je n’ai pas respecté la convention au niveau de la déclaration des connexions, mais entre vous et moi, c’est beaucoup plus lisible sous cette forme.
Variante sur les onComponentOK pour rendre le job plus lisible

Variante sur les onComponentOK pour rendre le job plus lisible

Optimisation des traitements

  • Utilisez une connexion pour l’input et une autre pour l’output. Ceci permet un gain de performance en évitant de créer et fermer des connexions MySQL inutilement.
  • Préférez l’option « enable stream » dans les inputs qui traite de gros volumes afin de gagner du temps. Attention au multiples input (en cas d’itération sur un stream) : dans ce cas créer une autre connexion de type input.
  • Utilisez des « extend insert » dans les outputs , voir des bulks insert en cas de grosse volumétrie.
  • Préférez des INSERT en vous assurant qu’il n’y ait pas de doublons avec un tMap avant l’insertion plutot que des UPDATE OR INSERT
  • En règle générale, maximisez la charge sur le serveur MySQL plutôt que Talend. Attention : S’il y a trop de jointures ceci peut au contraire ralentir le traitement. Cette règle n’est donc pas toujours vrai, mais l’est souvent.
  • Ne pas utiliser de tUnPivot sur de gros volumes. Préférer une solution alternative (ex: tMap).
  • Réduisez au maximum le nombre de colonnes dans les flux. Ne pas remonter 20 colonnes si vous utilisez que de 2 d’entre elles par exemple.
  • Ne JAMAIS utiliser un « SELECT * » dans vos input de base de données (ex: tMySQLInput) car si vous changez l’ordre des colonnes vous vous retrouverez dans le meilleur des cas avec une erreur d’exécution du job et dans la majorité (et pire) des cas avec des données corrompu. Imaginez que vos traitements aient corrompu vos données pendant un mois sans que vous vous en soyez rendu compte! Bon courage pour tout réparer!

Contrôle qualité

  • Monitorer les flux important pour permettre de détecter un problème éventuel.
  • Utiliser le tWarn pour donner des informations sur l’état d’avancement du job. (Visible dans la supervision que je propose)
  • Eviter les outputs dans la console pour les jobs qui sont croné. Cela pollue les logs du batch d’exécution.

3 comments

  1. schwinn elliptical machine reviews

    C’est l’info exacte que je cherche , merci ! Arron

    • Ravi que ça ait pu t’aider! D’ici la semaine prochaine je devrai terminer un deuxième tuto sur la configuration des stats avec la base de données que tu trouvera à la page tom(nt) du site

  2. benjamin

    Merci
    Tres clair et tres instructif :D

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>