Mengimpor dataset besar dengan osm2psql? [Tutup]


8

Pertanyaan saya mirip dengan impor lambat melalui osm2pgsql ke database postgresql dan Mengoptimalkan impor osm2pgsql untuk data OSM tetapi karena kami saat ini memiliki beberapa masalah mengimpor sejumlah besar data OSM, saya membuka yang baru.

Apa cara terbaik untuk mengimpor dataset besar (Ekspor OSM Eropa) ke dalam postgres DB?

Komputer kami memiliki 32 GB RAM ... sehingga bisa menggunakan semua itu.

Kami mencoba beberapa params, tetapi tidak berhasil ... percobaan terakhir kami menggunakan

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

Tapi kami kehabisan memori meskipun server kami memiliki 32 GB RAM yang tersedia.

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

Bagaimana cara meningkatkan perintah impor kami?

Sekalipun itu membutuhkan waktu lebih lama ... Tapi kita perlu mengimpor data ke postgres DB kita.

Apakah Anda merekomendasikan menggunakan EC2 untuk tugas atau haruskah pengaturan kami bekerja dengan parameter yang berbeda?

Jawaban:


7

Komputer Anda seharusnya baik untuk mengimpor Eropa.

Mengingat ukuran dataset dan komputer Anda, saya akan merekomendasikan sesuatu seperti ini


Saya berasumsi bahwa Anda memiliki CPU 8 thread, jika tidak, sesuaikan --number-processes.

Anda tidak perlu ram 25GB untuk cache hanya dengan Eropa.

Untuk Eropa, node datar harus lebih kecil dan lebih cepat daripada penyimpanan posisi node in-DB.

Jika masih ada masalah, periksa apakah Anda memiliki versi osm2pgsql menggunakan ruang ID 64-bit dan jika demikian, periksa pengaturan PostgreSQL Anda. Anda bisa mengisi disk Anda. Coba setel pengaturan Anda di postgresql.conf.


terima kasih banyak ... selama akhir pekan impor saya berhasil dengan perintah saya dan tanpa proses lain yang berjalan di mesin kami ... tapi terima kasih banyak!
Georg

- node datar mungkin tidak berfungsi dengan binary windows menurut wiki.openstreetmap.org/wiki/Osm2pgsql#Binary
AndreJ

8

Saya mengimpor File Planet pada Mesin 24Gb (Ubuntu Trusty) dengan berikut ini ..

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

Butuh kira-kira 5 hari, setengah terakhir di sisi basis data .. daripada impor yang sebenarnya

Saya menyetel Postgres dengan yang berikut untuk impor

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)

terima kasih banyak ... selama akhir pekan impor saya berhasil dengan perintah saya dan tanpa proses lain yang berjalan di mesin kami ... tapi terima kasih banyak!
Georg

Sama sama. Butuh waktu sebulan untuk memperbaikinya .. Cheers
Mark Cupitt
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.