Importieren eines großen Datensatzes mit osm2psql? [geschlossen]

8

Meine Frage ähnelt dem langsamen Import über osm2pgsql in die Postgresql-Datenbank und der Optimierung der osm2pgsql-Importe für OSM-Daten. Da wir derzeit einige Probleme beim Importieren einer großen Menge von OSM-Daten haben, öffne ich eine neue.

Was ist der beste Weg, um einen großen Datensatz (OSM Export of Europe) in eine Postgres-Datenbank zu importieren?

Unser Computer verfügt über 32 GB RAM ... also könnte er all das nutzen.

Wir haben ein paar Parameter ausprobiert, hatten aber keinen Erfolg ... beim letzten Versuch haben wir den verwendet

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

Wir haben jedoch nicht genügend Arbeitsspeicher, obwohl auf unserem Server 32 GB RAM verfügbar sind.

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

Wie verbessern wir unseren Importbefehl?

Auch wenn es länger dauert ... Aber wir müssen die Daten in unsere Postgres-Datenbank importieren.

Würden Sie empfehlen, einen EC2 für die Aufgabe zu verwenden, oder sollte unser Setup mit verschiedenen Parametern funktionieren?

Georg
quelle

Antworten:

7

Ihr Computer sollte für den Import nach Europa geeignet sein.

Angesichts Ihrer Datensatzgröße und Ihres Computers würde ich so etwas empfehlen


Ich gehe davon aus, dass Sie eine 8-Thread-CPU haben, wenn nicht, anpassen --number-processes.

Mit nur Europa benötigen Sie keine 25 GB RAM für den Cache.

Für Europa sollten flache Knoten kleiner und schneller sein als die In-DB-Speicherung von Knotenpositionen.

Wenn weiterhin Probleme auftreten, überprüfen Sie anhand des 64-Bit-ID-Bereichs, ob Sie über eine Version von osm2pgsql verfügen, und überprüfen Sie in diesem Fall Ihre PostgreSQL-Einstellungen. Sie könnten Ihre Festplatte füllen. Versuchen Sie, Ihre Einstellungen in der postgresql.conf zu optimieren.

Paul Norman
quelle
Vielen Dank ... am Wochenende war mein Import mit meinem Befehl erfolgreich und es lief kein anderer Prozess auf unserer Maschine ... aber vielen Dank!
Georg
- flache Knoten funktionieren möglicherweise nicht mit der Windows-Binärdatei gemäß wiki.openstreetmap.org/wiki/Osm2pgsql#Binary
AndreJ
8

Ich habe eine Planet-Datei auf einem 24-GB-Computer (Ubuntu Trusty) mit den folgenden Eigenschaften importiert:

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

Es dauerte ca. 5 Tage, die letzte Hälfte auf der Datenbankseite .. und nicht der eigentliche Import

Ich habe Postgres für den Import wie folgt eingestellt

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
quelle
Vielen Dank ... am Wochenende war mein Import mit meinem Befehl erfolgreich und es lief kein anderer Prozess auf unserer Maschine ... aber vielen Dank!
Georg
Bitte schön. Ich habe einen Monat
gebraucht