8 votos

Manera más confiable para importar gran conjunto de datos con osm2psql

Sé que mi pregunta es similar a la lentitud de importación a través de osm2pgsql a la base de datos postgresql y la Optimización de osm2pgsql de la importación de datos de OSM , pero como actualmente tenemos bastantes problemas en la importación de un gran conjunto de datos de OSM puedo abrir uno nuevo...

¿Cuál es la mejor forma de importar un gran conjunto de datos (OSM de Exportación de Europa) en un postgres DB

Nuestro equipo tiene 32 GB de RAM... para poder usar todo eso :)

Hemos intentado un par de parámetros, pero no tuvo éxito... último intento, se utilizó el

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

Pero se nos acabó la memoria incluso aunque nuestro sever tiene 32 GB de memoria RAM disponible.

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

Cualquier ayuda sobre cómo mejorar las importaciones de comandos es muy apreciada! Incluso si se tarda más tiempo... Pero necesitamos tener los datos importados en nuestro postgres DB.

Le recomendamos que utilice una EC2 para la tarea o si nuestra instalación de trabajar con diferentes parámetros?

Gracias

9voto

Athena Puntos 2149

He importado un Planeta Archivo en un 24Gb de la Máquina (Ubuntu Trusty), con las siguientes ..

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

Tomó aprox 5 días, la segunda mitad de la base de datos. en lugar de importación

Me desconecté de Postgres con el siguiente para la importación

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)

7voto

mde Puntos 186

El equipo debe estar bien para la importación de Europa.

Dado su tamaño de conjunto de datos y el ordenador, te recomiendo algo como esto

osm2pgsql -c -S /usr/share/osm2pgsql/default.style --slim -d osm-europe --flat-nodes flat-nodes.bin --number-processes 8 -C 20000 europe-latest.osm.pbf Estoy asumiendo que usted tiene un 8 hilo de la CPU, si no, ajuste --number-processes.

Usted no necesita 25 gb de ram para la caché de sólo con Europa.

Para Europa, tv de nodos debe ser más pequeño y más rápido que en la DB de almacenamiento de nodo de posiciones.

Si todavía hay problemas, compruebe que dispone de una versión de osm2pgsql utilizando la versión de 64 bits de IDENTIFICADOR de espacio y si es así, compruebe su configuración de PostgreSQL. Podría estar llenando tu disco? Intente ajustar tu configuración de postgresql.conf.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X