我有一个Web应用程序,用户可以在其中运行数据报告。问题是由于我们正在使用的数据,查询速度很慢。
我正在考虑让流程异步并在该线程上运行另一台机器:查询该数据,将其放入AWS DynamoDB,然后通知用户。
大部分数据都是平的(只是行和列)。通常,记录大小将在100s左右,有时为1000s,很少在10,000s左右。
这是个好主意吗?表现如何?
答案 0 :(得分:1)
经典架构回答:“这取决于”
如果长时间运行的查询在其他Dynamo表上,那么将结果存储在Dynamo中是有意义的。 (您已经使用的熟悉技术)。
如果您的查询是针对其他数据库运行的,那么为什么不将结果存储在该数据库中的新表中,或者存储在同一平台上的新专用数据库中呢?
或者保持简单,只需将结果写入S3中的文件(json,xml,csv,等等......)?
答案 1 :(得分:1)
与@Scrappydog提到的相似。你可以混合使用DynamoDB和S3。
这将允许您使用DynamoDB将所有移动的部分绑定在一起。还会保留DynamoDB的大量写入以降低成本。