Projet de session Par Eve Grenier Dans le cadre du cours SCG Réalisation d’applications en SIG Jeudi le 20 avril 2006
Plan de la présentation Concept du SOLAP Définition du projet Démarche suivie Analyse du problème Modélisation de la solution Développement informatique Bilan Démo Conclusion
Concept du SOLAP Spatial On-Line Analytical Processing –Analyse simple de manière interactive –Résultats obtenus rapidement –Présentation des résultats variée (tableau, carte, camembert, histogramme …) –Structure multidimensionnelle thèmes d’analyse hiérarchisés (dimension) mesures
Concept du SOLAP Capitale-Nationale Ville MRC Région Province Québec Charlevoix Baie-St-Paul Dimension « Territoire » Coût de travaux Nombre de travaux Emplacement Mesures Numérique Spatiale
Définition du projet Projet de maîtrise –Problématique : les agrégations de données géospatiales sont effectuées manuellement avec des outils spécialisés comme FME et des SIG –Un des objectifs spécifiques : conception d’extensions au langage MDX (MultiDimensionnal eXpression) pour les principaux opérateurs d’agrégation
Définition du projet Contrainte reliée au langage MDX –Langage de développement des fonctions définies par l’utilisateur : C++, Visual Basic Choix technologique Serveur OLAP Mondrian Open Source (écrit en Java) Composant de Pentaho depuis novembre 2005 (Projet Open Source Business Intelligence) Objectif du projet de session –Analyser la structure de Mondrian et faire les ajouts nécessaires afin de pouvoir procéder à l’agrégation de données géospatiales (un seul opérateur) via le langage de requête MDX
Démarche suivie Processus de développement itératif –Prendre connaissance de la documentation disponible (1 semaine) –Explorer les différentes classes intervenant dans le processus de connexion à la base de données et de requête MDX (2 semaines) –Préparation du projet Java (2 semaines) –Conception du jeu de données pour le projet (1½ semaine) –Fonction agrégative et requête MDX (incluant les tests) (3 semaines)
Analyse du problème Base de données Module client Serveur Mondrian
Modélisation de la solution Conception du jeu de données –Schéma en étoile hiérarchie parent-enfant Ajouts / modifications de Mondrian –Ajout des concepts SOLAP : Dimension spatiale Niveau spatial Mesure spatiale –Fonction agrégative selon Mondrian –Schéma en étoile conventionnel x Schémas Mondrian XML correspondant
Développement informatique Jeu de données –Données géométriques en format MID/MIF de MapInfo –Base de données PostgreSQL (PostGIS) –Laboratoire no 5 modifié afin de visualiser les tables de la base de données –Plug-In Mondrian Schema Editor de JPivot pour Eclipse afin de valider le schéma Mondrian (en XML) Ajout / modification à Mondrian –GeOxygene pour réaliser les agrégations des données géospatiales
Bilan Difficultés rencontrées –Préparation du projet Java complexe Modifications des paramètres du projet Eclipse, ajout de drivers manquants –Erreurs et manque de mise à jour au niveau des exemples fournis dans la documentation Recherche sur Internet et les forums de développeurs –Complexité du cas du schéma étoile avec hiérarchie parent-enfant Modification du modèle conceptuel de la base de données multidimensionnelle pour le schéma étoile conventionnel –Absence de certaines fonctions MDX Etre imaginatif!!
Bilan Raccourci/simplification –Abandon de l’ajout des concepts SOLAP à Mondrian (dimension spatiale, niveau spatial, mesure spatiale) Limites du projet –Appel de la fonction agrégative dans la requête MDX –Calcul des agrégations à la volée (temps de traitement et espace de stockage)
Démo Jeu de donnée multidimensionnel Exemples de requête MDX –Sans agrégation spatiale –Avec agrégation spatiale Dimension Territoire Dimension Travaux Dimension Temps Table de fait WITH MEMBER Measures.[Cout moyen] AS '[Measures].[Cout] / [Measures].[Nombre travaux]' MEMBER Measures.[Geom] AS [Territoire].CurrentMember.Properties(\"Geometrie\") SELECT {[Measures].Members, [Measures].[Cout moyen], [Measures].[Geom]} ON COLUMNS, {[Territoire].[Secteurs].[Vanier], [Territoire].[Zones].[Charlevoix]} ON ROWS FROM [CubeTravaux] WHERE ([Temps].[Annees].[2005]) WITH MEMBER Measures.[Cout moyen] AS '[Measures].[Cout] / [Measures].[Nombre travaux]' MEMBER Measures.[GeomSecteurs] AS [Territoire].CurrentMember.Properties(\"Geometrie\") MEMBER Measures.[GeomZones] AS 'Union([Territoire].CurrentMember.Children)' MEMBER Measures.[Geom] AS IIf([Territoire].CurrentMember.Level IS [Territoire].[Secteurs], [Measures].[GeomSecteurs].Name, [Measures].[GeomZones]) SELECT {[Measures].[GeomSecteurs], [Measures].[GeomZones], [Measures].[Geom]} ON COLUMNS, {[Territoire].[Secteurs].[Vanier], [Territoire].[Zones].[Charlevoix]} ON ROWS FROM [CubeTravaux] WHERE ([Temps].[Annees].[2005])
Conclusion L’objectif de ce projet de session n’est que partiellement atteint Perspectives d’évolution : –Implantation des concepts SOLAP (dimension spatiale, mesure spatiale, affichage cartographique pour les résultats, …) –Développer un ensemble d’opérateurs d’agrégation géospatiale de base Recommandation : –Avoir beaucoup de patience! –Bien connaître le langage MDX