Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Nous rencontrons actuellement une difficulté lors de l’exécution d’un job Talend et souhaiterions solliciter votre assistance.
Le job est exécuté via Talend Management Console (TMC) sur un Talend Remote Engine installé sur une machine virtuelle Windows disposant de 8 Go de RAM.
Les traitements portent sur des volumes très importants de fichiers CSV.
Les données sont stockées exclusivement sous forme de fichiers CSV (aucune base de données utilisée).
Le job échoue systématiquement avec l’erreur suivante :
java.lang.OutOfMemoryError: Java heap space
Vérification de la mémoire disponible sur la machine (RAM suffisante et stable).
Ajustement progressif de la heap Java du processus exécutant le job :
confirmation via la ligne de commande que le job est bien lancé avec-Xms512M -Xmx2048M, puis -Xms1024M -Xmx3072M.
Redémarrage du Talend Remote Engine après chaque modification.
Vérification qu’aucune exécution concurrente n’est en cours.
Malgré ces ajustements, l’erreur persiste.
Nous souhaitons obtenir vos recommandations sur :
la meilleure approche pour gérer des opérations de déduplication et/ou de tri sur de très gros fichiers CSV dans Talend,
les bonnes pratiques à adopter pour éviter une consommation excessive de mémoire dans ce type de contexte,
ou toute configuration spécifique Talend/JVM qui pourrait être envisagée dans ce cas.
Merci par avance pour votre aide.
Hello,
The OutOfMemoryError indicates that the JVM running Talend Studio or the job does not have enough heap memory for the current workload.
Common causes:
Large datasets loaded entirely into memory
Use of in-memory components (for example tHash*, complex tMap joins)
Insufficient default JVM heap size
Recommended actions:
Increase the JVM heap size (-Xmx) for Talend Studio or the job runtime.
Optimize the job to process data in a streaming manner.
Avoid loading large volumes fully into memory; apply filters early.
Split large datasets into smaller chunks where possible.
Note:
Increasing memory alone may not be sufficient if the job design is not optimized.
Thanks,
Gourav
Bonjour,
Merci pour votre retour.
Nous comprenons que l’erreur est liée à des opérations globales en mémoire sur de gros volumes.
Dans notre cas, la contrainte est de rester sur un stockage fichier (CSV uniquement) et de produire, pour chaque clé métier, l’enregistrement le plus récent.
Afin d’éviter une consommation excessive de heap, pourriez-vous nous indiquer :
s’il existe dans Talend un mécanisme de tri/déduplication s’appuyant sur le disque (external sort) plutôt que sur la mémoire,
ou un pattern Talend recommandé pour implémenter ce type de déduplication sur fichiers volumineux,
ou des composants alternatifs plus adaptés à ce cas d’usage.
Nous souhaitons nous aligner sur les bonnes pratiques Talend pour garantir la scalabilité du traitement.
Cordialement,
Hello,
Yes, Talend provides a supported and scalable way to handle large-file sort and deduplication while limiting heap usage.
1. Disk-based (external) sort
Talend supports external (disk-based) sorting through the tSortRow component.
Enable “Use external sort” in tSortRow
Sorting is performed on disk instead of in JVM memory
This is the recommended approach for large CSV files
There is no separate external deduplication component; deduplication is performed after sorting, in streaming mode.
. Recommended Talend pattern for large-file deduplication
To keep the most recent record per business key, the Talend best-practice pattern is:
tFileInputDelimited
-> tSortRow (Use external sort = true)
- Sort by Business Key (ASC)
- Sort by Date field (DESC)
-> tUniqRow (Key = Business Key)
-> tFileOutputDelimited
This pattern:
1.Avoids global in-memory operations
2.Processes rows sequentially
3.Scales well for large file volumes
More suitable components
Recommended: tSortRow (external sort) + tUniqRow
Not recommended for large files: tMap with unique rows, tAggregateRow, tHash*
Alternative (if available): Big Data / Spark jobs for very large volumes
Thanks,
Gourav
Bonjour,
Suite à vos recommandations, nous avons activé l’option « Trier sur le disque (tri externe) » sur le composant tSortRow afin de limiter l’utilisation mémoire lors du traitement de fichiers CSV volumineux.
Cependant, après cette modification, le job ne démarre plus en local depuis Talend Open Studio et échoue lors de la génération/compilation avec l’erreur suivante :
org.talend.designer.runprocess.ProcessorException:
Le Job est mal configuré.
Message détaillé : org.talend.designer cannot be resolved to a type
Points importants à noter :
L’erreur apparaît uniquement lorsque l’option “Trier sur le disque” est activée.
Lorsque cette option est désactivée, le job s’exécute correctement (jusqu’à rencontrer ensuite une limite mémoire sur de très gros volumes).
Le problème survient avant l’exécution, au moment de la génération du code Java par Talend Studio.
Nous exécutons actuellement le job en local depuis Talend Open Studio (avant déploiement sur Remote Engine).
Aucun import ou code custom ne référence volontairement des packages org.talend.designer.
Pourriez-vous nous indiquer :
S’il existe un prérequis spécifique (version de Studio, patch, configuration) pour utiliser le tri externe de tSortRow sans erreur de compilation ?
Si ce comportement est connu dans certaines versions de Talend Open Studio ?
S’il y a une configuration recommandée pour tester le tri externe en local Studio avant exécution sur Remote Engine ?
Nous restons bien entendu disponibles pour fournir des logs complémentaires ou des informations sur la version exacte de Talend Studio utilisée.
Merci par avance pour votre aide.
Hello,
Thank you for the detailed description.
Based on the symptoms, this issue is not related to your job logic, but to a Studio-side limitation / known behavior in certain Talend Open Studio versions when enabling tSortRow --> “Sort on disk (external sorting)”.
Root cause
When external sorting is enabled, tSortRow generates additional Java code during the design-time code generation phase.
In some Talend Open Studio builds, this code generation incorrectly references internal Designer classes, leading to compilation errors such as: org.talend.designer cannot be resolved to a type
This explains why:
The failure occurs before execution, during build/compilation
The error appears only when external sorting is enabled
No custom code explicitly references org.talend.designer
The issue happens locally in Studio, not at runtime logic level
Answers to your questions
1. Prerequisites to use external sorting without compilation errors
External sorting requires a Studio version and patch level where the tSortRow external sort code generation is fully supported. Some Talend Open Studio versions have incomplete Designer dependencies, which can cause this compilation failure.
2. Is this behavior known in some Talend Open Studio versions?
Yes. Similar Studio-side compilation issues have been reported when advanced component features rely on internal Designer classes that are not exposed correctly in Open Studio builds. This is a design-time limitation, not a runtime one.
3. Recommended way to test external sorting
Talend-recommended approaches are:
Ensure you are using the latest available patch for your Talend Open Studio version
Validate the job using a standalone job export or directly on the Remote Engine, where runtime dependencies are complete
As a temporary local workaround:
Disable external sorting for Studio testing
Enable it again before execution on Remote Engine
Merci beaucoup 🙂
Thanks,
Gourav
Bonjour,
Merci beaucoup pour votre retour détaillé et pour les explications fournies concernant le comportement de tSortRow avec l’option “Trier sur disque (tri externe)” dans Talend Open Studio.
Votre analyse confirme effectivement ce que nous observons de notre côté :
l’erreur ne semble pas liée à la logique fonctionnelle du job, mais à une limitation connue de génération de code côté Studio lorsque le tri externe est activé.
Cependant, nous rencontrons actuellement un blocage supplémentaire :
Lorsque l’option “Trier sur disque” est activée dans tSortRow, le job :
échoue avant l’exécution, lors de la phase de génération/compilation,
affiche systématiquement l’erreur :
org.talend.designer cannot be resolved to a type
et ne peut pas être publié (export ou déploiement) vers TMC pour etre éxécuté via le Remote Engine, ce qui nous empêche de valider l’exécution dans un environnement où les dépendances seraient complètes.
À noter que :
nous utilisons déjà la dernière version disponible de Talend Open Studio 8 (R2025-09 v2),
le même job fonctionne avec l'erreur
java.lang.OutOfMemoryError: Java heap space
tant que l’option tri externe reste désactivée,
l’erreur apparaît uniquement dès l’activation du tri externe, même en exécution locale.
Dans ce contexte, pourriez-vous s’il vous plaît nous confirmer officiellement :
qu’il n’existe pas de correctif ou contournement côté Talend Open Studio permettant d’utiliser le tri externe de tSortRow sans provoquer cette erreur de compilation,
et que la seule approche viable en Open Studio consiste soit à désactiver le tri externe, soit à utiliser une alternative de traitement externe au Studio pour les très gros volumes CSV.
Cette confirmation nous aiderait à valider définitivement notre choix d’architecture et à documenter clairement cette limitation.
Merci encore pour votre aide et votre disponibilité.
Cordialement,
Hello,
At this time, there is no specific Qlik/Talend KB or documentation that explicitly states that tSortRow external sorting is not supported in Talend Open Studio. However, this behavior is consistent with known Talend Open Studio design-time limitations.
It is important to note that:
Talend Open Studio performs Java code generation at design time
Enabling external sorting in tSortRow introduces additional internal dependencies
Talend Open Studio does not expose all internal Designer classes required for this code generation
As a result, compilation fails with errors such as:org.talend.designer cannot be resolved to a type
While the tSortRow external sorting option is documented, its availability does not guarantee full support across all Studio distributions, particularly Talend Open Studio.
This explains why:
The error occurs before execution
Job export and publication to TMC are blocked
Execution on Remote Engine cannot be validated
The behavior persists even on the latest Talend Open Studio 8 versions
This should therefore be considered a Talend Open Studio design-time limitation, not a configuration or job logic issue, and should be factored into architectural decisions.
Thanks,
Gourav