Не только 64 бита

Вы помните о проблеме 2013 года, когда идентификаторы узлов в OpenStreetMap превысили 2³¹. Те, кто держит регулярно обновляемый сервер тайлов, вчера вечером могли заметить ошибку в логе osm2pgsql:

Osm2pgsql failed due to ERROR: insert_rel failed: ERROR: value «37945» is out of range for type smallint

Да, программа не ожидала, что на хранение количества членов отношения может не хватить двух байтов. Чтобы восстановить обновление, нужно откатить состояние до этого state.txt и убедиться, что osmosis скачивает диффов минимум на два часа. На гитхабе разработчики osm2pgsql обсуждают, как и где лучше ограничить размеры отношений.

Откуда взялось такое большое отношение? Это, слава богу, не мультиполигон. В Бразилии кто-то решил импортировать геодезические сети: 7700 точек плановой сети (для определения координат) и 38 тысяч — высотной (для определения высот). Не очень понятно, зачем в OSM последние: снимки по ним не привяжешь, а ЦМР по осму нормальные люди не корректируют. Но обсуждение импорта в почтовой рассылке не завязалось, а бразильскую группу в телеграме, куда сбежали осмеры, читать сложно.

Проблема оказалась в том, что все импортированные точки люди решили объединить в отношения. В вики с 2008 года предупреждают: отношения — не категории, не создавайте их для облегчения выкачивания данных. Есть же Overpass API, есть osmfilter. «Но мне же надо» — и получилось отношение из 38 тысяч точек. В течение пары минут после его загрузки у многих обвалился osm2pgsql и через полтора часа DWG откатила правку. По техническим причинам, так как формальности были соблюдены и скоро, видимо, точки вернут.

Поделиться
Отправить
Запинить

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

8 комментариев
freeExec 2017

Нет, пункты нужны. А группировку в топку.

pfg21 2017

Надо просто вписать все технические ограничения в /api/capabilities
Мало кто из девов знает ограничения проекта.

BushmanK 2017

freeExec, предлагаемый сценарий использования?

freeExec 2017

freeExec, предлагаемый сценарий использования?

Пунктов? Ну например поиск. А если они ещё и с каталожными координатами, так вообще красота.

freeExec 2017

А за 13 число у меня тоже странность была. В вырезку России попали линии из Америки, причём без единой точки. Благо сегодня обновился всё норм, на 3Мб похудел дамп :)

BushmanK 2017

То есть это, фактически, хранение сторонних данных, которые с остальными данными OSM никак или почти никак (повезет, если пункт окажется на каком-нибудь пике) не пересекаются. Это больше похоже на эксплуатацию базы в каких-то совершенно сторонних интересах (бэкап для базы пунктов геодезической сети тамошнего survey authority).

freeExec 2017

Не понял, в чём их принципиальное отличие от других физических объектов, что мы вносим в базу, люки там разные гидранты, почтовые ящики, здания и т. д.?

BushmanK 2017

Отличие в том, что они не всегда являются физическими объектами. Точнее, есть физические объекты, чьи свойства (координаты в пространстве) являются содержимым базы пунктов геодезической сети и которые без этой базы ничего не значат.
Таким образом, эти объекты хотя и являются материальными, но вся информация о них, то есть их точные координаты, верифицируема (на практике) только с использованием этой сторонней базы (чего нельзя сказать, например, о люках или гидрантах).

Популярное