BPM

от 12 000 руб/год

Цифровые процессы

с комфортом для людей

IaaS

от 249,95 руб.

Для любых задач

Оплата pay-as-you-go

Low-code

от 667 руб.

Цифровая трансформация

с ELMA365

IP-телефония

от 0 руб.

Продуманная связь

для вашего бизнеса

IaaS

По

Облако VMware/Брест

ФЗ-152, SLA 99,99%

Корпоративные мессенджеры

от 250 руб/мес

Защищенная платформа

коммуникаций

ВКС

от 250 руб/мес

Платформа корпоративных

коммуникаций

  • IaaS

    от 249,95 руб.

    Для любых задач

    Оплата pay-as-you-go

  • Low-code

    от 667 руб.

    Цифровая трансформация

    с ELMA365

  • IP-телефония

    от 0 руб.

    Продуманная связь

    для вашего бизнеса

  • IaaS

    По

    Облако VMware/Брест

    ФЗ-152, SLA 99,99%

  • Корпоративные мессенджеры

    от 250 руб/мес

    Защищенная платформа

    коммуникаций

  • ВКС

    от 250 руб/мес

    Платформа корпоративных

    коммуникаций

  • HRM

    от 8500 руб.

    HCM-платформа

    для автоматизации HR

  • DBaaS

    От 3,98 руб./час

    №1 в рейтинге DBaaS

    SLA 99,95%, 152-ФЗ, PCI DSS

  • Kubernetes

    От 5,95 руб / час

    №1 в рейтинге провайдеров

    SLA 99,98%, 152-ФЗ

HRM

от 8500 руб.

HCM-платформа

для автоматизации HR

DBaaS

От 3,98 руб./час

№1 в рейтинге DBaaS

SLA 99,95%, 152-ФЗ, PCI DSS

Kubernetes

От 5,95 руб / час

№1 в рейтинге провайдеров

SLA 99,98%, 152-ФЗ

IaaS

от 490руб./мес

VMware / ПО РФ

SLA 99,95% Pay-as-you-go

IaaS

По запросу

По вашим правилам

Dedicated, SaaS/PaaS

IBP

по запросу

Универсальная CPM/EPM

self-service платформа

Корпоративные мессенджеры

От 200 руб/мес

Передовое

решение

CouchDB: обзор СУБД без четкой структуры данных

Безопасность Бизнес Телеком Интернет Цифровизация ИТ в банках ИТ в госсекторе Ритейл Техника Маркет

CouchDB — документоориентированная, реализованная в соответствии с NoSQL подходом, система управления базами данных. Информация в таких типах баз данных хранится без четкой структуры и явных взаимосвязей между данными: вместо этого хранятся любые сведения — например, в виде текстовых документов, аудиофайлов или записи в сети.

Система распространяется в соответствии с Apache License 2.0, как свободное программное обеспечение с открытым исходным кодом. Это означает, что CouchDB можно использовать в любых целях, как угодно изменять и распространять измененные копии. Единственное, что нельзя делать по условиям — это изменять название программного обеспечения.

Разработка ведется на языке Erlang — функциональном языке программирования от компании Ericsson. Он был создан специально для использования в распределенных вычислительных системах с повышенной отказоустойчивостью.

Первые версии СУБД хвалили за скорость, но сильно критиковали за слабую безопасность, особенно за настройки, выставленные по умолчанию. Однако начиная с 3.0 версии, разработчики серьезно переработали подход к безопасности, и теперь стандартные настройки требуют для работы установку и использование паролей везде, где это необходимо.

История возникновения и развития CouchDB

Первый релиз программного обеспечения увидел свет еще в 2005 г. Разработчиком выступил Damien Katz, программист, до этого работавший в IBM, но решивший посвятить себя созданию собственного продукта. Толчком для начала разработки послужило желание создать совершенно новую систему, которая бы не несла с собой старые ошибки и ограничения, а была сразу идеальной. Что касается названия, то Couch — это аббревиатура от cluster of unreliable commodity hardware, а не диван, как мог бы подумать читатель. По крайней мере, так утверждает английская Википедия.

CouchDB — документоориентированная, реализованная в соответствии с NoSQL подходом, система управления базами данных

На протяжении первых 2 лет проект разрабатывался исключительно за счет самого разработчика (Damien Katz) и его силами, после чего был опубликован на условиях лицензии GNU General Public License — то есть, он передал программное обеспечение в общественную собственность. Спустя несколько месяцев оно попало под крыло Apache Software Foundation, где и находится до сих пор. СУБД непрерывно развивается и модифицируется, последняя на сегодня версия вышла в апреле этого года.

В настоящее время система используется как в небольших, так и крупных организациях. Из известных компаний CouchDB задействуют Европейская организация ядерных исследований CERN, International Business Machines Corporation (IBM), Node.js, Британская радиовещательная корпорация, Mozilla Firefox, Tomboy, почтовый клиент Evolution и другие.

Как устроена СУБД CouchDB и принцип работы

Как мы уже писали, в качестве языка разработки используется Erlang, а сама СУБД является документоориентированной NoSQL системой с поддержкой репликации между несколькими БД в формате «master-master» — так обеспечивается высокая надежность и производительность. Хранение данных организовано в виде набора независимых документов, а не в связях и таблицах. При этом в метаданных каждого документа указаны параметры версии — это помогает избежать проблем при работе с репликами и объединенными базами, если они были на время разъединены.

Для управления доступом нескольких пользователей используется хорошо зарекомендовавший себя механизм multiversion concurrency control (MVCC) — выделение каждому пользователю собственного снимка базы, изменения в котором будут недоступны другим пользователям до момента фиксации транзакции. Таким образом происходит разделение, при котором транзакции пишущие/читающие не блокируют друг друга.

Есть возможность использовать СУБД в качестве сервера web-приложений: программное обеспечение включает в себя встроенный web-сервер. Автоматизация операций выполняется с использованием CouchApp — его можно размещать на самом сервере.

CouchDB, как и другие документоориентированные СУБД, нацелена на использование со слабоструктурированными данными. Основные характеристики системы можно отобразить в следующем:

  • в качестве единицы хранения информации используется JSON (JavaScript Object Notation) документ;
  • нет поддержки сопоставления данных отдельным полям документа, но доступно использование функций-валидаторов;
  • запросы и индексы обеспечиваются за счет функции представления;
  • доступно создание сегментированных баз данных с возможностью назначать индивидуальные правила распределения по сегментам;
  • сегментирование может выполняться с использованием автоматического режима разделения;
  • есть автоматическое индексирование, выполняемое в фоне, для актуализации вторичных индексов.

Запросы к СУБД, а также индексация данных, реализованы с помощью технологии MapReduce, с использованием JavaScript. Обращение к базам данных происходит с помощью HTTP и REST API. Существует множество клиентских библиотек, использующих разные языки. Кроме этого, обращаться к данным можно и с помощью web-приложений, выполняемых в браузере.

Преимущества и недостатки CouchDB

Очевидно, что система обладает большинством преимуществ, присущих всем NoSQL системам управления базами данных, не использующих реляционную модель. К примеру, не нужно заранее проектировать и структурировать таблицы, а вместо этого можно хранить любые данные в формате JSON. Метаданные каждого документа содержат значения, указывающие на версию — таким образом всегда понятно, какой документ новее, в случае, если базы были разъединены.

СУБД максимально проста в установке, настройке и запуске. На официальном сайте представленные версии для Windows, macOS, Пакеты Debian/Ubuntu/RHEL/CentOS, а также исходники. Система бесплатна, что всегда является плюсом, как минимум для изучения и оценки производительности в своих проектах — лучше один раз попробовать, чем сто раз прочитать.

Одним из основных направлений, где используется CouchDB, являются мобильные и web-приложения. Это неудивительно, так как она и задумывалась для работы в интернет-сегменте. Есть преобразование документов «на лету» и оповещения в реальном времени об изменениях — это сильно упрощает web-разработку.

Надежность реализована за счет соответствия принципам Atomic Consistent Isolated Durable (ACID) — зафиксированные данные или связанные структуры никогда не перезаписываются, — а также механизмом репликации. Любой сервер хранит собственный блок локальных данных, которые можно использовать офлайн, и периодически, при необходимости синхронизировать с остальными серверами. Эту особенность часто используют для переноса настроек между несколькими экземплярами программного обеспечения.

Система непрерывно обновляется, а значит в распоряжении пользователя всегда будут актуальные инструменты, позволяющие работать с современным ПО и оборудованием с максимальной эффективностью. В целом, обозреваемая СУБД, как и остальные документоориентированные СУБД, хорошо подходит для определенных задач, где требуется хранение и анализ слабоструктурированных данных, и может предложить хорошую скорость и надежность.

Короткая ссылка