Title: Utilisation de PostgreSQL/PostGIS pour g
1Utilisation de PostgreSQL/PostGIS pour gérer la
base de données topographique française
2Plan de la présentation
- Contexte pourquoi PostgreSQL/PostGIS?
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications de PostgreSQL/PostGIS à lIGN
France
3Contexte Pourquoi PostgreSQL/PostGIS ?
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
4Contexte 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 gt 1/10 000
- Précision ? 2 m
5Contexte bases de données avant 2002
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
- Géoroute
- Vocation calcul ditiné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 gt 1/20 000
- Précision ? 10 m
6Contexte 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
7Contexte éléments techniques
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
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)
8Nouvelle é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 linformation 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
92002 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 dun nouveau système pour
sauvegarder, gérer et mettre à jour les bases de
données vecteur de lIGN - Bases dun seul bloc sur la France métropolitaine
- Mise à jour décentralisée
- Possibilité de travailler sur le terrain
(déconnecté)
102002 un nouveau projet
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
11Premiè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 dexpérience du projet
et des équipes de production. - ? Nous navions pas assez dexpérience pour
rédiger lappel doffre -
- Un existant IGN
- Grande utilisation du SIG Géoconcept (production,
mise à jour, développement) - PostgreSQL utilisé par une autre équipe IGN
122004 Prototypage
- Objectifs
- Augmenter les compétences techniques de léquipe
- Mieux définir le besoin
- Recherche dune IHM et dun protocole opératoire
- Point de départ
- Client SIG Géoconcept
- Serveur PostgreSQL/PostGIS (gratuit, facile à
apprendre et compétence à lIGN) - Client Serveur communication A développer
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
132004 Prototypage
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
Géoconcept
Géoconcept
Géoconcept
Géoconcept
- Développement dun 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
142005 - 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 daptitude
- Production
- Printemps 2006 montée en base de
lagglomération parisienne - 03/2008 toute la France métropolitaine sur le
système
15Fonctionnalités client serveur
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
16GCVS 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
17GCVS 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
gtbegin
gtinsert into road segments
gt insert into road segments
gt Insert into buildings
gtinsert into administrative_boundary
.
gtcommit
- Utilisé une fois par zone géographique
- Transactionnel
18GCVS 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
19GCVS 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 lun des 2 collecteurs doit
le résoudre - Travail déconnecté
- Synchronisation à la demande
20Déroulement dune 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 dune bretelle
Autoroute
6
2
5
- T3 (à la demande) synchronisation
21GCVS 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 lidentifiant client et
lidentifiant 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
22 GCVS implémentation
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
- Exemple dune modification sur le client
Autoroute
Nationale
- GCVS
- Détecte une modification sur le poste client par
comparaison des clés md5 - Calculée sur lobjet
- Stockée dans le fichier Access
- Recherche si lobjet na pas déjà été modifié sur
le serveur
23GCVS de nombreuses possibilités
- Paramétrage avec des fichiers XML
- Correspondance entre les classes dobjets du SIG
et les tables du serveur. - Une classe dobjet 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
24Structure des données sur le serveur
- Table des tronçons de route
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
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
- Table historique 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 1 Rue Mozart 03/01/2009
Cette structure permet la réplication et le
calcul des évolutions entre 2 dates (différentiel)
25Réplication maison
Permet davoir une copie de la base de production
en quelques minutes réplication maitre /
esclave.
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
Base à t0
Copie à t0
Dump/Restore
Replication
Mise à jour
Base à t1
Copie à t1
Les évolutions entre t0 et t1 sont transférées
dans la copie à t0
26Résultats - Conclusions
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
27La base unifiée aujourdhui
- Serveur de production
- 1 base de données pour la France métropolitaine
- 118 Go
- 124 tables et 124 tables historiques
- 160 millions dobjets
- 19 millions dobjets végétations (17 Go)
- 16 millions de tronçons de route (13 Go)
- 23 millions de bâtiments (12 Go)
- 32 millions dobjets dans les tables historiques
- Des indexes de plus de 1 Go (identifiant,
indexes géométriques) - 6 bases de données pour les territoires
doutre-mer (Martinique, Réunion, Guyane )
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
28La base unifiée aujourdhui
-
- 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
-
29Maintenance 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)
-
30PostgreSQL/PostGIS retour dexpérience
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
- Facile à prendre en main
- Gratuit et open-source
- Nombreuses possibilités daccè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
31Comparaison avec une solution commerciale
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
Solution commerciale Solution IGN avec PostgreSQL
Couts (Licences clients serveur formation adaptation ou développement) Moyen à élevé (gt 750 k) faible (300 k)
Maitrise technique Niveau utilisateur Niveau utilisateur développeur
Délais Risque lié à lappel doffre (compliqué en France) 1 an Temps des développements et des tests 1,5 an
Réseau Peut nécessité ladaptation du réseau Pas de changements
SIG Inconnu Conservation de Géoconcept
32Autres applications autour PostgreSQL/PostGIS à
lIGN France
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
33Flux de données vue générale
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
Archivage (entrepôt)
Production
Diffusion
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
34Base 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
lt 5 clients
- Logiciel maison
- Visual c avec ODBC
ExploZOE Windows
Consultation
Intégration
Edition
Modification
35Base 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
36Stockage et consultation des métadonnées
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
- Stockage sur PostgreSQL
- 50 Go
- 20 millions dobjets dans la table de registre
(ebRIM) - Fichiers XML (norme ISO19115)
- Consultation sur lintranet de lIGN (CSW)
- Utilisation du logiciel RedSpider
37Gé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)
38Diffusion extraction
BDTopo France entière PostgreSQL
-
- Contexte
- Fonctionnalités Client / Serveur
- Résultats / Conclusions
- Autres applications
Extraction
Livraison dans différentes emprises et formats
39Conclusion
- PostgreSQL/PostGIS est devenu le principal SGBD à
lIGN 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