всё шло нормально. Когда он закончил импортировать node, way и relation в БД, то после этого началась индексация БД, т.е. стали там индексы создаваться и т.п.
НО! тут случилось непредвиденное - выключили на несколько часов свет. Увы, не было настроено никакой гибернации, в следствие чего комп тупо вырубился.
Вопрос: возможно ли как-то начать процесс индексации заново, без повторного импорта данных из planet.osm.pbf?
Просто делался импорт около 10-ти дней.
Главное замечание — 10 дней только на чтение данных — это ужасно. Однозначно свидетельствует об ошибке настройки. Например, о пропущенных шагах оптимизации. Сборка геометрий и индексирование заняли бы ещё минимум две недели, так что нет смысла восстановить это всё. Быстрее оптимизировать и запустить заново.
Штатного способа возобновить импортирование нет, но можно немного попрограммировать, вставив пропуск этапа и пересобрав osm2pgsql.
Когда памяти мало и диск не SSD, лучше вместо -C использовать --flat-nodes, который будет хранить кэш на диске в одном файле, а не кое-как в свопе. На него нужно примерно 30 гигабайт.
Также, “–helper-process”? Что это? Не --number-processes 4?
Zverik, да, опечатка –number-process=4
Долго потому, что это обычный ПК, на котором собираются эти самые карты. Был бы сервер какой мощный, то было бы куда быстрее.
Спасибо, обязательно ознакомлюсь с этими документами, что вы указали.
Обычный ПК часто мощнее «мощных» серверов. Месяц на импорт планеты — слишком много даже на машине десятилетней давности.
И очень внимательно смотрите на сообщения osm2pgsql. С вашей склонностью к опечаткам можно случайно замедлить импорт в несколько раз.
как-то странно вы говорите. На том же Хабре я читал, что народ на мощных серверах чуть не по месяцу импортируют планету всю.
Об этом же пишут и на англоязычных ресурсах.
Да что там говорить: если карта аз 5.2ГБ в базе данных потом становится около 118ГБ.
А опечатка одна, т.к. osm2pgsql выводит после импорта (перед индексацией) “using 4 helper process”.
На хабре люди, не склонные вдаваться в детали: им легче месяц на импорт потерять, чем лишних две страницы прочитать.
По одной из ссылок, которые я привёл, лежат замеры импортов планеты. Там всё в пределах недели.
Если у вас не вся планета, а кусок в 5,2 ГБ, то её куда быстрее будет на облачном сервере за день импортировать в базу, и затем перелить файлы базы к себе.
Zverik,
спасибо Вам за информацию. Посмотрел всё что вы прикрепили: немного подкорректировал postgresql, взяв параметры из PDF-файла, указал –flat-nodes и запустил процесс. Стало шустрее, что уж там скрывать.
Конечно, диск не SSD, но и для обычного очень даже не плохо.
Если, к примеру, nodes импортировались до этого 237k/s, то сейчас 1 500k/s. Правда, линии (way) как медленно делались, так и делаются, но скорость выросла с 0.11k/s до 0.80k/s, но правда скачет туда-сюда, но всё же выше, чем было.
У меня еще один вопрос образовался, может вы подскажете решение, мне, увы, самостоятельно не удалось решить:
делаю osm2pgsql с ключом --append. Какое-то время процесс идет, а потом он мне пишет, что duplicate key value.
Я поискал эту проблему и народ пишет, что есть какие-то одинаковые значения, которые используются. Отсюда вопрос - можно как-то ему сказать что бы он эти одинаковые значения пропускал, что бы не выпадал с ошибкой при добавке?
В БД импортирована Россия. Я к ней хочу добавить Африку - выдает вот эту ошибку.
Спасибо.