Я ищу портативное решение для базы данных, которое можно использовать с веб-сайтом, предназначенным для обслуживания сервисных сбоев. Мне нужно еженедельно получать список пользователей с сервера SQL и сохранять их данные в переносимой базе данных. Это примерно 250 000 пользователей (и их число растет), и у каждого, вероятно, есть 25 полей, которые необходимо заполнить. Я бы сказал, что из этих полей нужно искать менее 5. Остальные просто нуждаются в извлечении.
Идея заключается в том, что во время перерыва в обслуживании мы можем использовать веб-сайт, предназначенный для работы с переносимой базой данных, а не SQL Сервер. Наша долгосрочная цель состоит в том, чтобы перейти в облако и обращаться с вещами совершенно по-другому, но в краткосрочной перспективе это наша цель.
Веб-сайт будет. Net Core web api, поэтому к нему будут обращаться несколько пользователей в нескольких потоках. Веб-сайт будет нуждаться только в доступе для чтения, он не будет обновлять эти данные вообще.
Чтобы поддерживать портативную базу данных в актуальном состоянии, я думаю о том, чтобы иметь другое приложение, которое просто запускается ночью обновить данные. Наш бизнес длится 24 часа (хотя и тише в одночасье), поэтому существует вероятность того, что этот модуль обновления используется во время использования веб-сайта. Несмотря на то, что отключение службы предполагает, что сервер SQL не работает, это может быть не так. Есть и другие факторы, которые могут вызвать то, что мы бы назвали перебоями. Это будет единственное программное обеспечение, обновляющее базу данных.
Я пытался использовать LiteDB, но я не мог заставить его работать так, чтобы это соответствовало моим требованиям к параллелизму. Казалось, что он сделал часть работы, и его было легко запустить. Тем не менее, я часто сталкивался с заблокированными файлами из-за характера веб-API. Я разработал решение для этого, но тогда приложение для обновления не смогло получить доступ к файлу базы данных.
У кого-нибудь есть рекомендации, на которые я могу обратить внимание?