Обзор свежих и не очень событий из мира БД, касающихся Г?С.
PostgreSQL
С выходом версии 9.1 индексы GiST расширены операцией “distance”. Так называемый K-Nearest-Neighbor Indexing (KNNGiST) существовал ранее в виде модуля и теперь включен в базовую поставку. Термин “distance” применен в лингвистическом понимании и используется для нечеткого сравнения строк методом n-грамм (конкретнее, триграмм), но подходит и для сравнения объектов типа point. (Функционал не связан с PostGIS.)
SpacialDB
Оф. сайт / Портал для разработчиков / Блог
Пространственная БД, разработанная для облачного хостинга геоданных. То есть данные могут храниться непосредственно на хостинге SpacialDB или во внешних облаках (Heroku, Amazon WS и др.; обычный сервер PostgreSQL+PostGIS) с доступом через SpacialDB. ?меет биндинги для серверных фреймворков (ruby, python, php, node.js). В настоящее время находится в режиме бета-тестирования и получение ограниченного аккаунта пока бесплатное.
?митирует работу PostGIS, поэтому соответствующие клиенты (QGIS) могут работать без изменений. Также имеется REST-API и Mobile SDK.
Пошаговые руководства загрузки данных OSM и подключение к БД из Quantum GIS.
MonetDB
База данных с принципом хранения данных по-колонкам, что повышает производительность в конфигурациях с миллионами записей.
В пользовательском плане версия Aug2011 не принесла больших новшеств. В частности, модуль GEOM теперь корректно обрабатывает значение NULL.
CouchDB
Особых новостей последние полгода не было. Разве что в Couchbase Single Server 2.0 появилась поддержка CoffeeScript.
Компания Couchbase по прежнему предоставляет бесплатные бинарные версии сервера, позволяющего получить готовую БД вместе с расширением GeoCouch.
Volker Mische. The State of GeoCouch // FOSS4G 2011 [pdf]
Iris Couch – хостинг на базе Couchbase Server. Позиционируется как место для разработки концепт-проектов с последующим переездом на отдельный сервер CouchDB. В будущем планируют ввести платные услуги, но пока что регистрация бесплатная.
OrientDB
Появившаяся в мартовском релизе 0.9.25 операция distance (поиск документов в окрестности точки) дальнейшего развития не получила.
MongoDB
MongoDB как и OrientDB относится к документ-ориентированным БД, но содержит более развитый Geospatial Indexing. Каждый объект может содержать географическую привязку в виде {loc: [50, 30]}, предоставлено несколько функций поиска (по близости, в радиусе, bbox).
Начиная с версии 2.0.0 (2011-09-12) объект может иметь несколько географических привязок (список точек), добавлен поиск по полигону (сами полигоны хранить в документах нельзя).
Greg Studer. Geospatial Indexing with MongoDB // MongoSF 2011
Grant Goodale. Storing and Querying location data with MongoDB // MongoSF 2011
Neo4j
БД Neo4j с принципом хранения в виде графов развивается очень активно: новый веб-интерфейс, язык запросов Cypher, обновленный плагин Gremlin, авто-индексы.
Над расширением Neo4j Spatial (GitHub) также работают, но проект все еще находится в алфа-стадии и выпуск отдельных версий не производится. В июле восстановили процесс создания snapshot’ов, поддерживаются актуальные версии плагинов для GeoServer и uDig. Добавлены хорошие примеры работы с данными OSM.
По программе GSoC 2011 выполнен проект по добавлению функций геопроцессинга (см. доклад на FOSS4G 2011).
Peter Neubauer. Neo4j Spatial – Geo Data for the Rest of Us // OSCON Data 2011 [pdf]
Craig Taverner. Geoprocessing with Neo4j Spatial and OSM // FOSS4G 2011.
Cassandra, HBase
Распределенные базы данных для действительно больших проектов. Есть отдельные реализации хранилищ гео-объектов, например, компания SimpleGeo использует Cassandra для своего хостинга. В планах HBase также стоит поддержка пространственных индексов (обсуждалось в июле). Но на сегодняшний день встроенной поддержки гео-объектов пока нет.
Mike Malone. Working with Dimensional Data in a Distributed Hash Table // Strange Loop 2010
однако, сколько их развелось…
Нужно поискать или сделать свой тест скорости distance в PostgreSQL, мне как раз нужен для нечеткого поиска. Раньше n-граммы не применяли в высокопроизводительных приложениях, может здесь что то придумали такое особенное. Опять же придется код смотреть :-\
[…] темы, начатой в первой части. На этот раз рассмотрены преимущественно […]