В целом у меня сложилось впечатление, что вы рассматриваете возможность создания приложения для отчетов, ориентированного на строки и столбцы.В целом, RavenDB, вероятно, не является подходящей технологией для такого применения, но ваш пробег может варьироваться.
1.Может ли RavenDB обрабатывать несколько миллионов записей в нескольких таблицах, которые связаны между собой (объединениями) с разумным временем запроса?
Да на миллионах записей.Всегда проверяйте, чтобы быть уверенным, и рассмотрите возможность масштабирования, то есть разделения, на несколько экземпляров, чтобы распределить нагрузку вокруг.
Нет в понятии «связанные таблицы и объединения».Это не то, как работает RavenDB (а вы этого не хотите).Узнайте, почему это так, в разделе RavenDB Mythology , посвященном базам данных документов Grokking.Однако, основываясь на вашем описании, вы, вероятно, можете делать то, что хотите.Вы захотите познакомиться с тем, как RavenDB выполняет индексацию.
2.Система будет создавать несколько тысяч записей в день. Несколько таблиц. Должен быть способ массового перемещения старых записей в этих таблицах в резервные таблицы (лучше всего использовать другой файл данных), чтобы количество строк ограничивалось.на этих ключевых таблицах.Таким образом, эта база данных поддерживает операции массового перемещения данных?
Возможно, нет необходимости перемещать старые записи.Возможно, оставьте их там, где они есть, и напишите новые в другом месте.При желании вы можете воспользоваться шардингом в Raven для разделения ваших данных на сегменты в зависимости от времени.Если вам больше не нужны более старые данные, удалите осколок, в котором они содержатся (переместите их в свою «резервную базу данных»).
Вы также можете воспользоваться репликацией индекса и перенести результаты индекса в другое хранилище.и Expiration Bundle для автоматического удаления старых документов.
3.Может ли эта база данных использовать преимущества многопроцессорного сервера?
Да.
4.Какие варианты восстановления данных он предоставляет (можно ли выполнять горячее резервное копирование)?
Да, он основан на Esent и наследует свою способность выполнять горячее резервное копирование.
5.Если что-то пойдет не так, есть ли способ переключиться на другую систему баз данных, не записывая весь слой данных с нуля (например, если мы используем MySQL, мы могли бы переключиться на оракул без особых хлопот с NHibernate)?
Если это другая база данных документов, возможно.Но смотри пункт номер один выше.Вам будет очень трудно воспринимать документ и реляционную базу данных как технологии с немедленной заменой.Если вы поднимаетесь на уровень абстракции, настойчивость - это настойчивость, но я думаю, что если вы сформулируете этот вопрос, ответ будет «нет».