RavenDB
Оригинальный автор(ы) | Орен Эйни (он же Айенде Рахиен) |
---|---|
Разработчик(и) | Спящие носороги [ 1 ] |
Первоначальный выпуск | 2010 г [ 2 ] |
Стабильная версия | 5.3
/ ноябрь 2021 г [ 3 ] |
Репозиторий | |
Написано в | С# |
Двигатель | Voron |
Операционная система | Windows , Linux , Mac OS , Docker и Raspberry Pi [ 4 ] [ 5 ] |
Доступно в | Английский |
Тип | Документоориентированная база данных |
Лицензия | AGPLv3 |
Веб-сайт | Равендб спящие носороги |
RavenDB — это документально-ориентированная база данных с открытым исходным кодом, написанная на C# , разработанная Hibernating Rhinos Ltd. [ 6 ] [ 7 ] [ 8 ] [ 1 ] [ 9 ] [ 10 ] Он кроссплатформенный , поддерживается в Windows , Linux и Mac OS . [ 6 ] [ 11 ] RavenDB хранит данные в виде документов JSON и может быть развернут в распределенных кластерах с репликацией master-master.
История
[ редактировать ]Первоначальное название Rhino DivanDB . [ 6 ] [ 12 ] RavenDB зародился в 2008 году как проект Орена Эйни (он же Айенде Рахиен). [ 13 ] [ 14 ] и разработан Hibernation Rhinos Ltd. [ 1 ] Компания утверждает, что это была первая база данных документов, которая изначально работала в .NET Framework . [ 15 ] [ 16 ] [ 7 ] [ 17 ] Это была первая база данных документов, предлагающая гарантии ACID . [ 8 ] [ 17 ] [ 18 ]
В 2019 году Hibernation Rhinos начала предлагать RavenDB в виде облачного сервиса под названием RavenDB Cloud. [ 19 ] [ 20 ] [ 21 ]
История версий
[ редактировать ]Версия | Дата | Добавлены функции (неполный список) |
---|---|---|
1.0 | май 2010 г. [ 2 ] | |
2.0 | Январь 2013 г. [ 22 ] | Репликация [ 23 ] [ 24 ] |
2.5 | июнь 2013 г. [ 25 ] | Прогнозы; фасетный запрос [ 23 ] |
3.0 | ноябрь 2014 г. [ 26 ] | Java API ; накопитель Ворон [ 27 ] [ 28 ] |
3.5 | Октябрь 2016 г. [ 29 ] | Кластеризация [ 29 ] |
4.0 | февраль 2018 г. [ 30 ] | Стал кроссплатформенным; доступен с бесплатной лицензией [ 5 ] |
4.1 | август 2018 г. [ 31 ] | Транзакции в масштабе кластера [ 19 ] [ 31 ] |
4.2 | май 2019 г. [ 3 ] | Запрос графа [ 19 ] |
5.0 | июль 2020 г. [ 32 ] | Временной ряд ; [ 33 ] Сжатие данных с использованием алгоритма Zstd [ 34 ] |
5.1 | ноябрь 2020 г. [ 35 ] | Индексирование вложений; [ 36 ] Репликация Hub/Sink с фильтрацией [ 37 ] |
5.2 | июнь 2021 г. [ 35 ] | ОЛАП ETL; [ 38 ] Пользовательские анализаторы [ 39 ] |
5.3 | ноябрь 2021 г. [ 35 ] | Одновременные подписки на данные; [ 40 ] Microsoft Power BI Поддержка [ 41 ] |
- Красный : не поддерживается
- Зеленый : поддерживается
Архитектура системы
[ редактировать ]Данные хранятся в виде бессхемных документов в формате JSON . [ 6 ] [ 12 ] [ 7 ] [ 42 ] [ 23 ] [ 24 ] [ 10 ] Документы группируются в коллекции, причем каждый документ имеет ровно одну коллекцию. [ 23 ] [ 24 ] [ 43 ]
Базы данных можно развернуть в распределенном кластере серверов (называемом «узлами») с использованием репликации с несколькими хозяевами. [ 6 ] [ 8 ] Некоторые операции на уровне кластера требуют консенсуса большинства узлов; консенсус определяется с использованием реализации алгоритма Raft под названием Rachis. [ 6 ] Задачи распределяются между различными узлами сбалансированным образом. [ 6 ] [ 44 ]
Версии с 1.0 по 3.5 поддерживали сегментирование, а версии 4.x — нет. [ 6 ] [ 7 ] [ 8 ] [ 23 ] [ 24 ]
RavenDB изначально использовал механизм хранения ESENT . [ 12 ] [ 13 ] [ 24 ] Версия 3.0 заменила его новым механизмом хранения с открытым исходным кодом под названием Voron. [ 27 ] [ 28 ]
Поддерживаются клиенты для C# , C++ , Java , NodeJS , Python , Ruby и Go . [ 8 ]
Основные особенности
[ редактировать ]- в масштабе всего кластера ACID Транзакции . Транзакции ACID могут выполняться в пределах кластера (в дополнение к транзакциям с одним узлом). Транзакция будет сохранена только в том случае, если она подтверждена консенсусом узлов; если это не так, транзакция отменяется и откатывается. [ 6 ] [ 19 ]
- Распределенные счетчики [ 45 ] [ 46 ]
Индексы и запросы
[ редактировать ]Запросы выражаются в LINQ или с помощью специального языка запросов под названием RQL (расшифровывается как Raven Query Language) с синтаксисом, аналогичным SQL . [ 6 ] [ 7 ] [ 8 ]
- Динамические индексы . В RavenDB запросы могут выполняться только с помощью индекса; если соответствующий индекс не существует, создается новый индекс для удовлетворения запроса. [ 6 ] [ 16 ] [ 4 ] [ 23 ] [ 24 ] [ 10 ]
- Запрос к графу — связанные документы можно рассматривать как вершины графа, а соединения — как ребра. Это позволяет создавать рекурсивные запросы. [ 45 ] [ 46 ] [ 47 ]
- Проекция — индексы можно настроить для преобразования индексированных данных, выполнения вычислений, агрегирования и выполнения кода JavaScript на стороне сервера. [ 6 ] [ 8 ] [ 48 ]
- Полнотекстовый поиск — на низком уровне данные индексируются с помощью Lucene.net , что означает, что индексы поддерживают полнотекстовый поиск. [ 6 ] [ 18 ] [ 23 ] [ 24 ] [ 49 ] [ 50 ]
Расширения документа
[ редактировать ]Документы могут быть расширены за счет других типов данных, менее подходящих для JSON. Эти расширения можно загружать, изменять и хранить независимо от самого документа. [ 42 ]
- Вложения . Документы могут иметь несколько вложений любого типа данных, например изображения, аудио или чисто двоичные файлы. [ 4 ]
- Временной ряд — числовые данные, связанные с конкретным временем и упорядоченные в хронологическом порядке. [ 34 ] [ 33 ]
Облако RavenDB
[ редактировать ]RavenDB Cloud — это управляемая база данных как услуга, запущенная в 2019 году на AWS , Azure и GCP . Служба выполняет задачи администрирования, такие как обслуживание оборудования и безопасность пользователей. Он обеспечивает совместное использование ресурсов ЦП между различными узлами кластера во избежание регулирования. [ 19 ] [ 20 ] [ 21 ]
Встроенный экземпляр
[ редактировать ]RavenDB также можно запускать как встроенный экземпляр, что является отличным вариантом, например, для небольших приложений и проверки концепции.
Со своего сервера: запуск встроенного экземпляра [ 51 ] страница: «RavenDB позволяет очень легко встроиться в ваше приложение. С помощью пакета RavenDB Embedded вы можете интегрировать свой сервер RavenDB, выполнив несколько простых шагов».
Лицензирование
[ редактировать ]RavenDB имеет открытый исходный код под лицензией AGPLv3 . [ 6 ] Он доступен с коммерческой лицензией и бесплатной лицензией для проектов с открытым исходным кодом, но на него необходимо подать заявку. [ 52 ]
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с «Другие поставщики операционных СУБД, заслуживающие внимания» . www.gartner.com . 2018 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «RavenDB работает!» . ayende.com . 2010 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «Вышла RavenDB 4.2!» . ayende.com . 2019 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б с «RavenDB: управление DX посредством управления инфраструктурой БД» . ciostory.com . Архивировано из оригинала 11 октября 2020 года . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «NoSQL: RavenDB 4.0 теперь доступен для Windows, Linux, macOS и Docker» . www.heise.de . 2018 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б с д и ж г час я дж к л м н «РавенДБ» . База данных баз данных . Проверено 10 октября 2020 г. [ постоянная мертвая ссылка ]
- ^ Перейти обратно: а б с д и «Raven, база данных документов для .NET» . www.infoq.com . 2010 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б с д и ж г «Свойства системы RavenDB» . db-engines.com . Проверено 10 октября 2020 г.
- ^ «Спящие носороги» . hibernatingrhinos.com . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б с Каур, Харприт и Камаль Джит Каур. «Обзор: исследование документно-ориентированных баз данных и их безопасности». Международный журнал перспективных исследований в области компьютерных наук 4.8 (2013).
- ^ Уоллен, Джек (6 января 2021 г.). «Как создать новую базу данных с помощью RavenDB» . Техреспублика . Проверено 22 ноября 2022 г.
- ^ Перейти обратно: а б с «DivanDB от Ayende (также является ли ESENT наиболее широко используемым механизмом базы данных?)» . blogs.msdn.microsoft.com . 2008 год . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «Скрытые жемчужины Windows: расширяемый механизм хранения» . ayende.com . 2008 год . Проверено 10 октября 2020 г.
- ^ «Интервью с Ореном Эйни из RavenDB об управлении базами данных, аналитике и безопасности» . bigdata-madesimple.com . 2019. Архивировано из оригинала 8 октября 2020 года . Проверено 10 октября 2020 г.
- ^ «Разработка RavenDB: наконец-то надежная база данных на основе документов для Windows?» . www.whoishostingthis.com . 2019. Архивировано из оригинала 8 октября 2020 года . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «База данных документов NoSQL — внедрение RavenDB в приложение ASP.NET MVC 3» . docs.microsoft.com . 2011 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «Почему Raven DB?» . dzone.com . 2010 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «RavenDB против SQL-сервера» . www.integrace.nl (на голландском языке) . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б с д и «RavenDB запускает управляемый облачный сервис» . www.datanami.com . 2019 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «Дайджест новостей SD Times: синтаксический анализатор Google robots.text с открытым исходным кодом, облачные возможности Bonitasoft и возможности low-code, а также OWASP ZAP 2.8» . sdtimes.com . 2019 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «RavenDB добавляет новые улучшения в свою облачную службу баз данных» . it.toolbox.com . 2019 . Проверено 10 октября 2020 г.
- ^ «RavenDB 2.0 RTM» . ayende.com . 2013 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б с д и ж г «RavenDB: база данных документов для платформы .NET» . Learning.oreilly.com . Проверено 10 октября 2020 г. [ постоянная мертвая ссылка ]
- ^ Перейти обратно: а б с д и ж г «RavenDB: база данных документов для платформы .NET» . Learning.oreilly.com . Архивировано из оригинала 2 ноября 2020 года . Проверено 10 октября 2020 г.
- ^ «Вышел выпуск-кандидат RavenDB 2.5» . ayende.com . 2013 . Проверено 10 октября 2020 г.
- ^ «RavenDB 3.0 RTM!» . ayende.com . 2014 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «NoSQL для .NET: RavenDB 3.0 взлетает» . www.visualstudiomagazine.com . 2014 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «NoSQL: RavenDB 3.0 получает еще один механизм хранения» . www.heise.de . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «Выпущена RavenDB 3.5 RTM» . ayende.com . 2016 . Проверено 10 октября 2020 г.
- ^ «Вышла RavenDB 4.0» . ayende.com . 2018 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «Вышел выпуск-кандидат RavenDB 4.1» . ayende.com . 2018 . Проверено 10 октября 2020 г.
- ^ «Выпущена RavenDB 5.0!» . ravendb.net . 24 июля 2020 г. Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «RavenDB добавляет поддержку запросов временных рядов» . i-programmer.info . 16 июля 2020 г. Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «RavenDB 5 улучшает распределенные временные ряды, сжатие документов и индексирование» . infoq.com . 3 августа 2020 г. Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б с «База данных NoSQL с открытым исходным кодом | История RavenDB» . База данных NoSQL RavenDB .
- ^ «Функции RavenDB 5.1: поиск в документах Office» . База данных NoSQL RavenDB .
- ^ «Фильтрованная репликация | База данных NoSQL | RavenDB NoSQL» . NoSQL-база данных RavenDB .
- ^ «OLTP против баз данных OLAP: проблемы ETL» . Датавейл . 21 мая 2020 г.
- ^ «Документация по базам данных NoSQL» . База данных NoSQL RavenDB .
- ^ «Новые возможности RavenDB 5.3: одновременные подписки» . Айенде @ Рахиен .
- ^ «Функции RavenDB 5.3: интеграция с Power BI» . Айенде @ Рахиен .
- ^ Перейти обратно: а б «База данных документов для платформы .NET» . Learning.oreilly.com . Архивировано из оригинала 2 ноября 2020 года . Проверено 10 октября 2020 г.
- ^ «Дизайн RavenDB 4.0: последствия формата Blittable» . dzone.com . 2016 . Проверено 10 октября 2020 г.
- ^ «Обзор: база данных NoSQL RavenDB» . techgenix.com . 2019 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «RavenDB добавляет запросы к графам» . www.datanami.com . 2019 . Проверено 10 октября 2020 г.
- ^ Перейти обратно: а б «Дайджест новостей SD Times: New Relic One, WhiteSource for Developers, RavenDB4.2 и приобретение Bitnami компанией VMware» . sdtimes.com . 2019 . Проверено 10 октября 2020 г.
- ^ «Функции RavenDB» . ravendb.net . Проверено 10 октября 2020 г.
- ^ «Моделирование данных с помощью индексов в RavenDB» . www.codeproject.com . 2019 . Проверено 10 октября 2020 г.
- ^ Стевич, Милорад П. «Управление документами с помощью NoSQL в сервис-ориентированной архитектуре». Интернет-журнал управления прикладными знаниями ( OJAKM ) 1.2 (2013): 105-115.
- ^ «Точки данных – что, черт возьми, такое базы данных документов?» . docs.microsoft.com . 2011 . Проверено 10 октября 2020 г.
- ^ «Сервер: запуск встроенного экземпляра» . Ravendb.net . Проверено 25 апреля 2022 г.
- ^ Таннир, Халед (4 сентября 2013 г.). Руководство для начинающих RavenDB 2.x. Packt Publishing Ltd. ISBN 978-1-78328-380-4 .