私たちのプラットフォームのユーザーは、システムに大量のデータを保存しています。アプリケーションを介して接続すると、そのデータが転送され、サーバーに残る必要がなくなります。いつでも数百または数千のユーザーが接続し、ダウンロードを実行している可能性があります。
提案されたアーキテクチャは次のとおりです。
ユーザー管理、構成、およびデータ ダウンロードの統計は、SQL Server データベースで維持されますが、大規模なデータ セットには Redis または DynamoDB を使用します。
Redis または DynamoDB を選択する理由は、コスト (別の SQL Server インスタンスを実行するよりも安価) とパフォーマンスに基づいています。データ形式は、データマート (結合のないフラット テーブル) に似ています。
最初のクエリは単純です。日付範囲内のユーザー X のすべてのデータを取得し、オプションで削除します。
そのデータの特定のフィールドに対してフリーテキスト検索を追加したい場合があるため、 elasticsearchを使用することは、最初から使用するより良いオプションである可能性があります。
これを自動スケーリングにしたいのですが、このシナリオにどのデータベースを使用するのが最適かわかりません。