Tob*_*non 2 database amazon-web-services amazon-dynamodb aws-lambda
我知道不推荐扫描 DynamoDB,这是不好的做法。
假设我有一个食品订购网站,我想对所有用户进行每日扫描,以找出上周谁没有订购食品,以便我可以向他们发送电子邮件(仅举个例子)。
这将对数据库提出一些非常高的需求,尤其是对于庞大的用户群。
是否有我缺少的这些计划扫描的替代方法?或者在这种情况下扫描是工作的最佳工具?
这个问题有很多不同的可能答案。通常,所有这一切都始于一个简单的事实,即执行此类操作的最佳方式取决于实际细节以及您尝试优化的内容(成本、延迟、持续时间等)。
由于这似乎是“每周一次”的事情,我猜延迟和“工作”持续时间在优先级列表中并不高,但成本可能很高。
下一个要考虑的重要事情是实现的复杂性。例如:如果您的服务只有 100 个用户,我不会理会任何更复杂的解决方案,只需进行扫描即可。但如果您的服务拥有数百万用户,这可能不再是一个好主意。
出于这个答案的目的,我将假设您的用户群已经变得太大而无法进行扫描。在这种情况下,我可以想到两种可能的解决方案:
第一个应该是不言自明的。正如 DynamoDB 文章中经常描述的那样,您应该定义“访问模式”并围绕它们构建索引。这里的优点是您仍在 DynamoDB 中操作,缺点是增加了成本。
我的首选解决方案可能只是将表的计划备份到 S3,然后在其他地方处理备份。可能是您编写的自定义工具或某些允许处理大量数据的 AWS 服务。这可能是最便宜的解决方案,但处理时间可能不会“超快”。
我期待着这个有趣问题的其他解决方案。
归档时间: |
|
查看次数: |
181 次 |
最近记录: |