CouchDB против HBase

Есть ли сходство между этими двумя?

Ответ 1

На поверхности они имеют много общего:

  • Безмодельная модель данных
  • Распределенный дизайн
  • Map-Reduce как модель обработки (в отличие от SQL)

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

Безмодельная модель данных:

  • CouchDB - это хранилище документов, позволяющее хранить любой документ в формате JSON.
  • HBase - это хранилище, ориентированное на столбцы, где вы храните значения столбца и можете группировать эти значения в строку (очень упрощенное объяснение).

Распределенный дизайн:

  • CouchDB использует одноранговую структуру для распространения данных.
  • HBase использует мастер-узлы, которые определяют, где записываются столбцы и строки. (опять упрощенное объяснение).

Map-Reduce:

  • CouchDB имеет встроенный механизм, называемый "представлениями", который позволяет вам определять встроенные задания сокращения карты. Эти "представления" генерируют "таблицу", содержащую вывод задания сокращения карты, который затем можно использовать так же, как и обычную таблицу. Подобно материализованным представлениям в реляционных базах данных.
  • HBase не имеет встроенного механизма уменьшения карты. Скорее всего, вы можете подключить HBase с помощью Hadoop для выполнения задач Map-Reduce. То, что вы делаете с результатом, не зависит от HBase, вы можете импортировать данные или переместиться в другую базу данных.

Я попытался не вдаваться в подробности, и надеюсь, что я объясню, чтобы дать вам понимание.

Kristóf Kovács создал достойный обзор функций этих баз данных и других в поле NoSQL.

Ответ 2

У них нет ничего общего. CouchDB - это база данных, а Hadoop - это распределенная инфраструктура обработки.

Вместо этого вы должны сравнивать AdvchDB и Hbase/Hive (которые основаны на Hadoop).

Итак, я думаю, что этот старый вопрос должен помочь вам: bigtable vs cassandra vs simpledb vs dynamo vs couchdb vs hypertable vs riak vs hbase, что у них общего?