#1 Sat 27 January 2018 09:19
- PaulH
- Participant assidu
- Lieu: Nantes
- Date d'inscription: 1 Aug 2007
- Messages: 463
mise à jour différentielle sur postgis
Bonjour à tous,
J'aurais besoin d'aide sur un script et notamment sur des réglages de scripts qui sont je pense de bases mais pas forcément vu lorsqu'on apprend FME un peu tout seul au fil de l'eau...
Voilà alors je suis en train de créer script afin de capter un flux WFS et l'intégrer en base de données postgres/gis derrière. Il y a d'autres transformers au milieu mais j'en fais mon affaire.
Ce que je souhaiterais c'est qu'une fois le gros téléchargement effectué la première fois, que mon script ne peuple la base de données que des nouvelles entités ou bien efface/remplace les entités ayant été modifiées de manière attributaires?
Enfin, afin que je puisse réaliser un peu de monitoring, il faudrait que je puisse générer un "rapport" (une liste?) me permettant de voir quelles nouvelles entités ont été intégrées dans ma base.
Merci d'avance !!
Paul Hedin
ex-luern
Hors ligne
#2 Sat 27 January 2018 22:07
Re: mise à jour différentielle sur postgis
Bonjour,
Pour détecter la présence en base il faut avoir un identifiant unique ou alors tenter une jointure spatiale via spatialrelator avec un test de type equals.
Si il y a un id unique, utilisez un joiner pour faire une requête entre votre base et les données wfs. Si l'objet existe soit vous partez du principe que vous ne mettez pas à jour et dans ce cas vous laissez de côté le port joined et intégrez les données issues du second port unjoined.
Au besoin vous pouvez également faire des tests sur les attributs pour voir si il y a eu des mises à jours.
Et si il y a des màj à faire, vous pouvez utiliser le transformer DatabaseUpdater.
Bon courage pour la suite de votre script.
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#3 Tue 30 January 2018 09:46
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: mise à jour différentielle sur postgis
Aloha
ChangeDetector est aussi une piste.
Au besoin, utiliser un script python ou tcl pour hasher les entités et ainsi plus facilement les comparer (sous la forme d'une chaine MD5 ou autre par exemple).
Cordialement
Dernière modification par Pierre (Tue 30 January 2018 09:47)
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne