На поверхности они имеют много общего:
- Модель данных без схемы
- Распределенный дизайн
- Map-Reduce как модель обработки (в отличие отв SQL)
Однако детали реализации каждой из этих точек весьма различны и имеют очень мало общего.Я слегка перейду к пунктам.
Модель данных без схемы:
- CouchDB - это хранилище документов, позволяющее хранить любой документ в формате JSONformat.
- HBase - это хранилище, ориентированное на столбцы, где вы храните значения столбцов и можете группировать эти значения в строку (очень упрощенное объяснение).
Распределенный дизайн:
- CouchDB использует одноранговый дизайн для распределения данных.
- HBase использует главные узлы, которыедиктовать, где столбцы и строки написаны.(опять упрощенное объяснение).
Map-Reduce:
- CouchDB имеет встроенный механизм, называемый "views", который позволяет вам определятьвстроенная карта-сокращение рабочих мест.Эти «представления» генерируют «таблицу», содержащую выходные данные задания уменьшения карты, которые затем можно использовать так же, как обычную таблицу.Аналогично материализованным представлениям в реляционных базах данных.
- HBase не имеет встроенного механизма уменьшения карты.Скорее, вы можете подключить HBase к Hadoop для выполнения заданий Map-Reduce.То, что вы делаете с результатом, не зависит от HBase, вы можете импортировать данные или переместить их в другую базу данных.
Я попытался не вдаваться в подробности, и надеюсь, что того, что я объяснил, достаточно, чтобы дать вампонимание.
Кристоф Ковач создал обзор возможностей этих баз данных и других в области NoSQL.