#1 Thu 17 September 2015 14:37
- Benoit91
- Participant assidu
- Date d'inscription: 2 Oct 2008
- Messages: 263
workspace runner et temporisation de traitement
Bonjour
J'ai un traitement en lot (voir pièce jointe) qui me permet d'extraire les données de différents fichiers excel, de les modifier et de les restructurer avant intégration dans une base postgre/postgis.
La finalité de ce traitement est l'exploitation des données dans une cartographie (sous QGIS).
Dans ce traitement en lot, mes 3 premiers workspaces runner me permettent d'effectuer le traitement décrit plus haut. Le dernier workspace runner permet d'extraire une liste de données dont la jointure ne se fait pas entre les données canalisations et les données de notation itv (inspection télévisée).
Actuellement lorsque je lance mon traitement en lot je récupère un fichier excel avec des données dupliquées.
Est-il possible dans le traitement de lot de spécifier que le workspace runner ne s’exécute qu'une fois, à la fin de l'ensemble des processus des 3 premiers workspaces runner ?
Schématiquement:
1 => les 3 premiers workspace scannent mon dossier pour récupérer les données à intégrer en base postgres
2=> une fois que toutes les données ont été intégrés, le workspace runner 4 se lance.
Cordialement.
Hors ligne
#2 Fri 18 September 2015 08:53
Re: workspace runner et temporisation de traitement
Salut,
C'est pas le paramètre "Wait for Job to Complete" du workspacerunner qu'il faut mettre à YES ?
http://docs.safe.com/fme/2015.0/html/FM … paceRunner
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#3 Fri 18 September 2015 09:51
- Benoit91
- Participant assidu
- Date d'inscription: 2 Oct 2008
- Messages: 263
Re: workspace runner et temporisation de traitement
Bonjour
Oui normalement c'est ce paramètre.
Mais dans mes Workbenchs je fais parfois appel à la table de résultat (pour éviter les doublons ou faire un update de champ spécifique) donc dans le WorksapceRunner je bascule l'option "attendre la fin du traitement pour continuer" en 'oui'.
Ce qui fait que l'ensemble des WorkspacesRunner ont cette option en 'oui'.
De ce que je comprend du mode de fonctionnement actuel c'est que mon traitement s’exécute comme suit:
1 => Scan du dossier de stockage des fichiers source
2 => Traitement du 1er fichiers trouvé
3 => intégration en base de données (une table de synthèse et une table de détail)
4 => Mise à jour d'une table postgres permettant de signaler que tel fichier a été traité (et donc ne pas le traité une 2eme fois)
5 => Test de jointure de données entres les nouvelles données en BD et des données géographiques => je récupère les données qui ne se joignent pas.
Et donc pour chaque fichiers excel dans le dossier source mon traitement en lot suit ce schéma. Ce qui fais que dans mon fichier résultat de test de jointure il me duplique les données non jointes autant de fois qu'il y a de fichiers sources.
En gros si j'execute cette dernière étape, une fois que toutes données d'itv ont été stockées en BD, j'obtiens environ 300 données. Par contre avec mon traitement en lot j'en obtiens plus de 5 000 mais des données dupliquées X fois.
Je voudrais donc faire en sorte que les workspacerunner 1, 2 et 3 s’exécutent entièrement (scan et intégration de toutes les données sources) puis le workspacerunner se lance une fois pour clore le traitement
Je joint le traitement en lot et les workbenchs associés pour mieux comprendre.
Cordialement
Dernière modification par Benoit91 (Fri 18 September 2015 09:51)
Hors ligne