Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

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

 

Pied de page des forums

Powered by FluxBB