[OSM-dev-fr] Re : [info - LibOsm] Etat d'avancement de "ma" libosm (C++)

Marc Sibert marc at sibert.fr
Lun 13 Sep 23:07:17 BST 2010


Le 13/09/2010 18:30, THEVENON Julien a écrit :
> Bonjour,
>
> >>>> *De :* Marc SIBERT <marc at sibert.fr>
> **
> >>>> Bonjour,
>
> >>>> Certains le savent peut-être, je développe à temps perdu une 
> librairie d'objets (C++) permettant de manipuler les éléments de OSM 
> V0.6. Cela inclus en particulier un parser XML pour les fichiers OSM, 
> et OSM DIFF, et une interface vers une base de données SQLite3 / 
> Spatialite.
>
> En jetant un coup d oeuil sur ton github il ne me semble avoir vu que 
> du code source.
> est ce que t as un document un peu general qui explique qu elle est la 
> structure de ta table SQLite ? ou alors tu as directement repris le 
> schema .xml  et un type d objet donne une table dont chaque colonne 
> correspond a un champ ?

Effectivement, je n'ai décrit le modèle des données. Je suis parti du 
modèle théorique de la base Postgresql originale :
http://wiki.openstreetmap.org/wiki/Database_schema
où j'ai conservé uniquement les tables "current", à savoir :
Changesets, Nodes, Ways, Way_nodes, Relations et Relation_Members
De plus, j'ai "factorisé" les tags : j'ai une table unique Tag (id, key, 
value) puis des tables intermédiaires Node/Tags, Way/Tags, Relation/Tags 
et Changeset/Tags. J'ai aussi sorti les noms d'utilisateurs et conservé 
uniquement les UID dans les tables. J'ai alors une table d'utilisateurs.

>
> >>>> Après une semaine de parsing, j'ai analysé et stocké dans une BDD 
> un planet complet et depuis je joue des diffs pour arriver à un 
> répliqua local à J-1 (voir moins car je parse aussi les hourly-diff et 
> pourquoi pas les minutes, mais cela n'est pas encore testé ni 
> automatisé). Cela tourne sur un "simple" PC de bureau Core i5 / 3.2 
> GHz avec 1 DD standard de 1 To (le goulot d'étranglement, c'est le DD).
>
> Donc si je comprends bien le parsing prend une semaine mais pour la 
> suite as tu une estimation de la vitesse de traitement sur les diffs ? 
> les diffs d une journee mettent combien de temps a etre traites ?
> pour ce qui est de la performance tu envoies les transactions une par 
> une ou tu fais des "bursts" ? ( je me rappelle plus le terme exact de 
> SQLite )
Les daily diff prennent environ 1h a être intégrés (ça dépend de leurs 
taille).
>
> >>>> Le code est disponible en licence LGPL sur GitHub 
> (http://github.com/Marcussacapuces91/LibOsm). Il a été développé sur 
> plateforme WinTel avec l'environnement Code-Blocks 
> (http://www.codeblocks.org/) et compilé avec GCC. Ce code est 
> normalement portable sur d'autres plateforme (ouverte par exemple).
>
>
> >>>> Pour rappel, Spatialite offre des fonctionnalités de reprojection 
> et de manipulations spatiales grâce aux librairies Proj4 et Geos qui 
> sont liées.
>
> >>>> To do : ajouter une interface vers les API OSM (normale & étendue) 
> live qui permette des manipulations directes sur la base mondiale.
>
> Julien
>
-- 

Marc Sibert
marc at sibert.fr

-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/dev-fr/attachments/20100914/504c5962/attachment.html>


More information about the dev-fr mailing list