私は NoSQL の世界に不慣れで、MS Sql Server データベースを MongoDB に置き換えることを考えています。私のアプリケーション (.Net C# で記述) は IP カメラとやり取りし、カメラからの各画像のメタ データを MS SQL データベースに記録します。平均して、カメラごとに 1 日あたり約 86400 レコードを挿入しています。現在のデータベース スキーマでは、Camera_1_Images、Camera_2_Images ... Camera_N_Images など、個別のカメラ画像用に個別のテーブルを作成しました。単一の画像レコードは、単純なメタデータ情報で構成されます。AutoId、FilePath、CreationDate など。これにさらに詳細を追加するために、私のアプリケーションはカメラごとに個別のプロセス (.exe) を開始し、各プロセスはデータベースの相対テーブルに毎秒 1 レコードを挿入します。
次の懸念事項について、(MongoDB) の専門家からの提案が必要です。
MongoDB がそのようなデータを保持するのに適しているかどうかを判断するには、最終的には時間範囲に対してクエリを実行します (指定された時間の間に特定のカメラのすべての画像を取得するなど)。私の場合のドキュメントベースのスキーマ設計に関する提案はありますか?
サーバーのスペック (CPU、RAM、ディスク) を教えてください。なにか提案を?
このシナリオではシャーディング/レプリケーションを検討する必要がありますか (レプリカ セットを同期するための書き込みのパフォーマンスを考慮しながら)?
1 つのデータベースがすべてのカメラの当日の画像を保持し、2 つ目のデータベースが前日の画像のアーカイブに使用されるように、同じマシンで複数のデータベースを使用する利点はありますか? 別々のデータベースで読み取りと書き込みを分割することに関して、これについて考えています。すべての読み取り要求が 2 番目のデータベースによって処理され、最初のデータベースに書き込まれる可能性があるためです。利益になるかどうか?はいの場合、両方のデータベースが常に同期されるようにするためのアイデア。
他の提案は大歓迎です。