Введение в Apache CouchDB

Опубликовано: 10 Июня, 2021

Apache CouchDB был разработан Apache Software Foundation и первоначально выпущен в 2005 году. CouchDB написан на Erlang. Это база данных с открытым исходным кодом, которая использует различные форматы и протоколы для хранения, передачи и обработки своих данных. Он использует JSON для хранения данных, JavaScript в качестве языка запросов с использованием MapReduce и HTTP для API. Документы - это основная единица данных в CouchDB, и они также включают метаданные. Поля документа имеют уникальные имена и содержат значения разных типов, и нет установленных ограничений на размер текста или количество элементов.

История

CouchDB был написан на языке программирования Erlang. Он был запущен Дэмиеном Кацем в 2005 году. CouchDB стал проектом Apache в 2008 году. Текущая версия CouchDB - 1.61.

Архитектура

Архитектура CouchDB описана ниже:

  1. CouchDB Engine: он основан на B-дереве, и в нем доступ к данным осуществляется с помощью ключей или диапазонов ключей, которые отображаются непосредственно на базовые операции B-дерева. Это ядро системы, в которой хранятся внутренние данные, документы и представления.
  2. HTTP-запрос: используется для создания индексов и извлечения данных из документов. Он написан на JavaScript, что позволяет создавать специальные представления, состоящие из заданий MapReduce.
  3. Документ: в нем хранится большой объем данных.
  4. База данных реплик: используется для репликации данных в локальную или удаленную базу данных и синхронизации проектных документов.

Особенности CouchDB

Возможности CouchDB включают следующее:

  1. Репликация: она обеспечивает простейшую форму репликации, и никакая другая база данных не может быть настолько простой для репликации.
  2. Хранилище документов: это база данных NoSQL, которая следует за хранилищем документов, где каждое поле имеет уникальное имя и содержит значения различных типов данных, таких как текст, число, логическое значение, списки и т. Д.
  3. Свойства ACID: макет файла CouchDB соответствует всем функциям свойств ACID.
  4. Безопасность: он также обеспечивает безопасность на уровне базы данных, а разрешения делятся на читателей и администраторов, где читатели могут выполнять как чтение, так и запись в базу данных.
  5. Map / Reduce: основная причина популярности CouchDB - это система map / reduce.
  6. Аутентификация: CouchDB помогает поддерживать аутентификацию открытой с помощью файла cookie сеанса, подобного веб-приложению.
  7. Создан для работы в автономном режиме: CouchDB может реплицироваться на такие устройства, как смартфоны, у которых есть функция перехода в автономный режим и обработки данных за вас, когда устройство снова подключено к сети.
  8. Конечная согласованность: CouchDB гарантирует конечную согласованность, обеспечивая как доступность, так и устойчивость к разделам.
  9. HTTP API: все элементы имеют уникальный URI (уникальный идентификатор ресурса), который предоставляется через HTTP. Он использует методы HTTP, такие как POST, GET, PUT и DELETE, для четырех основных операций CRUD (создание, чтение, обновление, удаление) для всех ресурсов.

Преимущества CouchDB

Преимущества CouchDB:

  1. HTTP API используется для удобного общения.
  2. Он используется для хранения любого типа данных.
  3. ReduceMap позволяет оптимизировать объединение данных.
  4. Структура CouchDB очень проста
  5. Быстрое индексирование и поиск.

Недостатки CouchDB

К недостаткам CouchDB можно отнести следующее:

  1. CouchDB занимает много места для накладных расходов, что является серьезным недостатком по сравнению с другими базами данных.
  2. Произвольные запросы обходятся дорого.
  3. CouchDB требует дополнительных накладных расходов по сравнению с большинством альтернатив.
  4. Временные просмотры огромных наборов данных работают очень медленно.
  5. Он не поддерживает транзакции
  6. Репликация больших баз данных может завершиться ошибкой.