Vous importez un grand ensemble de données avec osm2psql? [fermé]

8

Ma question est similaire à l' importation lente via osm2pgsql vers la base de données postgresql et à l' optimisation des importations osm2pgsql pour les données OSM, mais comme nous avons actuellement beaucoup de problèmes à importer un grand ensemble de données OSM, j'ouvre une nouvelle.

Quelle est la meilleure façon d'importer un grand ensemble de données (OSM Export of Europe) dans une base de données postgres?

Notre ordinateur a 32 Go de RAM ... il pourrait donc utiliser tout cela.

Nous avons essayé quelques paramètres, mais sans succès ... le dernier essai, nous avons utilisé le

osm2pgsql -c -S /usr/share/osm2pgsql/default.style --slim -d osm-europe -U postgres -C 25000 europe-latest.osm.pbf

Mais nous avons manqué de mémoire même si notre serveur dispose de 32 Go de RAM disponibles.

pending_ways failed: out of memory for query result
(7)
Error occurred, cleaning up

Comment pouvons-nous améliorer notre commande d'importation?

Même si cela prend plus de temps ... Mais nous devons importer les données dans notre base de données PostgreSQL.

Recommanderiez-vous d'utiliser un EC2 pour la tâche ou notre configuration devrait-elle fonctionner avec différents paramètres?

Georg
la source

Réponses:

7

Votre ordinateur devrait convenir pour importer l'Europe.

Compte tenu de la taille de votre ensemble de données et de votre ordinateur, je recommanderais quelque chose comme ceci


Je suppose que vous avez un processeur à 8 threads, sinon, ajustez --number-processes.

Vous n'avez pas besoin de 25 Go de RAM pour le cache avec uniquement l'Europe.

Pour l'Europe, les nœuds plats devraient être plus petits et plus rapides que le stockage dans la base de données des positions des nœuds.

S'il y a toujours des problèmes, vérifiez que vous disposez d'une version d'osm2pgsql utilisant l'espace ID 64 bits et si c'est le cas, vérifiez vos paramètres PostgreSQL. Vous pourriez remplir votre disque. Essayez de régler vos paramètres dans postgresql.conf.

Paul Norman
la source
merci beaucoup ... pendant le week-end mon importation a réussi avec ma commande et sans aucun autre processus en cours d'exécution sur notre machine ... mais merci beaucoup!
Georg
--Les nœuds plats peuvent ne pas fonctionner avec le binaire Windows selon wiki.openstreetmap.org/wiki/Osm2pgsql#Binary
AndreJ
8

J'ai importé un fichier Planet sur une machine de 24 Go (Ubuntu Trusty) avec les éléments suivants ..

bzcat planet-latest.osm.bz2 | 
osm2pgsql --verbose -U YourUser --flat-nodes flat-nodes --keep-coastlines --cache 24000 --hstore --hstore-add-index --tablespace-index pg_default --exclude-invalid-polygon --number-processes 6 --unlogged --cache-strategy dense --extra-attributes --slim -H localhost -d planetosm --style ../my.style planet-latest.osm.bz2

Cela a pris environ 5 jours, la dernière moitié du côté de la base de données .. plutôt que l'importation réelle

J'ai réglé Postgres avec les éléments suivants pour l'importation

autovacuum = off (default #autovacuum = on)
checkpoint_segments = 60 (default #checkpoint_segments = 3 # in logfile      
segments, min 1, 16MB each)
maintenance_work_mem = 256MB ( default #maintenance_work_mem = 16MB # min 1MB)
work_mem = 256MB (default #work_mem = 1MB  # min 64kB)
Mark Cupitt
la source
merci beaucoup ... pendant le week-end mon importation a réussi avec ma commande et sans aucun autre processus en cours d'exécution sur notre machine ... mais merci beaucoup!
Georg
Je vous en prie. Ça m'a pris un mois pour bien faire les choses ..
Santé