Utiliser des variables de contexte pour les requêtes SQL générées dynamiquement
C'est une pratique commune d'effectuer des concaténations de chaînes de caractères lors de la formation de requêtes SQL de manière programmatique. Les Jobs Talend Data Integration vous permettent d'effectuer ces concaténations de chaînes de caractères dans des composants relatifs au SQL, comme le tDBRow et les composants de code personnalisé, comme le tJavaRow. En fonction du composant dans lequel sont effectuées les concaténations pour former une requête SQL, elles peuvent conduire à certaines difficultés dans le suivi du lignage de données. La solution est d'utiliser des variables de contexte pour la partie dynamique de la requête SQL, au sein de composants SQL, au lieu de code personnalisé.
Prenez l'exemple du Job simple suivant, contenant uniquement un composant tDBInput utilisant une variable de contexte définie pour le nom de la table.
![](/fr-FR/best-practices-for-utilizing-talend-data-catalog-in-your-etl-elt-processes/8.0/Content/Resources/images/tdi_best_practice_concatenate_context_variables.png)
Le lignage de données fonctionne sans problème.
![](/fr-FR/best-practices-for-utilizing-talend-data-catalog-in-your-etl-elt-processes/8.0/Content/Resources/images/tdi_best_practice_correct_lineage.png)
Le second Job d'exemple contient un composant tJavaRow, dans lequel la requête SQL est générée avec une concaténation. La même variable de contexte est utilisée pour le nom de la table, comme dans le premier Job.
![](/fr-FR/best-practices-for-utilizing-talend-data-catalog-in-your-etl-elt-processes/8.0/Content/Resources/images/tdi_best_practice_sql_query_with_concatenate.png)
Avec le tDBRow contenant la ligne de sortie sql, la définition est faite pour une requête.
![](/fr-FR/best-practices-for-utilizing-talend-data-catalog-in-your-etl-elt-processes/8.0/Content/Resources/images/tdi_best_practice_sql_defined_for_query.png)
Même si le flux de données indique le lien de bout en bout, le lignage de données est brisé.
![](/fr-FR/best-practices-for-utilizing-talend-data-catalog-in-your-etl-elt-processes/8.0/Content/Resources/images/tdi_best_practice_lineage_break.png)