Введение в Apache CouchDB
Apache CouchDB был разработан Apache Software Foundation и первоначально выпущен в 2005 году. CouchDB написан на Erlang. Это база данных с открытым исходным кодом, которая использует различные форматы и протоколы для хранения, передачи и обработки своих данных. Он использует JSON для хранения данных, JavaScript в качестве языка запросов с использованием MapReduce и HTTP для API. Документы - это основная единица данных в CouchDB, и они также включают метаданные. Поля документа имеют уникальные имена и содержат значения разных типов, и нет установленных ограничений на размер текста или количество элементов.
История
CouchDB был написан на языке программирования Erlang. Он был запущен Дэмиеном Кацем в 2005 году. CouchDB стал проектом Apache в 2008 году. Текущая версия CouchDB - 1.61.
Архитектура
Архитектура CouchDB описана ниже:
- CouchDB Engine: он основан на B-дереве, и в нем доступ к данным осуществляется с помощью ключей или диапазонов ключей, которые отображаются непосредственно на базовые операции B-дерева. Это ядро системы, в которой хранятся внутренние данные, документы и представления.
- HTTP-запрос: используется для создания индексов и извлечения данных из документов. Он написан на JavaScript, что позволяет создавать специальные представления, состоящие из заданий MapReduce.
- Документ: в нем хранится большой объем данных.
- База данных реплик: используется для репликации данных в локальную или удаленную базу данных и синхронизации проектных документов.
Особенности CouchDB
Возможности CouchDB включают следующее:
- Репликация: она обеспечивает простейшую форму репликации, и никакая другая база данных не может быть настолько простой для репликации.
- Хранилище документов: это база данных NoSQL, которая следует за хранилищем документов, где каждое поле имеет уникальное имя и содержит значения различных типов данных, таких как текст, число, логическое значение, списки и т. Д.
- Свойства ACID: макет файла CouchDB соответствует всем функциям свойств ACID.
- Безопасность: он также обеспечивает безопасность на уровне базы данных, а разрешения делятся на читателей и администраторов, где читатели могут выполнять как чтение, так и запись в базу данных.
- Map / Reduce: основная причина популярности CouchDB - это система map / reduce.
- Аутентификация: CouchDB помогает поддерживать аутентификацию открытой с помощью файла cookie сеанса, подобного веб-приложению.
- Создан для работы в автономном режиме: CouchDB может реплицироваться на такие устройства, как смартфоны, у которых есть функция перехода в автономный режим и обработки данных за вас, когда устройство снова подключено к сети.
- Конечная согласованность: CouchDB гарантирует конечную согласованность, обеспечивая как доступность, так и устойчивость к разделам.
- HTTP API: все элементы имеют уникальный URI (уникальный идентификатор ресурса), который предоставляется через HTTP. Он использует методы HTTP, такие как POST, GET, PUT и DELETE, для четырех основных операций CRUD (создание, чтение, обновление, удаление) для всех ресурсов.
Преимущества CouchDB
Преимущества CouchDB:
- HTTP API используется для удобного общения.
- Он используется для хранения любого типа данных.
- ReduceMap позволяет оптимизировать объединение данных.
- Структура CouchDB очень проста
- Быстрое индексирование и поиск.
Недостатки CouchDB
К недостаткам CouchDB можно отнести следующее:
- CouchDB занимает много места для накладных расходов, что является серьезным недостатком по сравнению с другими базами данных.
- Произвольные запросы обходятся дорого.
- CouchDB требует дополнительных накладных расходов по сравнению с большинством альтернатив.
- Временные просмотры огромных наборов данных работают очень медленно.
- Он не поддерживает транзакции
- Репликация больших баз данных может завершиться ошибкой.