2013-09-21 2 views
2

Теперь я хочу создать базу данных, и в некоторых динамических атрибутах будут некоторые таблицы. Я могу выбрать традиционные RDBMS, такие как MySQL, для их реализации с помощью модели дизайна EAV. Но теперь я хочу попробовать что-то новое. Я слышал, что база данных NoSQL может легко решить проблему динамических атрибутов, и я хочу выбрать один из них между MongoDB и Cassandra.Как выбрать базу данных между MongoDB и Cassandra

А вот некоторые ситуации, о базе данных я хочу разработать:

Там будет около 200 000 пунктов в этой базе данных, и база данных будет хранить в одном сервере.

Когда пользователь хочет использовать эту базу данных, основная процедура заключается в следующем: пользователь сначала посетит таблицу A, внешний ключ таблицы B, а затем зайдет в таблицу B, получит внешний ключ таблицы C. Таблица C имеет множество фиксированных атрибутов и некоторые динамические атрибуты. Затем пользователь получит кортеж из таблицы C, прочитает некоторые значения и затем изменит некоторые значения этого кортежа и может добавить некоторые динамические значения этого кортежа.

Я бы импортировал почти все эти кортежи из электронной таблицы Excel в мою базу данных на Java. Итак, какая из них лучше поддерживает Java?

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

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

+0

Это действительно трудно дать хороший ответ, «лучшую поддержку» очень субъективно. Реальная проблема, которая вам нужна для разработки, - это то, какая ББ наилучшим образом соответствует вашим требованиям к хранению. – WiredPrairie

ответ

2

Нет очевидного ответа, учитывая предоставленную вами информацию.

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

http://docs.mongodb.org/manual/core/data-modeling/

Для нашего проекта ранней стадии мы выбрали MongoDB и, несмотря мы двигаемся некоторые вещи Кассандре сейчас, я действительно не жалею о том, чтобы этот выбор.

Mongo на самом деле простой, гибкий. Очень просто для разработки, применения изменений схемы, запросов. Он много прощает. Я бы сказал, что это почти бесценно для новичков NoSQL.

Cassandra намного продвинулся вперед. Это требует большего внимания дизайну схемы и шаблонам запросов. Горизонтальная масштабируемость является одной из лучших на рынке NoSQL. Cassandra имеет большое преимущество в операциях записи.

Многие пользователи Mongodb приходят два Cassandra. Но только в том случае, если есть реальные показатели производительности и масштабируемости.

Но поскольку у вас будет установка на одной машине - mongodb может быть достаточно. Он имеет очень хорошую производительность чтения, а данные соответствуют ОЗУ.

Обе эти базы данных имеют хорошо поддерживаемые драйверы.

https://github.com/mongodb/mongo-java-driver

Для Кассандры это стоит в виду водителя новый Datastax

https://github.com/datastax/java-driver

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

Я бы рекомендовал MongoDB тогда ...

+0

Спасибо! Это то, чего я хочу. Я думаю, что я могу просто использовать MongoDB для создания базы данных, потому что теперь главная цель - импортировать все эти данные в нее и обновить некоторые кортежи. Поскольку структура базы данных не очень сложна, я могу перейти в Cassandra, если нам действительно нужна очень высокая производительность и масштабируемость. – Jane

Смежные вопросы