- Vous êtes ici: Accéder au Wiki GeoRezo » Accueil : Wiki GeoRezo » Les logiciels en géomatique » Spatial Data Integrator (SDI) » Créer un job
Table des matières
Créer un job
Dans la même logique, vous trouverez d'autres chapitres qui peuvent vous intéresser :
Introduction
Un job est constitué d'un ensemble de component permettant de réaliser une action ou une étape au sein du processus plus large de réalisation d'une tache particulière. Par exemple, importer des données OSM régulièrement en tenant compte du versionning des données devra prendre en compte l'existance d'une données, la comparer avec la nouvelle, insérer les changements et déclarer l'ancienne données inactive. Cette tache pourrait se présenter sous forme de trois étapes : on importe les données, les découpent dans chaque table temporaire (building, limite régionale, limite départementale, etc.) et les reprojetons dans la bonne projection, puis on compare les données en réalisant une jointure sur l'id de la données enfin on désactive les vielles données, et on insère les données.
Il est souvent possible de faire une tache en un seul flux mais cela est déconseillé car cela peut entraîner des ralentissements, et en cas de problème, il est plus difficile de retrouver l'action qui est incorrecte. La première étape est donc de réfléchir au processus à mettre en place. Il est évident qu'un peu d'expérience dans l'utilisation de SDI vous facilitera une telle démarche car la logique est généralement très différente entre une méthode à base de script SQL et une à base de SDI. Mais l'écrire vous donnera des vue générale, n'hésitez pas à faire deux schémas : un conceptuel sur les différentes étapes à entreprendre, par exemple :
- importer les données ;
- les reprojeter ;
- les placer dans les tables thématique ;
- repérer les données existantes ;
- mettre à jour les données existantes ;
- ajouter les nouvelles données ;
- désactiver les données mises à jour.
et un autre plus précis qui définira les actions pour chacune de ces étapes.
Terminologies :
- action : processus qui modifie le flux entrant en flux sortant. Généralement un ensemble de component (entrant → action → sortant). Il peut être définie dans un schéma conceptuel générale sous forme d'un verbe :
- étape : ensemble d'actions qui modifie d'une manière complexe les données sources. Est représenté sous forme d'un job.
- flux : entrant pour les données qui arrivent et sortant pour celles qui ont été modifiées, ils sont liés à un component qui modifie la données (tMap, etc.)
Job simple
Nous allons créer un job simple qui permettra d'importer un Shapefile dans une table PostGIS.
Récupérez les données au format Shapefile d'OpenStreetMap hébergé sur Geofabrik et décompressez-les dans un répertoire.
Après avoir lancé SDI, créez un nouveau projet Java comme cela :
- choisissez 'créer un nouveau projet' dans la liste déroulante et cliquez sur Go,
- définissez dans la nouvelle fenêtre un nom pour le projet et renseignez éventuellement les autres paramètres optionnels et cochez la case Java,
- cliquez sur Terminer,
- choisissez votre projet dans la liste déroulante en dessous des actions sur les projets :
Après un temps de chargement des bibliothèques Java, l'application se présente à vous. Il se peut que vous voyez une fenêtre de bienvenu avec un bouton “Start now” en bas au centre. Créez un nouveau job comme cela : cliquez droit dans le menu de gauche sur Job design et choisissez Create job. Remplissez le titre, éventuellement une description. Appelons-le convertShape.
Après la création d'un job, celui-ci s'ouvre par défaut.
Ouvrez l'arborescence sur la droite jusqu'au répertoire input (Geo → File). Cliquez sur sShapefileInput puis sur l'espace de travail au centre. Le component apparaît.
Pour configurer les components vous devez les sélectionner puis activer l'onglet 'Component'.
Pour le component sShapefileInput vous pouvez définir le chemin vers le fichier (choisissez le fichier roads.shp de l'archive Geofabrik), le schéma de la table et éventuellement forcer le système de projection. Il vous faut ensuite cliquer sur le bouton Éditer le schéma et configurez le schéma. Nous apprendrons plus tard comment éviter cette étape un peu fastidieuse.
Recherchez maintenant les components tMap et sMapinfoOuput et placez-les sur l'espace de travail. Puis faites un clic-droit sur le component sShapefileInput et choisissez Ligne → Principal :
Une ligne part du component et suit la sourie. Cliquez sur le component tMap. Vous venez de créer un flux entre deux components. Un autre type de flux existe : itération. Vous pouvez également relier deux components via des déclencheurs : si réussite du component, si échec du component, si réussite du sous-job, si échec du sous-job, Éxécuter si. Nous verrons ces déclencheurs un peu plus tard.
Faîtes la même chose entre le component tMap et le component sMapinfoOutput. Lorsque vous créez un flux entre un tMap et un autre component, vous devez nommez le flux. En effet le tMap vous permet de réaliser plusieurs export : échec de jointure, réussite de jointure, différent flux provenant de plusieurs flux en entrée, flux dupliqué, etc. Le tMap affiche une icône rouge, si vous passez la souris dessus une infobulle affiche la raison du problème : “Le schéma/lien de sortie nommée “XXXX” n'a pas de colonne de définie, merci de vérifier”. Ce que nous allons faire.
Quand vous avez créé le flux, ouvrez la fenêtre de configuration du tMap, soit en double cliquant dessus, soit en cliquant sur le bouton “Éditeur de Map”. La fenêtre suivante s'affiche :
Sélectionnez l'ensemble des colonnes listées dans la section gauche (le flux en entré du tMap) et glissé-déposez dans la section de droite, dans l'espace dont le nom est celui que vous avez donné au flux en sortie.
Cliquez sur ok et répondez oui à la question “Voulez vous propager les changements ?”. Enfin, cliquez sur le component de sortie et choisissez le chemin et le nom du fichier en sortie.
Vous pouvez maintenant lancé le job en cliquant sur l'onglet “Exécuter” puis sur le bouton “Exécuter”.