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 :

  1. importer les données ;
  2. les reprojeter ;
  3. les placer dans les tables thématique ;
  4. repérer les données existantes ;
  5. mettre à jour les données existantes ;
  6. ajouter les nouvelles données ;
  7. désactiver les données mises à jour.

et un autre plus précis qui définira les actions pour chacune de ces étapes.

Terminologies :

Job simple

Nous allons créer un job simple qui permettra d'importer un Shapefile dans une table PostGIS.

Nous n'expliquerons pas ici comment créer une base PostGIS. Il est supposé ici que vous possédiez une telle base !

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 :

  1. choisissez 'créer un nouveau projet' dans la liste déroulante et cliquez sur Go,
  2. 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,
  3. cliquez sur Terminer,
  4. 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.

Fenêtre principale de SDI

Ouvrez l'arborescence sur la droite jusqu'au répertoire input (GeoFile). 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'.
Onglets components

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.

Gestionnaire des schéma des components

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 LignePrincipal :

Menu contextuel des components

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 :

Éditeur de Map

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.

Éditeur de Map configuré

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”.