Résolution des problèmes de mémoire lors de l'utilisation du 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 :
- Double-cliquez sur le composant tMap de votre Job pour lancer le [Map Editor].
- 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.
- Cliquez sur le bouton tMap settings pour afficher le tableau des propriétés.
- Cliquez sur le champ Value correspondant à l'option Store temp data, et cliquez sur le bouton [...] pour ouvrir la boîte de dialogue Options.
- 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 de la mémoire tampon (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 :
- Cliquez sur le bouton Property Settings en haut de la zone input pour ouvrir la boîte de dialogue Property Settings.
- 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.
- 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.
- Cliquez sur OK pour valider les paramètres et fermer la fenêtre Property Settings.
Pour paramétrer le répertoire de stockage temporaire du composant tMap sans avoir à ouvrir le Map Editor :
- 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.
- 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 contextes dans le Repository. Pour plus d'informations concernant les contextes, consultez Utiliser les contextes et les variables.
À la fin de votre sous-Job, les fichiers temporaires seront nettoyés.
Ainsi, vous limitez l'utilisation de mémoire allouée aux données de référence à écrire dans les fichiers temporaires stockés sur le disque.
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.