Sélectionner une page

Accélérer les tests de développement avec les données en cache

Une des parties les plus stimulantes de travailler avec FME est la conception de nouveaux workspaces. Cela constitue cependant quelques défis. Mais soyez sans crainte, vous pourrez bientôt vous épargner plusieurs tâches longues et redondantes que vous auriez dû effectuer sans l’aide de FME.

Tester les workspaces peut prendre beaucoup de temps. Il faut ajuster les paramètres, ajouter/retirer certains Transformers et puis relancer le processus jusqu’à ce que notre traitement nous permette d’aboutir au résultat désiré. Parfois les données sont très volumineuses ou parfois, le traitement est complexe et simplement long à rouler. Tester le workspace au complet à chaque ajustement de paramètre devient alors un peu pénible.

Et s’il était possible de tester uniquement la section que nous avons modifié? Avec l’arrivée de FME Desktop 2018, une nouvelle fonction a fait son entrée : le « feature caching ».L’objectif de cette fonction est d’utiliser les données en cache produites par FME lors de l’exécution d’un workspace pour :

  1. Visualiser la donnée à chaque étape d’un workspace
  2. Réaliser des exécutions partielles du processus. 

Cela a pour effet d’accélérer grandement le travail de développement d’un workspace.
Pour activer la fonction, il faut cliquer sur l’icône de loupe dans la barre d’outils.

  1. Visualiser la donnée à chaque étape d’un workspace

Pour utiliser les fonctions du Feature Caching, il faut d’abord lancer le workspace une première fois. Lorsque le workspace a fini d’être exécuté, des petites loupes vertes s’ajoutent à chaque port de sortie des Transformers et des Readers :

Celles-ci nous permettent « d’inspecter » la donnée à tout moment. Il suffit simplement de cliquer sur la loupe du moment où nous voulons voir la donnée.

Cette fonction permet ainsi d’économiser du temps pour l’ajout de plusieurs Inspectors à chaque endroit où nous souhaitons visualiser la donnée, comme ce qui aurait été le cas dans les éditions précédentes :

2. Réaliser des exécutions partielles du processus

En conservant ainsi les données en mémoire cache, il est également possible de lancer uniquement certaines portions d’un workspace (exécutions partielles). Cette fonction permet d’économiser beaucoup de temps car jusqu’à la version 2018 de FME, il était nécessaire de lancer un workspace FME depuis le début du processus afin de tester chaque modification que l’on faisait.

Ainsi avant 2018, si nous faisions une modification au AreaCalculator, nous devions désactiver le Transformer subséquent, ajouter un Inspector au AreaCalculator pour voir le résultat de mon processus.

Maintenant, avec le FeatureCaching, si nous faisons une modification au AreaCalculator, nous avons l’option de ne lancer que la transformation apportée par ce Transformer en sélectionnant l’option « Run To This ». Il faut d’abord sélectionner le Transformer et l’option apparaîtra au-dessus. Noter que lorsqu’une modification est effectuée, la loupe verte devient jaune, ce qui signifie que les données en cache ne représentent plus le résultat des paramètres du Transformer.

En choisissant cette option, il n’y a que la portion surlignée en vert (ci-haut) qui est exécutée. Il s’agit de la section à réaliser depuis la dernière mise en cache. Si une modification avait également été apportée au AttributeManager, la section surlignée en vert serait plus longue.

Par la suite, nous pouvons consulter le résultat en cliquant sur la loupe verte. Nous passons alors d’un traitement d’une durée de 0.9 secondes à partir du début, à une portion de 0.2 secondes que pour le calcul du AreaCalculator. Dans cet exemple, la différence de temps n’est pas exceptionnelle car le début du traitement est léger, mais dans d’autres cas, c’est beaucoup plus significatif.

Une autre option est offerte à côté de « Run To This », soit son complément : « Run From This ».

Cette option permet d’effectuer l’opération complémentaire, soit lancer la section subséquente au Transformer sélectionné. La portion affectée par cette opération est également surlignée en vert.

En résumé, voici les meilleures situations pour utiliser le Feature Caching :

  • – En phase de développement seulement. Il est inutile de conserver toutes les données en caches lorsque le workspace est opérationel en production
  • Lorsque le workspace prend beaucoup de temps à rouler et que vous testez des modifications réalisées au milieu ou à la fin du workspace. Vous économiserez ainsi tout le temps nécessaire à compléter les premières étapes du workspace.
  • Les requêtes effectuées sur le web (via le HTTPCaller par exemple) sont de bons candidats au Feature Caching en développement. Auparavant en période de test, il était nécessaire de refaire la requête HTTP à chaque fois. Maintenant avec le feature caching, il est possible de tester et de compléter le reste du workspace sans relancer la même requête à chaque fois, ce qui peut parfois économiser de précieuses minutes.

À éviter avec le Feature Caching :

Les trop grands jeux de données. L’accumulation de plusieurs milliers d’entités en mémoire va ralentir la performance du workspace. Si les jeux de données sont volumineux, il est plus intéressant de réduire le nombre d’entités lues durant la phase de développement (paramètre « Max Features To Read » du Reader dans la fenêtre du Navigator).

 

Vous cherchez à optimiser vos workspaces?