Пространственные данные с mongodb или cassandra

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

Я рассмотрел и внимательно рассмотрел MongoDB и cassandra. Насколько я понимаю,

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

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

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

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

26
задан Community 23 May 2017 в 11:54
поделиться

1 ответ

TL; DR
Elassandra сочетание из Cassandra и ElasticSearch.

Небольшое обновление из будущего.

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

Первым, о чем я прочитал, был PostgreSQL + Postgis, но самый большой экземпляр ограничен макс. 200k операций записи в секунду.
Второй была геопространственная база данных Tile38 , которая может масштабировать запросы, но не записи. Единственный способ с этим было бы вручную разделить данные.
Третьим был MongoDB, потому что там вы можете найти хорошую документацию, поддерживающую геопространственную функциональность, которая мне нужна, но было трудно решить, сможете ли вы масштабировать записи.
Итак, последней базой данных была Кассандра. Эта база данных хорошо известна благодаря горизонтальному масштабированию записи и принятию сбоев. Компромисс с Cassandra заключается в том, что запрос данных имеет не очень хорошую производительность и не поддерживает гео-пространственную настройку из коробки. Для запроса данных в масштабе ElasticSearch является хорошим решением, как уже предлагал Tracker1. Сегодня я нашел новую базу данных, состоящую из Cassandra и ElasticSearch, названную Elassandra , которая позволяет производить запись в масштабе, а также считывать данные в масштабе почти в реальном времени. Пока для меня лучшее решение, с минимальными усилиями по настройке и обслуживанию.

1
ответ дан 28 November 2019 в 17:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: