Последний выпуск RavenDB добавляет возможность запрашивать и индексировать данные временных рядов, а также другие улучшения, включая возможность планировать периодические обновления документов, настраивать сжатие базы данных и исправлять множество ошибок.
RavenDB — это база данных без схемы, без схемы, которая поддерживает транзакции ACID, поддерживает сегментирование, репликацию и мультитенантность. Он поставляется с клиентами для C #, Java, NodeJS, Python, Ruby и Go.
Он написан на .NET Core и начал свою жизнь с поддержки среды .NET, но с тех пор расширил свои возможности. Он доступен в облаках AWS и Azure. Существует несколько способов создания запросов в RavenDB, включая SQL-подобный язык под названием RQL (RavenDB Query Language); метод запроса с поддержкой LINQ и API, использующий RQL, DocumentQuery.
Улучшения в новом выпуске начинаются с поддержки запросов и индексации данных временных рядов, прикрепленных к документам. Данные временных рядов в RavenDB хранятся отдельно с внутренней ссылкой на связанный документ. Чтобы включить запросы, RavenDB 5.0 имеет новый синтаксис запросов диапазона дат, который может использовать связанные данные.
Еще одно улучшение RavenDB 5.0 — поддержка периодического обновления документов. Вы можете запланировать это для документов, которые используют специальное свойство метаданных @refresh. RavenDB проверяет заданный интервал для любых документов, содержащих тег метаданных @refresh, и, если дата обновления прошла, он удалит тег, который вызовет переиндексацию документа, а также любые текущие задачи, такие как ETL, подписки или репликация.
Сжатие документов также было улучшено, и появился новый балансировщик нагрузки, который можно использовать для настройки поведения балансировки нагрузки при чтении и записи. Среди других улучшений — возможность добавлять собственные сортировщики в IDE RavenDB Studio; и обновленный движок языка JavaScript, что означает, что индексы JavaScript могут использовать преимущества более выразительных языковых функций ES2016, таких как распространение, деструктуризация и стрелочные функции.