BPM

17 000 руб On-Prem

Low-code BPM

для комплексной автоматизации

Корпоративный портал

от 500 000 руб.

Российское решение

аналог Microsoft Sharepoint

ВКС

Стоимость по запросу

Тариф IVA MCU

Kubernetes

от руб.

СЭД

от руб.

Операционные системы

5 280 руб.

BaseALT Альт Рабочая станция 10

архитектура 64 бит

IaaS

от 490руб./мес

VMware / ПО РФ

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

  • Корпоративный портал

    от 500 000 руб.

    Российское решение

    аналог Microsoft Sharepoint

  • ВКС

    Стоимость по запросу

    Тариф IVA MCU

  • Kubernetes

    от руб.

  • СЭД

    от руб.

  • Операционные системы

    5 280 руб.

    BaseALT Альт Рабочая станция 10

    архитектура 64 бит

  • IaaS

    от 490руб./мес

    VMware / ПО РФ

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

  • IaaS

    По запросу

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

    Dedicated, SaaS/PaaS

  • Low-code

    от 833 руб.

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

    с ELMA365

  • СЭД

    от руб.

IaaS

По запросу

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

Dedicated, SaaS/PaaS

Low-code

от 833 руб.

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

с ELMA365

СЭД

от руб.

Kubernetes

от 5.51 руб/час

Kubernetes as a Service

Отказоустойчивые кластеры, быстрый запуск, удобное управление

IaaS

По запросу

ФЗ-187, КЗ-1 ФЗ-152

УЗ-1, ГОСТ 57580.1

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

Стоимость по запросу

Тариф IVA One

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) — зафиксированные данные или связанные структуры никогда не перезаписываются, — а также механизмом репликации. Любой сервер хранит собственный блок локальных данных, которые можно использовать офлайн, и периодически, при необходимости синхронизировать с остальными серверами. Эту особенность часто используют для переноса настроек между несколькими экземплярами программного обеспечения.

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

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