Подтвердить что ты не робот

NoSQL и пространственные данные

Имеет ли кто-нибудь из вас опыт использования NoSQL (нереляционных) баз данных для хранения пространственных данных? Существуют ли какие-либо потенциальные преимущества (скорость, пространство,...) использования таких баз данных для хранения данных, например, для настольного приложения (по сравнению с использованием SpatiaLite или PostGIS)?

Я видел сообщения об использовании MongoDB для пространственных данных, но меня интересует сравнение производительности.

4b9b3361

Ответ 1

графические базы данных, такие как Neo4j, очень подходят, особенно если вы можете динамически добавлять разные схемы индексирования по мере продвижения. Типичным материалом, который вы можете сделать для своих базовых данных, является, конечно, однократное индексирование (например, Timline или B-Trees) или более забавные вещи, такие как кривые Гильберта и т.д., См. Nick blog. Кроме того, для какой-либо живой демонстрации посмотрите на графический редактор AWE с открытым исходным кодом здесь, основной индексированный график будет отображаться во время 07:00.

Ответ 3

В настоящее время MongoDB использует geohashing с B-деревьями, которые будут медленнее, чем R-деревья PostGIS (я не могу дать точные цифры, я боюсь, но есть много теоретической литературы о различиях). Однако в этих слайдах http://www.slideshare.net/nknize/rtree-spatial-indexing-with-mongodb-mongodc автор говорит о добавлении R-деревьев в MongoDB и оверкловании по гео-ключу. Вы говорите о работе на настольном компьютере, поэтому геообработка может не представлять интереса, так как ошеломляющие преимущества будут ощущаться больше на массивных наборах данных. В конечном счете, это, вероятно, сводится к тому, что вы хотите делать с вашими пространственными данными. Postgis обладает гораздо большими функциями и поддержкой топологии, растров, 3D, конверсий между системами координат, поэтому, если это то, что вы ищете, PostGIS по-прежнему будет лучшим вариантом. Если вы хотите хранить миллиарды/триллионы пространственных объектов и просто запускать базовые, найдите все точки вблизи/внутри этой точки, основываясь на некоторых критериях, то MongoDB, вероятно, очень хороший выбор.

Ответ 4

Я сохраняю пространственные данные с помощью ZODB. Однако некоторые преимущества производительности при доступе к локальным файлам данных (пространственный) или unix-сокету (PostGIS) по сравнению с TCP или HTTP-запросами (CouchDB и т.д.), Но с пространственным индексом имеют самое большое различие. Я использую те же R-деревья, о которых упоминается в статье MongoDB, но есть много хороших вариантов. Набор топологии JTS имеет различные пространственные индексы для Java.

Ответ 6

Tarantool поддерживает пространственный двумерный индекс (RTREE) с поиском ближайших соседей, перекрывает, содержит и другие пространственные операторы. Tarantool поддерживает весь набор данных в ОЗУ, что делает его единственной базой данных OSS в памяти с поддержкой пространственного индекса. https://github.com/tarantool/tarantool/wiki/R-tree-index-quick-start-and-usage

Ответ 7

MarkLogic (Enterprise NoSQL) обеспечивает пространственную функциональность. Этот продукт NoSQL предоставляет приложениям GIS возможность объединить несколько объектов в один объект. Это обеспечивает поддержку управления отношениями между структурированным и неструктурированным контентом, информацией о происхождении и родословной о данных, исторической и временной информации и т.д. В одном объекте.