Sélectionner une page

Le logiciel FME est connu pour sa capacité à convertir les données entre différents formats ainsi qu’à appliquer des transformations de manière simple et rapide. La plupart des processus de conversion et de transformation simples s’exécutent rapidement; tout est prêt en deux temps trois mouvements. Il peut cependant arriver que des transformations plus importantes, impliquant plus de 10 000 ou 100 000 caractéristiques, prennent plus de temps à exécuter. En fonction de la durée du processus et de l’urgence du résultat, il peut être utile d’analyser comment rendre le Workspace plus efficace.

En règle générale, nous essayons d’utiliser les points forts de FME pour rendre le processus aussi efficace et rapide que possible afin d’économiser du temps et de la mémoire machine. Cela nécessite une compréhension approfondie de FME et de la manière dont chaque Reader, Writer et Transformer travaille pour en tirer le meilleur parti. Cela demande également du temps et des efforts pour revoir le Workspace et appliquer les bonnes transformations au bon moment. Si vos Workspaces sont exécutés en quelques secondes ou quelques minutes, le temps et la mémoire économisés ne valent pas forcément la peine d’être révisés. En revanche, si un Workspace prend plusieurs minutes ou heures pour s’exécuter, il peut être utile d’examiner si le processus pourrait être amélioré pour être plus efficace.

Voici quelques conseils et astuces pour rendre vos Workspaces plus efficaces :

1. Tirer profit des paramètres « SELECT » et « WHERE » avec les Readers de bases de données

Les formats des bases de données ont un paramètre pour appliquer « SELECT » et « WHERE ». Si vous ou un collègue avez une certaine connaissance du langage SQL, vous pouvez utiliser ces paramètres pour préfiltrer les données avec lesquelles vous devez travailler.

Parfois, il n’est pas nécessaire de lire le tableau complet, il suffit d’en obtenir quelques caractéristiques. En préfiltrant les données à l’aide d’une clause « WHERE » (ou « SELECT »), FME n’introduira que le résultat de cette clause dans le Workspace et empêchera la lecture de caractéristiques inutiles.

Étapes :

  • Ouvrir les paramètres du type de caractéristique et entrer une clause « WHERE ».
  • Cliquer sur OK.

2. Supprimer les attributs inutiles

De même que la clause « WHERE », certains attributs peuvent ne pas être nécessaires pour mener à bien le processus. Pour les tableaux ou les couches contenant des dizaines de champs ou plus, il est rare que nous ayons besoin d’extraire l’information de chacun de ces champs ou de tous les utiliser dans la conversion. Les données d’attributs peuvent peser lourd dans un processus et ralentir le Workspace (imaginez 35 000 caractéristiques avec 40 champs remplis pour chacune d’entre elles). En décochant les attributs inutiles, on allège les données et donc le processus.

Étapes :

  • Ouvrir les paramètres du type de caractéristique et aller à l’onglet User Attributes.
  • Désélectionner les attributs inutiles.
  • Cliquer sur OK.
  • Si les données sont lues à un moment ultérieur du processus, vous pouvez également utiliser les transformers AttributeRemover ou AttributeKeeper pour supprimer les attributs inutiles.

3. Réorganiser l’ordre des Readers et Writers

Il est possible de réordonner les Readers et les Writers dans la fenêtre du navigateur pour forcer l’ordre de lecture et d’écriture des ensembles de données. Utilisez d’abord cette fonction pour écrire des ensembles de données plus importants. Si vous disposez de deux Writers, l’un écrivant 500 caractéristiques et l’autre 2 000 000 de caractéristiques, commencez par le deuxième. Cela permettra de réduire le temps global d’exécution du Workspace.

Étapes :

  • Il suffit de cliquer sur le Reader ou le Writer à réorganiser puis de le glisser à sa nouvelle position. L’ordre utilisé est de haut en bas.
  • Ensuite, régler le paramètre de Workspace Order Writers By: à Position in Workbench Navigator.

4. Supprimer la géométrie des éléments

Dans le même ordre d’idée que la suppression d’attributs inutiles, le transport de données géométriques superflues peut ralentir un Workspace. Vous pouvez considérer qu’un processus qui ne fonctionne qu’avec des informations d’attributs est un type de processus qui ne nécessite pas la géométrie des éléments dans l’ensemble du Workspace. Les géométries complexes avec un bon nombre de particularités seraient de bons candidats pour ce cas, ou tout grand ensemble de données avec des géométries.

Le transformer GeometryRemover supprime toute la géométrie des données et ne conserve que les valeurs des attributs. Cependant, il existe une autre approche si la géométrie doit être conservée. Il est possible de remplacer la géométrie supprimée des caractéristiques en utilisant le transformer GeometryReplacer. Il est toutefois nécessaire de sauvegarder d’abord les informations de géométrie en tant qu’attribut sur la caractéristique grâce au transformer GeometryExtractor.

Étapes :

  • Utiliser un GeometryExtractor pour enregistrer la géométrie en tant qu’attribut sur l’élément. Par défaut, il créera un attribut appelé « _geometry ».
  • Ajouter ensuite un GeometryRemover pour supprimer la géométrie.
  • Poursuivre le traitement des attributs (ici représentés par un transformer personnalisé AttributeProcessing).
  • Après le traitement des attributs, restaurer la géométrie à l’aide du GeometryReplacer. Dans les paramètres, sélectionner Geometry Source en tant que « _geometry » ou le nom de l’attribut de géométrie créé à la première étape.

Il existe bien sûr de nombreuses autres astuces pour améliorer l’efficacité du traitement dans votre Workspace. Certaines d’entre elles visent d’autres problèmes en particulier ou sont utiles dans des situations différentes. Cela dit, ces astuces sont simples à appliquer et peuvent apporter des gains intéressants de temps de traitement et réduire la charge sur les ressources du système.

Rendre vos Workspaces FME plus rapides, ça vous dit? Nous sommes champions en la matière!