Résolution des problèmes de mémoire lors de l'utilisation du tMap - 6.1

Talend MDM Platform Studio Guide utilisateur

EnrichVersion
6.1
EnrichProdName
Talend MDM Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Avertissement

Pour les utilisateurs de Big Data uniquement :

Cette fonction n'est pas disponible dans la version MapReduce de tMap.

Lorsque vous devez traiter un nombre important de données, par exemple, de nombreuses colonnes, différents types de colonnes ou lignes, votre système peut rencontrer des problèmes de mémoire insuffisante empêchant votre Job de s'exécuter correctement, et plus particulièrement lorsque vous utilisez un composant tMap pour effectuer des transformations.

Une option (uniquement disponible en Java pour le moment) a été ajoutée au composant tMap, pour utiliser moins de mémoire lors du traitement des données de référence (lookup). En effet, au lieu de stocker les données de référence dans la mémoire système et ainsi en atteindre les limites, l'option Store temp data vous permet de stocker les données de référence dans un dossier temporaire sur votre disque dur.

Cette option peut être sélectionnée sur la table Lookup de la zone Input (à gauche) de l'éditeur du tMap, le [Map Editor].

Pour activer l'option Store temp data, suivez les étapes suivantes :

  1. Double-cliquez sur le composant tMap de votre Job pour lancer le [Map Editor].

  2. Dans le panneau de gauche, correspondant aux sources Input et Lookup, cliquez sur la table Lookup affichant les données de Lookup que vous souhaitez charger sur le disque pour ne pas encombrer la mémoire.

  3. Cliquez sur le bouton tMap settings pour afficher le tableau des propriétés.

  4. Cliquez sur le champ Value correspondant à l'option Store temp data, et cliquez sur le bouton [...] pour ouvrir la boîte de dialogue [Options].

  5. Dans la boîte de dialogue [Options], double-cliquez sur true, ou sélectionnez-le et cliquez sur OK pour activer l'option et fermer la boîte de dialogue.

Pour que cette option soit totalement active, vous devez définir le répertoire de votre disque dans lequel les données seront stockées, et la taille du buffer, à savoir le nombre de lignes de données stockées dans chaque fichier temporaire. Vous pouvez spécifier le répertoire de stockage temporaire des données et la taille du buffer à la fois à partir du Map Editor et de la vue Component du tMap.

Pour paramétrer le répertoire de stockage temporaire et la taille du buffer à partir du Map Editor :

  1. Cliquez sur le bouton Property Settings en haut de la zone Input pour ouvrir la boîte de dialogue [Property Settings].

  2. Dans la boîte de dialogue [Property Settings], renseignez le chemin d'accès complet vers le dossier dans lequel les données temporaire seront stockées dans le champ Temp data directory path.

  3. Dans le champ Max buffer size (nb of rows), spécifiez le nombre maximum de lignes contenues dans chaque fichier temporaire. La valeur par défaut est de 2 000 000 lignes.

  4. Cliquez sur OK pour valider les paramètres et fermer la boîte de dialogue [Property Settings].

Pour paramétrer le répertoire de stockage temporaire du composant tMap sans avoir à ouvrir le Map Editor :

  1. Cliquez sur le composant tMap dans l'espace de modélisation pour le sélectionner, puis sélectionnez la vue Component pour afficher l'onglet Basic settings.

  2. Dans la zone Store on disk, renseignez le chemin d'accès complet vers le dossier dans lequel les données temporaires seront stockées dans le champ Temp data directory path.

    Vous pouvez aussi utiliser une variable de contexte à l'aide du raccourci Ctrl+Espace si vous avez configuré une variable dans un groupe de contexte dans le Repository. Pour plus d'informations sur les contextes, consultez Utiliser les contextes et les variables.

A la fin de votre sous-job, les fichiers temporaires seront nettoyés.

Ainsi, vous limitez l'utilisation de mémoire dédiée pour le traitement des données de référence (lookup) sur votre disque.

Note

Etant donné que l'écriture du flux principal sur le disque nécessite le stockage de données, l'ordre des lignes en sortie peut ne pas être respecté.

Dans la vue Advanced settings, vous pouvez aussi ajouter un buffer, au besoin. Pour cela, renseignez le champ Max. buffer size (Nb of rows) afin de séparer les données stockées sur le disque en autant de fichiers que nécessaire.