Я новичок в мире NoSQL и думаю о замене моей базы данных MS Sql Server на MongoDB. Мое приложение (написанное на .Net С#) взаимодействует с IP-камерами и записывает метаданные для каждого изображения, поступающего из камеры, в базу данных MS SQL. В среднем, я вставляю около 86400 записей в день для каждой камеры и в текущей схеме базы данных. Я создал отдельную таблицу для отдельных изображений камеры, например. Camera_1_Images, Camera_2_Images... Camera_N_Images. Запись одиночного изображения состоит из простой информации метаданных. как AutoId, FilePath, CreationDate. Чтобы добавить более подробную информацию, мое приложение инициирует отдельный процесс (.exe) для каждой камеры, и каждый процесс вставляет 1 запись в секунду в относительную таблицу в базе данных.
Мне нужны предложения от (MongoDB) экспертов по следующим проблемам:
-
чтобы указать, хорош ли MongoDB для хранения таких данных, которые в конечном итоге будут запрашиваться в отношении временных диапазонов (например, получить все изображения конкретной камеры в течение определенного часа)? Любые предложения по дизайну схемы на основе документов для моего случая?
-
Какими должны быть спецификации сервера (CPU, RAM, Disk)? любое предложение?
-
Должен ли я рассматривать Sharding/Replication для этого сценария (учитывая производительность в письменной форме для синхронизации наборов реплик)?
-
Есть ли преимущества использования нескольких баз данных на одном компьютере, так что одна база данных будет содержать изображения текущего дня для всех камер, а вторая будет использоваться для архивации изображений предыдущего дня? Я думаю об этом в отношении разделения чтения и записи на отдельные базы данных. Поскольку все запросы на чтение могут обслуживаться второй базой данных и записываются в первую. Будет ли это выгодно или нет? Если да, то любая идея обеспечить постоянную синхронизацию обеих баз данных.
Любые другие предложения приветствуются.