Jump to content

RavenDB

RavenDB
Оригинальный автор(ы) Орен Эйни (он же Айенде Рахиен)
Разработчик(и) Спящие носороги [ 1 ]
Первоначальный выпуск 2010 г .; 14 лет назад ( 2010 ) [ 2 ]
Стабильная версия
5.3 / ноябрь 2021 г .; 2 года назад ( 2021-11 ) [ 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 ]

  1. ^ Перейти обратно: а б с «Другие поставщики операционных СУБД, заслуживающие внимания» . www.gartner.com . 2018 . Проверено 10 октября 2020 г.
  2. ^ Перейти обратно: а б «RavenDB работает!» . ayende.com . 2010 . Проверено 10 октября 2020 г.
  3. ^ Перейти обратно: а б «Вышла RavenDB 4.2!» . ayende.com . 2019 . Проверено 10 октября 2020 г.
  4. ^ Перейти обратно: а б с «RavenDB: управление DX посредством управления инфраструктурой БД» . ciostory.com . Архивировано из оригинала 11 октября 2020 года . Проверено 10 октября 2020 г.
  5. ^ Перейти обратно: а б «NoSQL: RavenDB 4.0 теперь доступен для Windows, Linux, macOS и Docker» . www.heise.de . 2018 . Проверено 10 октября 2020 г.
  6. ^ Перейти обратно: а б с д и ж г час я дж к л м н «РавенДБ» . База данных баз данных . Проверено 10 октября 2020 г. [ постоянная мертвая ссылка ]
  7. ^ Перейти обратно: а б с д и «Raven, база данных документов для .NET» . www.infoq.com . 2010 . Проверено 10 октября 2020 г.
  8. ^ Перейти обратно: а б с д и ж г «Свойства системы RavenDB» . db-engines.com . Проверено 10 октября 2020 г.
  9. ^ «Спящие носороги» . hibernatingrhinos.com . Проверено 10 октября 2020 г.
  10. ^ Перейти обратно: а б с Каур, Харприт и Камаль Джит Каур. «Обзор: исследование документно-ориентированных баз данных и их безопасности». Международный журнал перспективных исследований в области компьютерных наук 4.8 (2013).
  11. ^ Уоллен, Джек (6 января 2021 г.). «Как создать новую базу данных с помощью RavenDB» . Техреспублика . Проверено 22 ноября 2022 г.
  12. ^ Перейти обратно: а б с «DivanDB от Ayende (также является ли ESENT наиболее широко используемым механизмом базы данных?)» . blogs.msdn.microsoft.com . 2008 год . Проверено 10 октября 2020 г.
  13. ^ Перейти обратно: а б «Скрытые жемчужины Windows: расширяемый механизм хранения» . ayende.com . 2008 год . Проверено 10 октября 2020 г.
  14. ^ «Интервью с Ореном Эйни из RavenDB об управлении базами данных, аналитике и безопасности» . bigdata-madesimple.com . 2019. Архивировано из оригинала 8 октября 2020 года . Проверено 10 октября 2020 г.
  15. ^ «Разработка RavenDB: наконец-то надежная база данных на основе документов для Windows?» . www.whoishostingthis.com . 2019. Архивировано из оригинала 8 октября 2020 года . Проверено 10 октября 2020 г.
  16. ^ Перейти обратно: а б «База данных документов NoSQL — внедрение RavenDB в приложение ASP.NET MVC 3» . docs.microsoft.com . 2011 . Проверено 10 октября 2020 г.
  17. ^ Перейти обратно: а б «Почему Raven DB?» . dzone.com . 2010 . Проверено 10 октября 2020 г.
  18. ^ Перейти обратно: а б «RavenDB против SQL-сервера» . www.integrace.nl (на голландском языке) . Проверено 10 октября 2020 г.
  19. ^ Перейти обратно: а б с д и «RavenDB запускает управляемый облачный сервис» . www.datanami.com . 2019 . Проверено 10 октября 2020 г.
  20. ^ Перейти обратно: а б «Дайджест новостей SD Times: синтаксический анализатор Google robots.text с открытым исходным кодом, облачные возможности Bonitasoft и возможности low-code, а также OWASP ZAP 2.8» . sdtimes.com . 2019 . Проверено 10 октября 2020 г.
  21. ^ Перейти обратно: а б «RavenDB добавляет новые улучшения в свою облачную службу баз данных» . it.toolbox.com . 2019 . Проверено 10 октября 2020 г.
  22. ^ «RavenDB 2.0 RTM» . ayende.com . 2013 . Проверено 10 октября 2020 г.
  23. ^ Перейти обратно: а б с д и ж г «RavenDB: база данных документов для платформы .NET» . Learning.oreilly.com . Проверено 10 октября 2020 г. [ постоянная мертвая ссылка ]
  24. ^ Перейти обратно: а б с д и ж г «RavenDB: база данных документов для платформы .NET» . Learning.oreilly.com . Архивировано из оригинала 2 ноября 2020 года . Проверено 10 октября 2020 г.
  25. ^ «Вышел выпуск-кандидат RavenDB 2.5» . ayende.com . 2013 . Проверено 10 октября 2020 г.
  26. ^ «RavenDB 3.0 RTM!» . ayende.com . 2014 . Проверено 10 октября 2020 г.
  27. ^ Перейти обратно: а б «NoSQL для .NET: RavenDB 3.0 взлетает» . www.visualstudiomagazine.com . 2014 . Проверено 10 октября 2020 г.
  28. ^ Перейти обратно: а б «NoSQL: RavenDB 3.0 получает еще один механизм хранения» . www.heise.de . Проверено 10 октября 2020 г.
  29. ^ Перейти обратно: а б «Выпущена RavenDB 3.5 RTM» . ayende.com . 2016 . Проверено 10 октября 2020 г.
  30. ^ «Вышла RavenDB 4.0» . ayende.com . 2018 . Проверено 10 октября 2020 г.
  31. ^ Перейти обратно: а б «Вышел выпуск-кандидат RavenDB 4.1» . ayende.com . 2018 . Проверено 10 октября 2020 г.
  32. ^ «Выпущена RavenDB 5.0!» . ravendb.net . 24 июля 2020 г. Проверено 10 октября 2020 г.
  33. ^ Перейти обратно: а б «RavenDB добавляет поддержку запросов временных рядов» . i-programmer.info . 16 июля 2020 г. Проверено 10 октября 2020 г.
  34. ^ Перейти обратно: а б «RavenDB 5 улучшает распределенные временные ряды, сжатие документов и индексирование» . infoq.com . 3 августа 2020 г. Проверено 10 октября 2020 г.
  35. ^ Перейти обратно: а б с «База данных NoSQL с открытым исходным кодом | История RavenDB» . База данных NoSQL RavenDB .
  36. ^ «Функции RavenDB 5.1: поиск в документах Office» . База данных NoSQL RavenDB .
  37. ^ «Фильтрованная репликация | База данных NoSQL | RavenDB NoSQL» . NoSQL-база данных RavenDB .
  38. ^ «OLTP против баз данных OLAP: проблемы ETL» . Датавейл . 21 мая 2020 г.
  39. ^ «Документация по базам данных NoSQL» . База данных NoSQL RavenDB .
  40. ^ «Новые возможности RavenDB 5.3: одновременные подписки» . Айенде @ Рахиен .
  41. ^ «Функции RavenDB 5.3: интеграция с Power BI» . Айенде @ Рахиен .
  42. ^ Перейти обратно: а б «База данных документов для платформы .NET» . Learning.oreilly.com . Архивировано из оригинала 2 ноября 2020 года . Проверено 10 октября 2020 г.
  43. ^ «Дизайн RavenDB 4.0: последствия формата Blittable» . dzone.com . 2016 . Проверено 10 октября 2020 г.
  44. ^ «Обзор: база данных NoSQL RavenDB» . techgenix.com . 2019 . Проверено 10 октября 2020 г.
  45. ^ Перейти обратно: а б «RavenDB добавляет запросы к графам» . www.datanami.com . 2019 . Проверено 10 октября 2020 г.
  46. ^ Перейти обратно: а б «Дайджест новостей SD Times: New Relic One, WhiteSource for Developers, RavenDB4.2 и приобретение Bitnami компанией VMware» . sdtimes.com . 2019 . Проверено 10 октября 2020 г.
  47. ^ «Функции RavenDB» . ravendb.net . Проверено 10 октября 2020 г.
  48. ^ «Моделирование данных с помощью индексов в RavenDB» . www.codeproject.com . 2019 . Проверено 10 октября 2020 г.
  49. ^ Стевич, Милорад П. «Управление документами с помощью NoSQL в сервис-ориентированной архитектуре». Интернет-журнал управления прикладными знаниями ( OJAKM ) 1.2 (2013): 105-115.
  50. ^ «Точки данных – что, черт возьми, такое базы данных документов?» . docs.microsoft.com . 2011 . Проверено 10 октября 2020 г.
  51. ^ «Сервер: запуск встроенного экземпляра» . Ravendb.net . Проверено 25 апреля 2022 г.
  52. ^ Таннир, Халед (4 сентября 2013 г.). Руководство для начинающих RavenDB 2.x. Packt Publishing Ltd. ISBN  978-1-78328-380-4 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d1e9a56c8864355e8bf66f3c4c9f1589__1706711100
URL1:https://arc.ask3.ru/arc/aa/d1/89/d1e9a56c8864355e8bf66f3c4c9f1589.html
Заголовок, (Title) документа по адресу, URL1:
RavenDB - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)