2010-09-06 4 views
16

Я просто хотел знать, существует ли принципиальная разница между hbase, cassandra, couchdb и monogodb? Другими словами, все они конкурируют на одном и том же рынке и пытаются решить одни и те же проблемы. Или они подходят лучше всего в разных сценариях?HBase cassandra couchdb mongodb..any фундаментальное различие?

Все это приходит к вопросу, что я должен выбрать, когда. Вопрос о вкусе?

Спасибо,

Федерико

+0

Эта актуальная статья полезна: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis – coderz

ответ

12

Вот некоторые длинные ответы от @Bohzo. (но они хорошие ссылки)

По правде говоря, они «сорт». Но у них определенно есть разные сильные и слабые стороны, и они определенно не все решают одни и те же проблемы.

Например, Couch и Mongo предоставляют двигатели Map-Reduce как часть основного пакета. HBase - это (в основном) слой поверх Hadoop, поэтому вы также получаете M-R через Hadoop. Cassandra очень ориентирована на хранилище Key-Value и имеет плагины для «слоя» Hadoop поверх (так что вы можете уменьшить карту).

Некоторые из БД обеспечивают MVCC (контроль параллелизма нескольких версий). Монго не делает.

Все эти БД предназначены для масштабирования по горизонтали, но они делают это по-разному. Все эти БД также пытаются обеспечить гибкость по-разному. Гибкие размеры документов или API REST или высокая избыточность или простота использования, все они делают разные компромиссы.

На ваш вопрос: Иными словами, все они конкурируют на одном и том же рынке и пытаются решить одни и те же проблемы?

  1. Да: они все пытаются решить проблему базы данных-масштабируемости и производительности.
  2. No: они определенно создают разные варианты компромиссов.

С каких целей вы должны начать?

Человек, это сложный вопрос. Я работаю над крупной компанией, которая подталкивает массу данных, и мы прошли через несколько лет. Мы несколько раз пытались Кассандру, и пару лет назад он не мог справиться с нагрузкой. Мы используем Hadoop повсюду, но он определенно имеет крутую кривую обучения, и он не сработал в некоторых наших средах. Совсем недавно мы попытались сделать Cassandra + Hadoop, но оказалось, что это много работы по настройке.

Лично мой отдел перемещает несколько вещей до MongoDB. Наши причины для этого - честно простота.

Настройка Mongo в окне linux занимает минуты и не требует доступа к корню или изменения в файловой системе или что-либо интересное. Нет сумасшедших конфигурационных файлов или перекомпиляций Java. Таким образом, с этой точки зрения, Mongo был самым простым «шлюзовым препаратом» для того, чтобы заводить людей в магазины KV/Document.

+0

Что относительно кушетки, вы пробовали это? –

+0

Какая часть? Я знаю, что некоторые люди используют Membase (memcache w/persistence). Легко управлять и имеет приятный интерфейс для этого. Но он также не пытается сделать многое. CouchDB продал себя как очень хорошо для настройки с несколькими мастерами, но мне никогда не приходилось использовать это вообще. CouchDB имеет вторичные индексы и несколько подобных функций для MongoDB, так что это действительно о том, насколько комфортно вы используете все это. –

+0

IS mongo лучше, чем Cassandra для записи? Запись Кассандры происходит в памяти, и все говорят, что кассандра очень хорошо работает с книгами. Является ли манго еще лучше? – Peter

5

Короткий ответ: тест перед использованием в производстве.

я могу предложить свой опыт как HBase (экстенсивный) и MongoDB (только начиная).

Несмотря на то, что они не являются такой же магазинах, они решают одни и те же проблемы:

  • масштабируемое хранилище данных
  • произвольного доступа к данным
  • низкая задержка доступа

Мы с большим энтузиазмом относились к HBase. Он построен на Hadoop (который является прочным), он находится под Apache, он активен ... чего еще вы хотели? Наш опыт:

  • HBase хрупка
  • кошмар администратора (полный параметров конфигурации по умолчанию, где те, которые менее совершенной, непрозрачной конфигурации, меняется от версии к версии, ...)
  • теряет данные (если вы установили конфигурацию X и изменили Y на ... вы получили точку :) - мы обнаружили это, когда HBase разбился, и мы потеряли 2 часа (!!!) данных, потому что WAL не был правильно настроен
  • не хватает вторичных индексы
  • не имеет возможности выполнить резервное копирование базы данных с помощью t закрытие его

В целом, HBase был кошмаром. Не рекомендовал бы его никому, кроме наших прямых конкурентов. :)

MongoDB решает все эти проблемы и многие другие. Приятно настраивать, он делает его простым и прозрачным, а настройки по умолчанию на самом деле имеют смысл. Вы можете выполнять (горячие) резервные копии, у вас могут быть вторичные индексы. Из того, что я читал, я бы не рекомендовал MapReduce на MongoDB (JavaScript, 1 поток на каждый узел), но вы можете использовать Hadoop для этого.

И это также ОЧЕНЬ активно по сравнению с HBase.

также: http://www.google.com/trends?q=HBase%2CMongoDB

Нужно ли говорить больше? :)

ОБНОВЛЕНИЕ: Много месяцев спустя я должен сказать, что MongoDB доставлен на все учетные записи и многое другое. Единственный реальный недостаток заключается в том, что хостинговые компании не предлагают его так, как они предлагают MySQL. ;) Это также похоже, что MapReduce обязательно станет multi-threaded в 2.2. Тем не менее, я бы не использовал MR таким образом. YMMV.

1

Кассандра хороша для записи данных. у него есть преимущество «записи никогда не сработают». У него нет отказа одной точки.

HBase очень подходит для обработки данных. HBase основан на файловой системе Hadoop (HDFS), поэтому HBase не нужно беспокоиться о репликации данных, согласованности данных. HBase имеет единственную точку отказа. Я не совсем уверен, что это означает, что если у него есть одна точка отказа, то она так же похожа на РСУБД, где у нас есть одна точка отказа. Возможно, я ошибаюсь, потому что я совершенно новый.

Каким образом АУА РИАК? У кого-то есть опыт использования RIAK. Я краснею там, где тебе нужно платить, я не уверен. Нужно объяснять.

Еще одна вещь, которую вы предпочитаете использовать, когда речь идет только о чтении большого количества данных. У вас нет проблем с письмом. Представьте, что у вас есть база данных с pitabyte, и вы хотите быстро найти, какую базу данных NOSQL вы бы предпочли?

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

  • Нет связанных вопросов^_^