Bonnes pratiques
Introduction
Dans ce chapitre, nous allons aborder les bonnes pratiques permettant d’appréhender au mieux le travail de développeur. En effet, il est préférable d’avoir des conventions communes pour le travail en équipe. Les bonnes pratiques que nous allons voir dans ce chapitre sont des conventions suivies par la plupart des développeurs Talend, dans la mesure où il s’agit de conventions officielles.
Structure générale des jobs
Voici les conventions officielles de Talend :
-
Les lignes de type flux de données vont de gauche à 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 sont verticaux. Les lookups doivent se trouver en haut du tMap.
-
Les flux de type reject sont toujours en bas du composant.
Optimisation des traitements sous Talend
-
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.
-
Utilisez des extend insert dans les outputs, voir des bulk 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, plutôt que des UPDATE OR INSERT.
-
En règle générale, maximisez la charge sur le serveur MySQL plutôt que sur Talend. Attention : s’il y a trop de jointures, ceci peut au contraire ralentir le traitement. Cette règle est donc souvent vraie mais pas toujours.
-
Réduisez au maximum le nombre de colonnes dans les flux. Ne remontez pas vingt colonnes si vous n’utilisez que deux d’entre elles par exemple.
N’utilisez jamais de SELECT * dans vos input de base de données (ex. : tMySQLInput) car si vous changez l’ordre des colonnes vous risquez, dans le meilleur des cas, d’obtenir une erreur d’exécution du job, et dans la majorité (et pire) des cas, d’avoir des données corrompues.
-
N’utilisez pas de tUnPivot sur de gros volumes. Préférez une solution alternative (ex. : tMap).
-
Préférez l’option enablestream dans les inputs qui traitent de gros volumes...
Bonnes pratiques générales
-
Utilisez les répertoires de projet pour organiser vos travaux : les répertoires de projet vous permettent de regrouper vos travaux en fonction de leur fonctionnalité ou de leur utilisation.
-
Utilisez des noms de variables explicites : des noms de variables explicites facilitent la compréhension de votre travail par d’autres développeurs ou utilisateurs.
-
Utilisez les commentaires pour documenter vos travaux : utilisez des commentaires pour expliquer les étapes clés de votre travail et pour rendre votre code plus lisible.
-
Utilisez les connecteurs dédiés pour différents types de données, tels que les bases de données relationnelles, les fichiers CSV, les fichiers Excel, etc.
-
Utilisez les paramètres pour configurer les travaux de manière flexible et réutilisable.
-
Utilisez les contextes pour gérer les paramètres de production et éviter les erreurs de configuration.
-
Utilisez les routines pour regrouper des fonctionnalités réutilisables dans des blocs de code indépendants.
-
Utilisez les tâches de débogage pour tester vos travaux et détecter les erreurs avant de les mettre en production.
-
Utilisez les modules pour regrouper des travaux similaires, facilitant ainsi leur maintenance et leur réutilisation.
-
Utilisez les journaux pour suivre...
Contrôle qualité
-
Surveillez les flux importants pour permettre de détecter un problème éventuel.
-
Utilisez le tWarn pour donner des informations sur l’état d’avancement du job.
-
Évitez d’afficher les sorties dans la console pour les jobs erronés, car cela entraîne une pollution des journaux du lot d’exécution.
Normes de développement
1. Règles générales
Les développements Talend se font obligatoirement sous TOS (Talend Open Studio). Il appartient aux sites de migrer, s’ils le désirent, les développements de TOS vers TIS (Talend Integration Suite Studio).
La version de TOS utilisée par les sites contributeurs est la même pour tous. Elle est définie d’un commun accord.
Les composants utilisés dans les jobs sont obligatoirement natifs dans Talend, interdisant ainsi l’utilisation des composants ecosystem, cette disposition peut éventuellement être revue pour certains composants à condition que la communauté valide ce composant.
2. Règles liées au SQL
-
Évitez les injections SQL : utilisez des paramètres de requête ou des requêtes préparées pour éviter les vulnérabilités liées aux injections SQL. Ne concaténez pas directement des valeurs utilisateur dans les requêtes SQL.
-
Utilisez des connecteurs spécifiques aux bases de données : utilisez les connecteurs dédiés à chaque type de base de données (par exemple, tMysqlInput pour MySQL, tOracleOutput pour Oracle) pour assurer une intégration optimale et prendre en charge les fonctionnalités spécifiques à chaque SGBD.
-
Respectez les règles de syntaxe SQL : assurez-vous de respecter les règles de syntaxe propres à chaque SGBD utilisé. Vérifiez les conventions de nommage des tables, colonnes et autres objets SQL, ainsi que les règles de typage des données.
3. Règles liées aux fichiers délimités
-
Spécifiez correctement le délimiteur : assurez-vous de spécifier le bon caractère délimiteur utilisé dans le fichier (par exemple, une virgule, un point-virgule, une tabulation). Utilisez le composant approprié dans Talend, tel que tFileInputDelimited, et configurez-le avec le délimiteur correct.
-
Gérez les caractères spéciaux : si vos données contiennent des caractères spéciaux tels que des guillemets, des retours à la ligne ou le délimiteur lui-même, assurez-vous de les gérer correctement. Utilisez des options de configuration telles...