450 likes | 677 Views
Utilisation de PostgreSQL/PostGIS pour gérer la base de données topographique française. Plan de la présentation. Contexte : pourquoi PostgreSQL/PostGIS? Fonctionnalités Client / Serveur Résultats / Conclusions Autres applications de PostgreSQL/PostGIS à l’IGN France.
E N D
Utilisation de PostgreSQL/PostGIS pour gérer la base de données topographique française IGN DT/DSL
Plan de la présentation • Contexte : pourquoi PostgreSQL/PostGIS? • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications de PostgreSQL/PostGIS à l’IGN France IGN DT/DSL
Contexte :Pourquoi PostgreSQL/PostGIS ? • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications IGN DT/DSL
Contexte : bases de données avant 2002 • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications BDTopo: • Vocation :référentiel géographique 3D de haute précision • Thèmes: réseau routier, réseau ferré, réseau hydrographique, bâtiments, végétation, surfaces administratives … • Sources: restitution sur photographies aériennes • Constitution de 1990 à 2006 – 2007 • Échelle : > 1/10 000 • Précision : 2 m IGN DT/DSL
Contexte : bases de données avant 2002 • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications Géoroute • Vocation : calcul d’itinéraires, navigation embarquée, géocodage. • Thèmes:réseau routier, restrictions de circulation, équipement (hôpital, police …) … • Couvre les zones urbaines ; des données moyenne échelle assure le lien entre ces zones. • Sources hétérogènes : • BDTopo • Cadastre • BDCarto • Constitution entre 1995 et 2000. • Echelle : > 1/20 000 • Précision : 10 m IGN DT/DSL
Contexte : bases de données avant 2002 BDCarto • Vocation : référentiel moyenne échelle • Thèmes: réseau routier, réseau hydrographique, occupation du sol, limite administrative … • Sources : vectorisation de carte (échelle 1/50 000) • Constitution entre 1986 et 1993 • Echelle : 1/100 000 • Précision : 30 m • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications IGN DT/DSL
Contexte : éléments techniques • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications IGN DT/DSL
Nouvelle étape : la mise à jour en continue • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Nouvel objectif : mise à jour en continue pour la BDTopo, Géoroute et BDCarto. • Principe : • Collecter l’information de mise à jour une seule fois. Principales sources : • Partenaires (gestionnaires de réseaux, administrations locales, pompiers, ...) • Collecte • La propager dans les bases. • Mise à jour décentralisée : • 7 unités de production (5 en dehors de Paris) • 120 collecteurs IGN DT/DSL
Géoroute BDTopo BDUni 2002 : un nouveau projet • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Objectifs : • Unification: • Rendre la mise à jour plus facile • Conserver les avantages des 2 produits • Implémentation d’un nouveau système pour sauvegarder, gérer et mettre à jour les bases de données vecteur de l’IGN : • Bases d’un seul bloc sur la France métropolitaine • Mise à jour décentralisée • Possibilité de travailler sur le terrain (déconnecté) IGN DT/DSL
2002 : un nouveau projet • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications IGN DT/DSL
Première approche • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Un marché touffu : • Technologies variées (Oracle, ESRI, IBM, Oracle, GéoConcept…) • Coûts variés • Définition des besoins : • Etape difficile par manque d’expérience du projet et des équipes de production. Nous n’avions pas assez d’expérience pour rédiger l’appel d’offre • Un existant IGN : • Grande utilisation du SIG Géoconcept (production, mise à jour, développement) • PostgreSQL utilisé par une autre équipe IGN IGN DT/DSL
2004 : Prototypage • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Objectifs : • Augmenter les compétences techniques de l’équipe • Mieux définir le besoin • Recherche d’une IHM et d’un protocole opératoire • Point de départ : • Client = SIG Géoconcept • Serveur = PostgreSQL/PostGIS (gratuit, facile à apprendre et compétence à l’IGN) • Client – Serveur communication = A développer IGN DT/DSL
Synchronisation Synchronisation BDUni France entière PostgreSQL / PostGIS Synchronisation Synchronisation 2004 : Prototypage • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications Géoconcept Géoconcept Géoconcept Géoconcept • Développement d’un outil permettant de synchroniser les données entre les n clients et le serveur • Tests de PostgreSQL (transaction) • Les utilisateurs sont impliqués dans le suivi / guidage des développements IGN DT/DSL
2005 - 2006: industrialisation et production • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Le prototype donne de bons résultats (coût, besoins, IHM…) Industrialisation du prototype : • Traitement des cas difficiles • Paramétrages fins • Test du système (bases de données massives) • Vérification d’aptitude • Production : • Printemps 2006 : montée en base de l’agglomération parisienne • 03/2008 : toute la France métropolitaine sur le système IGN DT/DSL
Fonctionnalités client – serveur • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications IGN DT/DSL
GCVS: principes BDUni France entière PostgreSQL / PostGIS • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications GCVS SIG du collecteur (Géoconcept) • GCVS = Geographic Concurrent Versioning System • Développement avec visual C++ (utilisation du pilote ODBC) • 3 principales fonctions accessibles depuis Géoconcept : • Montée en base des données • Extraction des données • Synchronisation des clients IGN DT/DSL
Géoconcept GCVS : montée en base Prend les données sous Géoconcept et les charge sur le serveur PostgreSQL • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications BDUni PostgreSQL / PostGIS Montée en base • Utilisé une fois par zone géographique • Transactionnel IGN DT/DSL
GCVS : extraction Extrait une zone sur le serveur PostgreSQL et transfère ces données sous Géoconcept pour la mise à jour. • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications BDUni France entière PostgreSQL / PostGIS Extraction Géoconcept • Plusieurs collecteurs peuvent extraire la même zone en même temps IGN DT/DSL
Synchronisation Synchronisation BDUni France entière PostgreSQL / PostGIS Synchronisation Synchronisation GCVS : synchronisation des données • Envoie les mises à jour des postes clients sur le serveur et les mises à jour du serveur sur les autres clients. • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Si 2 collecteurs mettent à jour le même objet, un conflit est généré et l’un des 2 collecteurs doit le résoudre … • Travail déconnecté • Synchronisation à la demande IGN DT/DSL
Déroulement d’une mise à jour • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • T1 : le collecteur A met à jour une route sous Géoconcept 3 1 4 1 Autoroute Autoroute 6 2 2 5 • T2 : le collecteur A crée une zone de réconciliations avec des métadonnées de mise à jour 3 1 4 Création d’une bretelle Autoroute 6 2 5 IGN DT/DSL • T3 : (à la demande) synchronisation
GCVS : implémentation GCVS doit être capable de retrouver rapidement les objets détruits, créés et modifiés sur les clients et sur le serveur. Pour cela : • Sur le serveur, chaque objet a : • Un identifiant • Un numéro de réconciliation • Sur le client : • Chaque objet a un identifiant • Un fichier MS Access contient : • La correspondance entre l’identifiant client et l’identifiant serveur. • Une clé md5 de chaque objet client (mise à jour après chaque réconciliation) • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications IGN DT/DSL
GCVS : implémentation • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Exemple d’une modification sur le client Autoroute Nationale GCVS : • Détecte une modification sur le poste client par comparaison des clés md5 : • Calculée sur l’objet • Stockée dans le fichier Access • Recherche si l’objet n’a pas déjà été modifié sur le serveur IGN DT/DSL
GCVS : de nombreuses possibilités • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Paramétrage avec des fichiers XML : • Correspondance entre les classes d’objets du SIG et les tables du serveur. • Une classe d’objet peut être en lecture/écriture. • Des profils variés en production : • Lecture seule (cartographes, contrôle qualité…) • Mise à jour des unités administratives par une seule personne sur tout le territoire … • Recherche des objets non synchronisés • Traitement des liens IGN DT/DSL
Structure des données sur le serveur • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Table des tronçons de route • Table historique des tronçons de route Cette structure permet la réplication et le calcul des évolutions entre 2 dates (différentiel) IGN DT/DSL
Réplication maison • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications Permet d’avoir une copie de la base de production en quelques minutes : réplication maitre / esclave. Base à t0 Copie à t0 Dump/Restore Mise à jour Replication Base à t1 Copie à t1 Les évolutions entre t0 et t1 sont transférées dans la copie à t0 IGN DT/DSL
Résultats - Conclusions • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications IGN DT/DSL
La base unifiée aujourd’hui • Serveur de production : • 1 base de données pour la France métropolitaine : • 118 Go • 124 tables et 124 tables historiques • 160 millions d’objets : • 19 millions d’objets végétations (17 Go) • 16 millions de tronçons de route (13 Go) • 23 millions de bâtiments (12 Go) … • 32 millions d’objets dans les tables historiques • Des indexes de plus de 1 Go (identifiant, indexes géométriques) • 6 bases de données pour les territoires d’outre-mer (Martinique, Réunion, Guyane …) • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications IGN DT/DSL
La base unifiée aujourd’hui • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Serveur de production : • Server DELL, PowerEdge 6850, 4 processeurs • Disque : 5 x 300 Go 10 000 rpm SCSI, dont 4 en RAID 1 • RAM : 12 Gb • Serveur de secours : • 1 base de données restaurée chaque semaine (sauvegarde) • 1 base de données en lecture seule : contrôle qualité, démos,… • réplication toutes les 30 minutes • Réseau : 1Mbit/s entre Paris et les CIRs IGN DT/DSL
Maintenance de la solution • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • DBA PostgreSQL/PostGIS : • 1/3 temps (ingénieur système unix) • Sauvegarde, réplication, quelques interventions (déblocage) • Maintenance évolutive (spécifications …) • Maintenance GCVS : • 1 temps plein (ex développeur au projet) • Rattrape de production • Maintenance évolutive (amélioration logicielle …) • Soutien de l’équipe projet (1/4 temps) IGN DT/DSL
PostgreSQL/PostGIS : retour d’expérience • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Facile à prendre en main • Gratuit et open-source • Nombreuses possibilités d’accès et de développement (ODBC, libpq …) Prototypage rapide • Performance : • Gestion de bases de données massives • Capacité à répondre rapidement aux requêtes • Transaction IGN DT/DSL
Comparaison avec une solution commerciale • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications IGN DT/DSL
Autres applications autour PostgreSQL/PostGIS à l’IGN France • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications IGN DT/DSL
Flux de données : vue générale • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications Archivage (entrepôt) Diffusion Production BDUni Géoconcept BDParcellaire Produits dérivés • Fichiers : • Données Vecteur : Format FEIV • Métadonnées : Fichiers XML ISO19115 BDAlti • Diffusion classique massive (batch) • Service internet : • Visualisation public : Géoportail • Interrogation métadonnées (intranet) BDGéodésique Orthophotographies Bases carto IGN DT/DSL
Base de données altimétriques (2006) • 80 Go : • Vecteur : courbes, points côtés • Raster : MNT • Métadonnées • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications BASALT PostGreSQL/PostGIS LINUX < 5 clients • Logiciel maison • Visual c++ avec ODBC ExploZOE Windows Consultation Intégration Edition Modification IGN DT/DSL
10 Clients Navigateur XHTML Apache Navigateur PHP XHTML Navigateur XHTML Base de données géodésique • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications Base de données PostgreSQL • 70 Go • Vecteur (Bornes …) • Raster (Photos) • Plusieurs schémas IGN DT/DSL
Stockage et consultation des métadonnées • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • Stockage sur PostgreSQL : • 50 Go • 20 millions d’objets dans la table de registre (ebRIM) • Fichiers XML (norme ISO19115) • Consultation sur l’intranet de l’IGN (CSW) • Utilisation du logiciel RedSpider IGN DT/DSL
Géoportail (2007) Accès en ligne pour le grand public à la donnée géographique • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications • PostgreSQL est seulement utilisé pour stocker les données vecteur (300 Go) et pour pré-calculer les tuiles de données à afficher • Bientôt service WMS and WFS (Geoserver) IGN DT/DSL
BDTopo Zones variées PostgreSQL Diffusion : extraction BDTopo France entière PostgreSQL • Contexte • Fonctionnalités Client / Serveur • Résultats / Conclusions • Autres applications Extraction Livraison dans différentes emprises et formats IGN DT/DSL
Conclusion PostgreSQL/PostGIS est devenu le principal SGBD à l’IGN France. Il est utilisé pour : • Stocker des bases de données massives et variées • Consulter et mettre à jour les données avec des logiciels maisons • Solution attractive et robuste IGN DT/DSL Merci pour votre attention