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



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

我正在考虑使过程异步,并在该线程上进行另一个机器工作:查询该数据,将其放入AWS DynamoDB,然后通知用户。

数据在大多数情况下是平坦的(只有行和列)。通常,创纪录的大小在100秒,有时为1000秒,在10,000秒内范围很少。

这是个好主意吗?表演会是什么样?

经典体系结构答案:"它取决于"

  1. 如果您的长期运行查询位于其他Dynamo表上,则将结果存储在Dynamo中是有道理的。(您已经使用的熟悉技术)。

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

  3. 或保持简单,只需将结果写入S3中的文件(JSON,XML,CSV,无论如何...)?

类似于@scrappydog所述的内容。您可以混合DynamoDB和S3。

  1. DynamoDB将存储查询元数据 - 喜欢用户ID和S3文件名
  2. S3将存储实际查询结果

这将使您可以使用DynamoDB将所有移动的零件绑在一起。还可以使大量写入DynamoDB以保持成本降低。

相关内容

最新更新