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

Пространственные данные с монгодбом или кассандрой

Я рассматриваю Доказательство концепции для обработки больших объемов данных, таких как > 10 G, которые требуют, по меньшей мере, 200+ записей в секунду и около 50 + чтение в секунду пространственных связанных данных. Это тоже растущая система. В настоящее время я рассматриваю возможность переноса этих данных большого объема в формат db для больших таблиц NoSql по соображениям производительности.

Я рассмотрел и поближе посмотрел на MongoDB и cassandra. Что касается моего чтения,

MongoDB: - похоже, проблема с блокировкой записи - один из сообщений в stackoverflow предложил этот db, если нет необходимости в нескольких серверах - индексы хранятся в памяти. Таким образом, чем больше рост индекса, тем выше производительность. - преимущество Mongodb имеет прямую поддержку пространственных данных и индексации наряду с такими функциями, как поиск близлежащих мест и т. - Я вижу этот пост Cassandra Or MongoDB для нашего приложения на основе местоположения, предлагая mongodb как лучший выбор

Cassandra:
- Кажется лучшим среди связанных dbs - Кажется, есть отличная запись, а также чтение производительности - Не поддерживает пространственное индексирование, но это может быть расширено с помощью geohash

Мое сердце на самом деле выходит на mongodb из-за его хорошей документации и прямой поддержки пространственных данных. Имеет ли какой-либо орган плохой опыт использования mongodb для таких больших систем? Я действительно вижу много сообщений о mongodb iostat для производительности.

Если mongodb не подходит, может кто-нибудь дать некоторые указатели на geohash используя cassandra? Я видел ссылку http://code.google.com/p/geospatialweb/ для создания хэшей. Но есть вопросы о том, как запрашивать и т.д.?

4b9b3361

Ответ 1

Я понимаю, что это более старый вопрос, и я знаю, что он напрямую не отвечает на ваш вопрос, но в зависимости от ваших запросов, Cassandra, возможно, не самый лучший вариант. И заставить ваши запросы работать с индексацией в MongoDB может быть проблематичным а также (на собственном опыте). У Монго есть небольшое преимущество над Cassandra для тяжелых геоданных и запросов imho.

Я бы посоветовал также рассмотреть возможность поиска в ElasticSearch, который в зависимости от вашей формы данных и типов запросов, которые вы будете делать, вероятно, является лучшим решением. Когда вы разместили свой вопрос, скорее всего, это был скорее вариант, чем сегодня.

Ответ 2

Мы также используем Cassandra на данный момент и ищем решение пространственного индекса. Мы идем с Lucene, чтобы предоставить полный текст и приписывать поиск, а вместе с ним и поддержка пространственной индексации. Возможно, вы тоже захотите проверить это.

Наша текущая реализация выглядит как очертание информации, основанной на простом дереве (сетка), и каждый осколок является индексом Lucene, и как только он растет на определенный размер, индекс делится на x или y. И так как у такого осколка есть двоичное представление (позиция в сетке состоит из двух битов, следующего уровня следующих 2 бит и т.д.), Поиск выдается положением и на него будет отвечать любой осколок шляпы, префикс положения/разрешения сетки, Простая система работает до сих пор, но пока не используется продуктивно.