You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2010-03-16 09:49:47

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

postgresql + osmosis

Попробую здесь поделиться опытом по установке и настройке сабжа, ибо подводных камней вылезает немеряно.

Итак имеем: Ubuntu 9.10 x64, rails_port (ставился по вики-инструкции, мелкие нюансы по установке пакетов, большие нюансы по установке постгиса 1.5, решенные гуглованием, точно не воспроизведу - суть в том, что накатывание на базу постгисных функций делается не так, как описано в вики + нужно накатить на базу btree_gist.sql из пакета contrib, иначе потом индексы не строятся).

База создана из rails_port при помощи db:migrate. В отличие от мускловой создается без ошибок при правильной установке rails_port.

Дамп структуры: http://probki77.ru/osm/osm_20100315.rar

Долго и вдумчиво курил дев-лист, результат - импорт оптимально делать с отключенными индексами. Но не всеми. Сейчас экспериментирую, по результатам выложу скриптик для прибивания и восстановления мешающих индексов.

Сейчас запустил импорт, на многоядерном проце оказался полезным осмосисовский ключ -b, задействованы все 4 ядра. Скорость импорта порядка 15000 нодов в секунду. Посмотрим, что будет на веях, там ясно упадет, интересно насколько. (С индексами скорость импорта на нодах не превышала 2000, а потом падала до 300 нодов в секунду).

Last edited by Ezhick (2010-03-16 09:50:20)

Offline

#2 2010-03-16 22:29:47

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

Re: postgresql + osmosis

Мда. Простой снос индексов не пролез - заполнение current_ таблиц идет дико медленно. Единственный вариант - вносить изменения в осмосис, чтобы он строил индексы после импорта перед заполнением current_. Блин, начать что ли java изучать?

Offline

#3 2010-03-17 01:06:25

x10kHz
Member
Registered: 2009-10-06
Posts: 138

Re: postgresql + osmosis

Ezhick, Отличная тема!! Спасибо! Такой тутор очень нужен!

Помню сколько я не мучился, так ничего толком не получилось... туторов хороших нет, даже дамп структуры базы в вики валялся неактуальный.
После долгих мучений я забил на постгис, хочу как-нибудь на досуге поэкспериментировать с MongoDB... уж больно она мне понравилась.
Хочу распилить векторные данные на уровни детализации по аналогии с растром, чтобы иметь возможность рендерить данные на лету с любым масштабом.

PS:Буду следить за темой. Также предлагаю её прикрепить! Ведь туторов для осмодевелоперов даже на инглише почти нет...

Last edited by x10kHz (2010-03-17 01:11:52)

Offline

#4 2010-03-17 05:55:45

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

Re: postgresql + osmosis

Да, про схему - актуальную схему из rails_port осмосис все одно считает неактуальной - он не знает о нескольких последних миграциях. Поэтому даже на ней его приходится запускать с ключем validateshemaversion=no, иначе валится с ошибкой.

Запущенное параллельно импорту создание индексов принесло свои плоды - по состоянию на полночь нодов было в таблице current_nodes порядке 400 000 штук, после создания индекса для таблицы nodes заливка пошла шустрее и за ночь все 600 с гаком миллионов залились. Параллельно строились остальные индексы и дальше заливка явно идет достаточно шустро.

Offline

#5 2010-03-17 10:43:20

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

Re: postgresql + osmosis

INFO: Total execution time: 95736391 milliseconds.

То есть 26 с половиной часов, но еще не все индексы построились. Если бы модифицировать осмосис и добавить в процедуру импорта между заливкой исторических и текущих таблиц построение индексов по историческим таблицам - скорость еще бы возрасла.

Offline

Board footer

Powered by FluxBB