Importando grande conjunto de dados com osm2psql? [fechadas]

8

Minha pergunta é semelhante à importação lenta via osm2pgsql para o banco de dados postgresql e como otimizar as importações de osm2pgsql para dados OSM, mas como atualmente temos alguns problemas ao importar um grande conjunto de dados OSM, abro um novo.

Qual é a melhor maneira de importar um grande conjunto de dados (OSM Export of Europe) para um banco de dados do postgres?

Nosso computador tem 32 GB de RAM ... então ele pode usar tudo isso.

Tentamos alguns parâmetros, mas não tivemos sucesso ... na última tentativa, usamos o

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

Mas ficamos sem memória, embora nosso servidor possua 32 GB de RAM disponível.

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

Como melhoramos nosso comando de importação?

Mesmo que demore mais ... Mas precisamos importar os dados para o nosso banco de dados do postgres.

Você recomendaria o uso de um EC2 para a tarefa ou nossa instalação deve funcionar com parâmetros diferentes?

Georg
fonte

Respostas:

7

Seu computador deve funcionar bem para importar a Europa.

Dado o tamanho do seu conjunto de dados e o computador, eu recomendaria algo como isto


Estou assumindo que você tem uma CPU de 8 threads, se não, ajuste --number-processes.

Você não precisa de 25 GB de RAM para cache apenas na Europa.

Na Europa, os nós simples devem ser menores e mais rápidos que o armazenamento no banco de dados das posições dos nós.

Se ainda houver problemas, verifique se você possui uma versão do osm2pgsql usando o espaço de ID de 64 bits e, se houver, verifique as configurações do PostgreSQL. Você pode estar enchendo seu disco. Tente ajustar suas configurações no postgresql.conf.

Paul Norman
fonte
muito obrigado ... durante o fim de semana, minha importação teve sucesso com meu comando e sem nenhum outro processo em execução em nossa máquina ... mas muito obrigado!
687 Georg Georg
nós --flat pode não trabalho com as janelas binárias de acordo com wiki.openstreetmap.org/wiki/Osm2pgsql#Binary
Andrej
8

Importei um arquivo Planet em uma máquina de 24 GB (Ubuntu Trusty) com o seguinte ..

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

Demorou aproximadamente 5 dias, a última metade no lado do banco de dados. Em vez da importação real

Ajustei o Postgres com o seguinte para a importação

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
fonte
muito obrigado ... durante o fim de semana, minha importação teve sucesso com meu comando e sem nenhum outro processo em execução em nossa máquina ... mas muito obrigado!
687 Georg Georg
Você é bem vindo. Levei um mês para acertar .. Cheers
Mark Cupitt