OpenStreetMap-Projekt: Teil1 – Openstreetmap-Daten in MySQL-Datenbank einlesen
Schon vor über einem Jahr habe ich mich etwas ausführlicher mit dem Projekt OpenStreetMap beschäftigt. Damals ging es um das Einlesen der Daten in eine eigene Datenbank und es gab schonmal ein HowTo, dessen Datenbankschema sich aber recht schnell als unnötig groß herausgestellt hat. Wirklich ordentlich beschrieben habe ich die dann folgende Lösung bis dato allerdings nicht, deshalb startet heute eine kleine Artikel-Serie zum Thema.
Im ersten Teil soll es darum gehen die Openstreetmap-Daten in eine MySQL-Datenbank einzulesen. Den ganzen Beitrag lesen
Abstandsmessung optimieren
Gestern habe ich die Deutschland-Daten auf dem Server importiert. Das hat exzellent und ohne Abbruch geklappt. Direkt aus dem osm2sql in die Datenbank gepiped. Auch wenn fritsch Befürchtungen wegen des Arbeitsspeichers hatte. Die Swap-Größe hat sich seit 2 Tagen nicht verändert.
Heute haben wir uns mal dem Zeit-Problem bei der Entfernungsberechnung zwischen zwei Städten gewidmet. Wir haben mit 10 bis 20 Sekunden pro Abfrage begonnen. Fritsch hat dann heute Mittag beschlossen, die Indizes auf ein anderes Format zu ändern. Weg von BTREE hin zu HASH. Auch wenn das laut MySQL 5.0-Referenz gar nicht geht, hat uns das etwa eine Vervierfachung der Geschwindigkeit gebracht auf etwa 4 Sekunden. Den ganzen Beitrag lesen
Der Durchbruch
Irgendwie hab ich ja das Gefühl mich zumindest ein bisschen schämen zu müssen. Vor zweieinhalb Jahren habe ich einmal gelernt, was Transaktionen bei Datenbanken sind. Wenn ich das Wissen parat gehabt hätte, wäre der Import schon gestern komplett fertig geworden.
Nach genau 2 Zeilen in der Import-Datei und damit auch 2 Zeilen im osm2sql ist der Import jetzt etwa um Faktor 40 schneller. Den ganzen Beitrag lesen
Datenimport nach 10 Stunden
goblor@gemajehova:/media/data/tosort/OSM$ mysql -u root -p geostuff < importstuff.sql
Enter password:
ERROR 1054 (42S22) at line 7055199: Unknown column 'nodeid' in 'field list'
goblor@gemajehova:/media/data/tosort/OSM$ wc -l importstuff.sql
7078488 importstuff.sql
Was sagt uns obige Ausgabe? Den ganzen Beitrag lesen






