1/37 mai 09 ign dt/dsl utilisation de postgresql/postgis pour gérer la base de données...
TRANSCRIPT
Mai 09
IGN DT/DSL
1/37
Utilisation de PostgreSQL/PostGIS pour gérer la base de données
topographique française
Mai 09
IGN DT/DSL
2/37
Plan de la présentation
• Contexte : pourquoi PostgreSQL/PostGIS?
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications de PostgreSQL/PostGIS à l’IGN France
Mai 09
IGN DT/DSL
3/37
Contexte :Pourquoi PostgreSQL/PostGIS ?
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
4/37
Contexte : bases de données avant 2002
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
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
5/37
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
Contexte : bases de données avant 2002
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
6/37
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
Mai 09
IGN DT/DSL
7/37
Contexte : éléments techniques
BD TOPO GEOROUTE BD CARTO
Serveur Oracle + Arc/Info
SIG GéoConcept GéoConcept GéoConcept, Arc/Info
Bases de données
1 par département (100 blocs)
50 blocs 1 pour toute la France
Mise à jour Irrégulière – sur photographies aériennes
Irrégulière Régulière (pour les principaux thèmes)
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
8/37
Nouvelle étape : la mise à jour en continue
• 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
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
9/37
2002 : un nouveau projet
• 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é)
Géoroute BDTopo BDUni
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
10/37
2002 : un nouveau projet
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
11/37
Première approche
• 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
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
12/37
2004 : Prototypage
• 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
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
13/37
2004 : Prototypage
BDUni France entièrePostgreSQL / PostGIS
Synchronisatio
n
Synchronisation
Synchronisatio
n
SynchronisationGé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
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
14/37
2005 - 2006: industrialisation et production
• 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
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
15/37
Fonctionnalités client – serveur
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
16/37
BDUni France entièrePostgreSQL / PostGIS
GCVS
SIG du collecteur
(Géoconcept)
GCVS: principes
• 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
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
17/37
GCVS : montée en base Prend les données sous Géoconcept et les charge sur le
serveur PostgreSQL
>begin
>insert into road segments …
> insert into road segments …
> Insert into buildings …
>insert into administrative_boundary …
….
>commit
• Utilisé une fois par zone géographique• Transactionnel
Montée en baseBDUni
PostgreSQL / PostGIS
Géoconcept
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
18/37
GCVS : extraction Extrait une zone sur le serveur PostgreSQL et transfère
ces données sous Géoconcept pour la mise à jour.
• Plusieurs collecteurs peuvent extraire la même zone en même temps
ExtractionBDUni France entièrePostgreSQL / PostGIS
Géoconcept
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
19/37
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.
• 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
BDUni France entièrePostgreSQL / PostGIS
Synchronisatio
n
Synchronisation
Synchronisatio
n
Synchronisation
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
20/37
Déroulement d’une mise à jour
1
• T1 : le collecteur A met à jour une route sous Géoconcept
• T2 : le collecteur A crée une zone de réconciliations avec des métadonnées de mise à jour
Création d’une bretelle
Autoroute
2
1 4
3
52 6
Autoroute
1 4
3
52 6
Autoroute
• T3 : (à la demande) synchronisation
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
21/37
GCVS : implémentationGCVS 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
Mai 09
IGN DT/DSL
22/37
GCVS : implémentation
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
Nationale Autoroute
• Exemple d’une modification sur le client
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
23/37
GCVS : de nombreuses possibilités
• 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
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
24/37
Structure des données sur le serveur
• Table des tronçons de route
Identifiant Numéro de réconciliation
Nom de la rue
…. Date de création Date de modification
Date de destruction
TR1 10 Rue Picasso
03/01/2009 05/01/2009
TR2 11 Rue Matisse
03/01/2009 06/01/2009
Identifiant Numéro de réconciliation
Nom de la rue
…. Date de création Date de modification
Date de destruction
TR1 1 Rue Mozart 03/01/2009
• Table historique des tronçons de route
Cette structure permet la réplication et le calcul des évolutions entre 2 dates (différentiel)
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
25/37
Réplication maison
Permet d’avoir une copie de la base de production en quelques minutes : réplication maitre / esclave.
Base à t0
Base à t1
Dump/Restore Copie à t0
Copie à t1
Les évolutions entre t0 et t1 sont transférées dans la copie à t0
Replication
Mise à jour
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
26/37
Résultats - Conclusions
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
27/37
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
Mai 09
IGN DT/DSL
28/37
La base unifiée aujourd’hui
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
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
29/37
Maintenance de la solution
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)
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
30/37
PostgreSQL/PostGIS : retour d’expérience
• 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
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
31/37
Comparaison avec une solution commerciale
Solution commerciale
Solution IGN avec PostgreSQL
Couts
(Licences clients + serveur + formation + adaptation ou développement)
Moyen à élevé (> 750 k€) faible (300 k€)
Maitrise technique Niveau utilisateur Niveau utilisateur + développeur
Délais Risque lié à l’appel d’offre (compliqué en France) :
1 an
Temps des développements et des tests :
1,5 an
Réseau Peut nécessité l’adaptation du réseau
Pas de changements
SIG Inconnu Conservation de Géoconcept
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
32/37
Autres applications autour PostgreSQL/PostGIS à l’IGN France
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
33/37
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Flux de données : vue générale
Production Archivage (entrepôt)
Diffusion
BDUni
Géoconcept
BDParcellaire
BDAlti
Orthophotographies
BDGéodésique
Bases carto
Fichiers :
• Données Vecteur : Format FEIV
• Métadonnées : Fichiers XML ISO19115
Produits dérivés
• Diffusion classique massive (batch)
• Service internet :
Visualisation public : Géoportail
Interrogation métadonnées (intranet)
Mai 09
IGN DT/DSL
34/37
ExploZOEWindows
PostGreSQL/PostGISLINUX
BASALT
Base de données altimétriques (2006)
•Logiciel maison
•Visual c++ avec ODBC
Intégration
Modification
Consultation
80 Go :
•Vecteur : courbes, points côtés
•Raster : MNT
•Métadonnées
Edition
< 5 clients
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
35/37
Base de donnéesPostgreSQL
Apache
PHP
Navigateur
XHTML
Navigateur
XHTML
Navigateur
XHTML
10 Clients
Base de données géodésique
•70 Go
•Vecteur (Bornes …)
•Raster (Photos)
•Plusieurs schémas
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
36/37
Stockage et consultation des métadonnées
• 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
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
37/37
Géoportail (2007)
• 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)
Accès en ligne pour le grand public à la donnée géographique
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
38/37
Diffusion : extraction
BDTopoFrance entièrePostgreSQL
Extraction
BDTopoZones variées PostgreSQL
Livraison dans différentes emprises et formats
• Contexte
• Fonctionnalités Client / Serveur
• Résultats / Conclusions
• Autres applications
Mai 09
IGN DT/DSL
39/37
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
Merci pour votre attention