暂时将报告数据存储到AWS DynamoDB上?这是一个可行的解决方案?

时间:2017-10-03 16:36:07

标签: amazon-web-services amazon-dynamodb reporting

我有一个Web应用程序,用户可以在其中运行数据报告。问题是由于我们正在使用的数据,查询速度很慢。

我正在考虑让流程异步并在该线程上运行另一台机器:查询该数据,将其放入AWS DynamoDB,然后通知用户。

大部分数据都是平的(只是行和列)。通常,记录大小将在100s左右,有时为1000s,很少在10,000s左右。

这是个好主意吗?表现如何?

2 个答案:

答案 0 :(得分:1)

经典架构回答:“这取决于”

  1. 如果长时间运行的查询在其他Dynamo表上,那么将结果存储在Dynamo中是有意义的。 (您已经使用的熟悉技术)。

  2. 如果您的查询是针对其他数据库运行的,那么为什么不将结果存储在该数据库中的新表中,或者存储在同一平台上的新专用数据库中呢?

  3. 或者保持简单,只需将结果写入S3中的文件(json,xml,csv,等等......)?

答案 1 :(得分:1)

与@Scrappydog提到的相似。你可以混合使用DynamoDB和S3。

  1. DynamoDB将存储查询元数据 - 如用户ID和S3文件名
  2. S3会将实际查询结果存储在文件中
  3. 这将允许您使用DynamoDB将所有移动的部分绑定在一起。还会保留DynamoDB的大量写入以降低成本。