[OSM-dev] How do I build the latest db schema?
Brett Henderson
brett at bretth.com
Fri Jul 6 04:59:08 BST 2007
After my previous email, I kicked off an import to my local database.
Before I added date handling it used to complete in 70'ish minutes.
Since then the dataset appears to have grown considerably so I had
expected it to take somewhat longer.
It crashed after 4 hours with an out of memory error. This is
surprising because it was supposed to be processing in a streamy
fashion. I made some changes to the database layer so I've probably
forgotten to release something. I changed my handling of prepared
statements and suspect that may be the problem. Coincidentally it
failed after it had completed all nodes, all segments and had only
processed a small number of way records (40000), this may be related.
Looks like I have some work to do before a load will work properly.
Brett Henderson wrote:
> It is able to populate a MySQL database from scratch. A Postgres DB
> would require the creation of a new writer task. To improve speed, I'm
> using MySQL specific things like multi-record inserts. Postgres will
> require smart use of transactions to obtain good speed which aren't
> being used currently. If the app was using small datasets I would have
> written a generic task to handle any database engine but I've tried to
> wring as much speed out of it as I can.
>
> All versions are available at:
> http://www.bretth.com/osmosis/
> The latest is:
> http://www.bretth.com/osmosis/osmosis-latest.zip
> which is currently:
> http://www.bretth.com/osmosis/osmosis-0.1.8.zip
>
> I'll release v0.2 when I finish my mysql change set writer. The reader
> half is complete but untested.
>
> I haven't tested this bit of functionality for a little while but I've
> just kicked it off and it appears to be working okay. It's slower than
> it used to be because it's now performing full date parsing (using
> example code from JOSM), date parsing is incredibly CPU intensive but it
> seems to be the Java SimpleDateFormat that is the problem, not the hacks
> that are required to support all the possible OSM date formats.
>
> If you're running on Linux and you install the app using the
> instructions in the zip, the command line for loading a planet file is:
> osmosis --read-xml file="planet-xxx.osm" --write-mysql host="myhost"
> database="osm" user="osm" password="xxx"
>
> If you're running on Windows, you'll need to run the full java command
> which can be extracted from the osmosis script in the bin directory. I
> need to figure out how to write an equivalent batch file for Windows but
> will need to find some examples (ant maybe?).
>
> More instructions are available here:
> http://www.bretth.com/wiki/Wiki.jsp?page=OpenStreetMap
>
> Some caveats:
> Recently I've learnt more about the OSM schema and I'm not loading the
> data correctly, you will need to correct a few things after load. For
> example, it's not populating the current tables so a separate query will
> need to be run to copy this data from the history tables. It won't be
> hard to fix the code, but it takes time unfortunately.
>
> Frederik Ramm wrote:
>
>> Hi Brett,
>>
>>
>>> Is there a script somewhere for building the current database schema?
>>>
>> [...]
>>
>> I'd like to set up a "clone" of the production MySQL database
>> (possibly trying to make that a Postgres instead of MySQL but using
>> the same structure). Is "Osmosis" already in a state where I could
>> feed it a planet file and ask it to populate a database?
>>
>> Bye
>> Frederik
>>
>>
>
>
>
> _______________________________________________
> dev mailing list
> dev at openstreetmap.org
> http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/dev
>
More information about the dev
mailing list