Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parLouis Pothier Modifié depuis plus de 8 années
1
Implémentation d’une interface pour l’exécution d’ETL à distance Projet de développement logiciel dans le cadre du cours SCG 64739 : « Réalisation d’Applications en SIG » Présenté par Charlotte Declercq Lundi 16 avril 2007
2
Plan de la présentation Contexte Analyse Réalisation Démonstration Calendrier Tests et suggestions
3
Contexte Gros volume de données provenant de sources transactionnelles Données agrégées, non volatiles –Pré calculées ou non –Cube de données Système d’information décisionnel –Analyser rapidement les données d’une organisation Intérêt récent pour des données localisées –Naissance du SOLAP (U. Laval & Kheops) Entrepôts de données géodécisionnels
4
Contexte Cube Dimension Mesure Structure transactionnelle -> schéma étoile ou structure multidimensionnelle En amont de l’entrepôt (ETL): –Extract –Transform : Filtrage, codage, synchronisation –Load : peuplement du cube ETL : Construction de l’entrepôt
5
Contexte « Développement d’un service web de propagation des mises à jour au sein d’entrepôts de données géodécisionnels » But : reconstruction des parties utiles du cube (ETL) –propager les mises à jour Service web : architecture orientée services –Interopérabilité, traitements géographiques à distance, maîtrise du processus Sujet de maîtrise
6
Contexte Développer une application qui permet de lancer la propagation des mises à jour à distance –donc : ETL via web Objectifs spécifiques –Exécuter des transformations définies –Exécuter des transformations distantes –Charger des transformations Définition du projet
7
Analyse Architecture Client Web Tiers Client Serveur Web Conteneur de Servlets et de JSP Tiers Web API GeoKettle Bibilothèque de Transformations /Jobs http / xhtml JSP Servlet jdbc Bases de données
8
Analyse Base de données : PostgreSQL / Postgis –Open source –Postgis : gestion des objets spatiaux –PGAdmin ETL : Kettle (Pentaho) –Open Source –Gère l’évolution temporelle des dimensions Slowly changing dimensions (Kimball) –Importe et exporte du XML –Outil complet et en évolution –GeoKettle Choix des technologies
9
Analyse Serveur web : Tomcat –Communauté Apache –Conteneur de Servlets et de JSP –Portable (Java) Langage de programmation : Java –Pour les servlets et jsp –Api kettle en java –Orienté objet, portable, gratuit, robuste Format de stockage des transformations et des jobs: xml –Interopérabilité Choix des technologies
10
Analyse API FileUpload (Apache) –Upload de fichiers à partir de formulaires HTML IDE: Eclipse Web Tools Platform Project –Développement J2EE –Écriture de Servlets et JSP, export WAR –Intégration de serveurs web –Débuguer sur serveur SIG uDig –Open source Choix des technologies
11
Analyse Fonctionnement de l’application Exécuter à distance: une transformation/job définie sur le serveur Une transformation/job disponible à une autre adresse Charger une transformation/job et l’exécuter ensuite
12
Conception 2 membres : région et province: Utilisation du WKT: INSERT INTO "Region" VALUES (1, 'Montreal', GeomFromText('POLYGON((4 0,6 0,6 2,4 2,4 0))',-1), 2); Dimension géométriques
13
Conception Kettle Spoon: –Job = U (transformations) –Transformation Chargement des données dans la table dim_spatiale_geom Définition de la transformation dans Kettle Load_dim_spatial_trans
14
Reçoit les paramètres: Emplacement du fichier xml (.kjb ou.ktr) et appelle l’exécution runKitchen Conception Diagramme de classes Exécute le job et affiche le log Upload un fichier
15
Conception Fichier.ktr Transformation: Informations: log, server, user, date Transformation: Informations: log, server, user, date Connection à PostgreSQL Sauts Transformation: Informations: log, server, user, date Connection à PostgreSQL Sauts (hops) Transformation: Informations: log, server, user, date Connection à PostgreSQL Sauts Steps: nom, type, table de sortie, champs (type d’update)… Transformation: Informations: log, server, user, date Connection à PostgreSQL Sauts Steps: nom, type, table de sortie, champs (type d’update)… GUI Accepte type geom (GeoKettle)
16
Réalisation Index.jsp
17
Réalisation Servlet ExecuteTrans Méthode Get: exécution d’une transformation disponible sur le serveur Méthode Post: exécution d’une transformation distante Télécharge le fichier sur le serveur Définit les paramètres de ligne de commande pour l’exécution de Pan (url du fichier+ url du fichier de log) Exécute Pan (classe runpan)
18
Réalisation Classe RunPan Kettle contient Pan.java: –exécution des transformations en ligne de commande –un main RunPan: –Reprise du main de Pan dans la méthode Execute() –Simplification du code de Pan –Ajout de l’affichage du log dans la page web
19
Réalisation Servlet FileUp Utilisation de l’API FileUpload d’Apache: –Récupérer des fichiers à partir de formulaires html –Encodage multipart/form-data exigé dans le formulaire
20
Démonstration
21
Calendrier Définition du projet (3h) Redéfinition du projet (3h) Constitution des tables région et province (10h) Étude de Kettle (60h) –Prise en main de Spoon –Définition du job et de la transformation –Autres fonctionnalités (forum Pentaho) –Choix : écrire mes servlets et pas adapter Carte Configuration et prise en main (15h) –Eclipse (WTP) –Tomcat Implémentation des servlets (30h) Tests et améliorations (10h) –Execution d’une transformation/job distant –Upload d’une transformation/job ? Quel service implanter
22
Tests Le système fonctionne bien. Limite : il semble que l’on doive exécuter un job avant pour initialiser une variable dans Kettle –Problème de variable de processus non résolu pour le projet. Limite : le log est écrit dans un fichier puis lu –Ne gère pas les exécutions simultanées Ne gère pas l’upload de gros fichiers Résultats
23
Suggestions Modification de la date lors de la modification d’un enregistrement Exécuter à partir du repository Uploader directement dans le repository Mieux gérer l’affichage du log Modifier Carte (serveur fourni avec Kettle) Laisser l’usager paramétrer ses transformations/jobs –Sujet de maîtrise Implémenter le tout sous forme d’un service web Améliorations
24
Merci de votre écoute ! Etienne Dubé pour son aide précieuse et sa patience Thierry Badard pour ses conseils Remerciements Questions?
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.