OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#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