Nhập dữ liệu lớn với osm2psql? [đóng cửa]


8

Câu hỏi của tôi tương tự như nhập chậm qua osm2pgsql vào cơ sở dữ liệu postgresqlTối ưu hóa nhập osm2pgsql cho dữ liệu OSM nhưng hiện tại chúng tôi gặp khá nhiều vấn đề khi nhập một bộ dữ liệu OSM lớn.

Cách tốt nhất để nhập một tập dữ liệu lớn (OSM Export of Europe) vào một postgres DB là gì?

Máy tính của chúng tôi có 32 GB RAM ... vì vậy nó có thể sử dụng tất cả điều đó.

Chúng tôi đã thử một vài thông số, nhưng không thành công ... lần thử cuối cùng chúng tôi đã sử dụng

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

Nhưng chúng tôi đã hết bộ nhớ mặc dù máy chủ của chúng tôi có sẵn 32 GB RAM.

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

Làm thế nào để chúng tôi cải thiện lệnh nhập khẩu của chúng tôi?

Ngay cả khi mất nhiều thời gian hơn ... Nhưng chúng ta cần phải nhập dữ liệu vào DB postgres của mình.

Bạn có khuyên bạn nên sử dụng EC2 cho tác vụ hay thiết lập của chúng tôi có hoạt động với các tham số khác nhau không?

Câu trả lời:


7

Máy tính của bạn sẽ ổn khi nhập khẩu Châu Âu.

Với kích thước tập dữ liệu và máy tính của bạn, tôi muốn giới thiệu một cái gì đó như thế này


Tôi giả sử rằng bạn có CPU 8 luồng, nếu không, hãy điều chỉnh --number-processes.

Bạn không cần 25GB ram cho bộ nhớ cache chỉ với Châu Âu.

Đối với Châu Âu, các nút phẳng phải nhỏ hơn và nhanh hơn lưu trữ trong DB của các vị trí nút.

Nếu vẫn còn sự cố, hãy kiểm tra xem bạn có phiên bản osm2pgsql bằng không gian ID 64 bit không và nếu có, hãy kiểm tra cài đặt PostgreQuery của bạn. Bạn có thể làm đầy đĩa của bạn. Hãy thử điều chỉnh cài đặt của bạn trong postgresql.conf.


cảm ơn rất nhiều ... vào cuối tuần, quá trình nhập của tôi đã thành công với lệnh của tôi và không có quá trình nào khác chạy trên máy của chúng tôi ... nhưng cảm ơn bạn rất nhiều!
Georg

Các nút --flat có thể không hoạt động với nhị phân windows theo wiki.openstreetmap.org/wiki/Osm2pgsql#Binary
AndreJ

8

Tôi đã nhập Tệp hành tinh trên Máy 24Gb (Ubuntu Trusty) với các mục sau ..

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

Mất khoảng 5 ngày, nửa cuối cùng về phía cơ sở dữ liệu .. thay vì nhập thực tế

Tôi đã điều chỉnh Postgres bằng cách nhập sau

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)

cảm ơn rất nhiều ... vào cuối tuần, quá trình nhập của tôi đã thành công với lệnh của tôi và không có quá trình nào khác chạy trên máy của chúng tôi ... nhưng cảm ơn bạn rất nhiều!
Georg

Không có gì. Mất một tháng để tôi hiểu đúng .. Chúc mừng
Mark Cupitt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.