Эквирон - российская компания с большим опытом разработки высоконагруженных, сложных распределенных решений.
Документо-ориентированная, высокопроизводительная, распределённая NoSQL СУБД
СУБД «Енисей» от компании Эквирон — это документо-ориентированная, высокопроизводительная, распределённая NoSQL СУБД с поддержкой multi-master replication.
«Енисей» может служить распределенной коммуникационной инфраструктурой, отказоустойчивым файловым сервером или документным хранилищем с интегрированным поисковым индексом.
«Енисей» был спроектирован для применения в высоконагруженных системах реального времени и может хранить миллиарды документов, предоставляя широкий выбор инструментов для работы с такими объемами данных.
Отличительными особенностями СУБД «Енисей» являются:
Варианты использования СУБД «Енисей»:
Функциональная архитектура СУБД «Енисей»
«Енисей» как СУБД
В настоящее время документные хранилища всё более востребованы, поскольку в ряде случаев удобнее и эффективнее реляционной модели хранения. JSON давно стал стандартом в индустрии, ведь именно данный формат является основой RESTful API, которые активно используются в подавляющем большинстве информационных систем.
Безусловно, удобнее хранить ваши документы в нативном формате в специализированном хранилище, предоставляющем широкий набор инструментов для работы с данными в этом формате.
«Енисей» — это высокопроизводительная СУБД, предназначенная для применения в системах, ориентированных на высокую нагрузку. Время отклика «Енисей» не деградирует по мере роста размера БД, благодаря append-only режиму и особенностям реализации СУБД.
Визуализация данных
К REST API Енисей без проблем подключаются самые распространенные средства визуализации данных, такие как Tableau и PowerBI. Таким образом вы можете строить аналитические выборки на данных, что хранятся в Енисей.
Простота
Одним из немаловажных аргументов в пользу СУБД «Енисей» является простота начиная с процесса установки и настройки. Так как «Енисей» представляет собой документо-ориентированную СУБД, выполняющую строго данную функцию и связанные с ней задачи, её очень просто установить и настроить. Её настройки «из коробки» достаточны для подавляющего большинства проектов. Можно с уверенностью сказать, что 95% пользователей не будут менять настройки по умолчанию.
Не нужно знать SQL или другой язык взаимодействия с СУБД. Достаточно знать HTTP, а это всего несколько команд: GET, POST, PUT, DELETE, — вот собственно и все, что нужно знать и уметь, чтобы начать работу с СУБД «Енисей».
СУБД имеет RESTful-интерфейс, может быть интегрирована в вашу систему фактически без затрат, как любой другой сервис.
Для написания представлений (views) вы можете использовать JavaScript, входящий в тройку самых популярных языков программирования в мире. Представления необходимы вам для построения сложных выборок данных из БД и фильтров. И в них вы можете использовать любую логику, в рамках возможностей JavaScript. Далеко не каждая СУБД предоставляет такую возможность. Поддерживается CofeeScript, Erlang и Elixir.
В ряде случаев вы можете имплементировать логику работы с данными прямо в СУБД в виде представлений или приложений (design documents), которые вызываются посредством RESTful API, вы можете реализовать всю бизнес-логику или её существенную часть непосредственно в СУБД «Енисей».
Для того чтобы сделать разработку вашей системы с СУБД «Енисей» еще проще, в комплекте Енисей предоставляется фреймворк «Ангара». В нём реализован ODM (Object-Document Mapping). Инструмент крайне необходим для сокращения сроков разработки и упрощения разработки решений. «Ангара» предоставляет разработчику множество классов, которые можно использовать в своих проектах.
Репликация
«Енисей» реализует модель multi-master-репликации. Каждая нода БД является мастером, можно одновременно писать данные в неё и читать их. Вы можете реализовать достаточно сложные механики репликации данных между нодами, настраивая, какие документы должны реплицироваться, а какие — нет. Все очень гибко.
Благодаря тому, что СУБД «Енисей» разработана на языке Erlang, скорость репликации и надежность ее работы очень высоки. «Енисей» также обеспечивает решение конфликтов между версиями документов.
Для того чтобы решать конфликты версий в БД, используется механизм MVCC (Multi-Version Concurrency Control).
«Енисей» как сервер приложений
В СУБД «Енисей» есть такое понятие как «проектный документ», — приложение, описанное в JSON-документе.
Приложение может включать в себя несколько функций, в которых вы можете описать бизнес-логику обработки, фильтрации, представления и трансформации данных:
имени функции. Существует много ситуаций, в которых такой подход может сэкономить вам много времени и средств.
«Енисей» как интеграционная шина
Вы можете использовать «Енисей» как шину, через которую компоненты вашей инфраструктуры обмениваются данными. Компоненты и сервисы пишут данные в БД. Благодаря функциям листенеров обработчики внутри компонентов могут перехватывать необходимые документы и обрабатывать их.
Если использовать в качестве связующего звена «Енисей», сервисы вашей системы будут взаимодействовать через БД. Так как «Енисей» — это мульти-мастер СУБД, передача данных между сервисами будет обеспечена посредством репликации данных между нодами базы.
Благодаря многопоточности скорость репликации у СУБД «Енисей» намного выше, чем традиционное взаимодействие между компонентами и сервисами через RESTful API. Для разработчиков все те же привычные механизмы, но внутри мощь и скорость multimaster репликации.
Производительность
«Енисей» написан на языке программирования Erlang.
Erlang сам по себе предоставляет клиентам целый ряд уникальных возможностей. Ведь именно благодаря им, он широко применяется в настоящее время в высоконагруженных решениях.
Отличительной особенностью языка является применение легковесных процессов в соответствии с моделью акторов. Такой подход позволяет выполнять одновременно миллионы таких процессов, у каждого из которых могут быть скромные требования по памяти.
Erlang с самого начала проектировался для распределенных вычислений и масштабируемости. Распределение вычислений встроено в синтаксис и семантику языка, поэтому построение системы можно вести, абстрагируясь от конкретного места вычислений.
За счет встроенных возможностей распределенных вычислений объединение в кластер, балансировка нагрузки, добавление узлов и серверов, повышение надежности требуют лишь небольших затрат на дополнительный код.
В ядре СУБД «Енисей» находится мощный «движок», обеспечивающий репликацию данных между нодами в несколько потоков. Здесь и раскрывается мощь Erlang как языка, который был целенаправленно разработан для применения в распределённых, отказоустойчивых, параллельных системах реального времени и применяется в системах видеостриминга и коммуникационных проектах.
Благодаря Erlang «Енисей» является решением высокой доступности, пригодным для применения в системах реального времени.
Кроссплатформенность
Для СУБД «Енисей» подойдут несколько платформ:
Таким образом, с «Енисей» вы можете реализовать распределённые системы, объединяющие компоненты на разных ОС и платформах.
«Енисей» — это единственная СУБД с таким широким выбором платформ.
С СУБД «Енисей» можно быстро начать разработку в условиях нечетких требований, постепенно развивая функционал сервисов. База данных может хранить как старые, так и новые сообщения или документы.
Для прототипирования систем это уникальная возможность, серьезно сокращающая затраты.
«Енисей» может служить распределенной коммуникационной инфраструктурой, отказоустойчивым файловым сервером или документным хранилищем с интегрированным поисковым индексом.
«Енисей» был спроектирован для применения в высоконагруженных системах реального времени и может хранить миллиарды документов, предоставляя широкий выбор инструментов для работы с такими объемами данных.
Отличительными особенностями СУБД «Енисей» являются:
- простота в разработке и эксплуатации;
- высокая производительность;
- экономичность;
- кроссплатформенность.
Варианты использования СУБД «Енисей»:
- Поисковый индекс для документного хранилища. Многократно ускоряет процессы поиска документов и формирование ETL выгрузок из хранилища;
- Отказоустойчивое документное хранилище позволяет строить решения, способные хранить десятки миллиардов документов без деградации производительности;
- Мощный и отказоустойчивый файловый сервер;
- Распределенная коммуникационная инфраструктура для вашего решения;
- Хранение ГЕО-данных в соответствии с требованиями формата RFC 7946 GeoJSON;
- Часть проекта TrioData — технологического стека, на базе которого можно строить высоконагруженные решения для хранения и обработки
больших массивов данных. Импортозамещение Oracle.
Функциональная архитектура СУБД «Енисей»
«Енисей» как СУБД
В настоящее время документные хранилища всё более востребованы, поскольку в ряде случаев удобнее и эффективнее реляционной модели хранения. JSON давно стал стандартом в индустрии, ведь именно данный формат является основой RESTful API, которые активно используются в подавляющем большинстве информационных систем.
Безусловно, удобнее хранить ваши документы в нативном формате в специализированном хранилище, предоставляющем широкий набор инструментов для работы с данными в этом формате.
«Енисей» — это высокопроизводительная СУБД, предназначенная для применения в системах, ориентированных на высокую нагрузку. Время отклика «Енисей» не деградирует по мере роста размера БД, благодаря append-only режиму и особенностям реализации СУБД.
Визуализация данных
К REST API Енисей без проблем подключаются самые распространенные средства визуализации данных, такие как Tableau и PowerBI. Таким образом вы можете строить аналитические выборки на данных, что хранятся в Енисей.
Простота
Одним из немаловажных аргументов в пользу СУБД «Енисей» является простота начиная с процесса установки и настройки. Так как «Енисей» представляет собой документо-ориентированную СУБД, выполняющую строго данную функцию и связанные с ней задачи, её очень просто установить и настроить. Её настройки «из коробки» достаточны для подавляющего большинства проектов. Можно с уверенностью сказать, что 95% пользователей не будут менять настройки по умолчанию.
Не нужно знать SQL или другой язык взаимодействия с СУБД. Достаточно знать HTTP, а это всего несколько команд: GET, POST, PUT, DELETE, — вот собственно и все, что нужно знать и уметь, чтобы начать работу с СУБД «Енисей».
СУБД имеет RESTful-интерфейс, может быть интегрирована в вашу систему фактически без затрат, как любой другой сервис.
Для написания представлений (views) вы можете использовать JavaScript, входящий в тройку самых популярных языков программирования в мире. Представления необходимы вам для построения сложных выборок данных из БД и фильтров. И в них вы можете использовать любую логику, в рамках возможностей JavaScript. Далеко не каждая СУБД предоставляет такую возможность. Поддерживается CofeeScript, Erlang и Elixir.
В ряде случаев вы можете имплементировать логику работы с данными прямо в СУБД в виде представлений или приложений (design documents), которые вызываются посредством RESTful API, вы можете реализовать всю бизнес-логику или её существенную часть непосредственно в СУБД «Енисей».
Для того чтобы сделать разработку вашей системы с СУБД «Енисей» еще проще, в комплекте Енисей предоставляется фреймворк «Ангара». В нём реализован ODM (Object-Document Mapping). Инструмент крайне необходим для сокращения сроков разработки и упрощения разработки решений. «Ангара» предоставляет разработчику множество классов, которые можно использовать в своих проектах.
Репликация
«Енисей» реализует модель multi-master-репликации. Каждая нода БД является мастером, можно одновременно писать данные в неё и читать их. Вы можете реализовать достаточно сложные механики репликации данных между нодами, настраивая, какие документы должны реплицироваться, а какие — нет. Все очень гибко.
Благодаря тому, что СУБД «Енисей» разработана на языке Erlang, скорость репликации и надежность ее работы очень высоки. «Енисей» также обеспечивает решение конфликтов между версиями документов.
Для того чтобы решать конфликты версий в БД, используется механизм MVCC (Multi-Version Concurrency Control).
«Енисей» как сервер приложений
В СУБД «Енисей» есть такое понятие как «проектный документ», — приложение, описанное в JSON-документе.
Приложение может включать в себя несколько функций, в которых вы можете описать бизнес-логику обработки, фильтрации, представления и трансформации данных:
- Views — это представления, которые позволяют вам комбинировать данные из разных документов, применять к ним map и reduce функции, стандартные или написанные вами;
- Filters — логика фильтрации данных, при выборке из БД. Функции данного типа могут быть использованы в настройке репликации. Таким образом, вы можете строить сколь угодно сложные сценарии репликации данных между нодами БД;
- Updates — это функции, которые создают, или обновляют документы в БД;
- Validate — это функция валидатор данных. Если необходимо осуществить форматно-логический контроль документа перед его записью в БД, логика описывается в данной функции;
- Show — функции трансформации данных в другие форматы, функция может возвращать HTML-страницу, XML-документ или любой другой из Content-Types.
имени функции. Существует много ситуаций, в которых такой подход может сэкономить вам много времени и средств.
«Енисей» как интеграционная шина
Вы можете использовать «Енисей» как шину, через которую компоненты вашей инфраструктуры обмениваются данными. Компоненты и сервисы пишут данные в БД. Благодаря функциям листенеров обработчики внутри компонентов могут перехватывать необходимые документы и обрабатывать их.
Если использовать в качестве связующего звена «Енисей», сервисы вашей системы будут взаимодействовать через БД. Так как «Енисей» — это мульти-мастер СУБД, передача данных между сервисами будет обеспечена посредством репликации данных между нодами базы.
Благодаря многопоточности скорость репликации у СУБД «Енисей» намного выше, чем традиционное взаимодействие между компонентами и сервисами через RESTful API. Для разработчиков все те же привычные механизмы, но внутри мощь и скорость multimaster репликации.
Производительность
«Енисей» написан на языке программирования Erlang.
Erlang сам по себе предоставляет клиентам целый ряд уникальных возможностей. Ведь именно благодаря им, он широко применяется в настоящее время в высоконагруженных решениях.
Отличительной особенностью языка является применение легковесных процессов в соответствии с моделью акторов. Такой подход позволяет выполнять одновременно миллионы таких процессов, у каждого из которых могут быть скромные требования по памяти.
Erlang с самого начала проектировался для распределенных вычислений и масштабируемости. Распределение вычислений встроено в синтаксис и семантику языка, поэтому построение системы можно вести, абстрагируясь от конкретного места вычислений.
За счет встроенных возможностей распределенных вычислений объединение в кластер, балансировка нагрузки, добавление узлов и серверов, повышение надежности требуют лишь небольших затрат на дополнительный код.
В ядре СУБД «Енисей» находится мощный «движок», обеспечивающий репликацию данных между нодами в несколько потоков. Здесь и раскрывается мощь Erlang как языка, который был целенаправленно разработан для применения в распределённых, отказоустойчивых, параллельных системах реального времени и применяется в системах видеостриминга и коммуникационных проектах.
Благодаря Erlang «Енисей» является решением высокой доступности, пригодным для применения в системах реального времени.
Кроссплатформенность
Для СУБД «Енисей» подойдут несколько платформ:
- Linux ОС, включая основные российские;
- Windows;
- Android;
- ARM7;
- ARM8;
- Версия, написанная на JavaScript, работающая в браузере.
Таким образом, с «Енисей» вы можете реализовать распределённые системы, объединяющие компоненты на разных ОС и платформах.
«Енисей» — это единственная СУБД с таким широким выбором платформ.
С СУБД «Енисей» можно быстро начать разработку в условиях нечетких требований, постепенно развивая функционал сервисов. База данных может хранить как старые, так и новые сообщения или документы.
Для прототипирования систем это уникальная возможность, серьезно сокращающая затраты.