首页 > 解决方案 > 使用 DynamoDB Stream 的新数据聚合

问题描述

我们有标准的基于 SQL 的数据库来存储用户的活动。由于数据库中存储了数百万个活动,动态聚合将非常昂贵,因此我们正在考虑将这些活动推送\复制到 DynamoDB 中,并使用 dynamo DB 流(事件)+ Lamda 来提供实时聚合。

如果从一开始就固定了需要完成的聚合类型,这应该可以工作。在我们的例子中,我们希望在未来根据新的用例继续添加新的聚合。虽然我不确定如何重新生成这些事件流,因为它在 24 小时后将不可用!

谁能向我解释一下我们如何在初始设置后随时添加更多聚合?

标签: amazon-web-servicesaws-lambdaamazon-dynamodbaggregationamazon-dynamodb-streams

解决方案


如果您可以让系统因中断而脱机,您可以停止所有写入,然后执行扫描,计算您的聚合,然后使用将更新您的聚合的流再次打开所有内容。

如果您不能使表脱机,您可能需要做一些更花哨的事情,例如通过从启用流时拍摄快照来克隆表,然后计算数据的聚合值,直到您启用了流。

根据您正在执行的计算,这可能非常麻烦,但我认为没有其他方法可以解决它。我也希望它们成为 DynamoDB 的原生聚合框架。


推荐阅读