我们平台的用户将在我们的系统上存储大量数据。通过应用程序,一旦连接,这些数据将被传输给他们,不再需要保留在我们的服务器上。在任何给定时间都可能有成百上千的用户连接,执行他们的下载。
这是建议的架构:
用户管理、配置和数据下载统计信息将保存在 SQL Server 数据库中,同时使用 Redis 或 DynamoDB 处理大型数据集。
选择 Redis 或 DynamoDB 的原因是基于成本(比运行另一个 SQL Server 实例便宜)和性能。数据格式将类似于数据集市 - 没有连接的平面表。
最初,查询很简单——获取用户 X 在日期范围内的所有数据,并可选择删除。
由于我们可能希望使用弹性搜索添加自由文本搜索该数据的某些字段,因此从一开始就使用它可能是一个更好的选择。
我希望这是自动缩放的,但不确定哪个数据库最适合这种情况。