Disclamer:我从没用过Kinesis。
Context:我们正在设计一种服务,该服务每分钟从4.1M Items DynamoDB表中获取数据,我们基于一个Items属性进行分组,然后将其写入数据存储(仅可从EC2访问) ,而不是Lambda)。我们的目标是在<1m内执行每个作业,最好是15秒。 DDB中的项目可以随时获取其属性之一的更新(即DDB表中的项目覆盖)。分组作业中只能使用该项目的最新版本。
这是基本架构图:
假设DDB提供了正确的RCU,我的问题是:
[如果每次获取这些行时都执行类似的操作,则可能要使用流并进行聚合,如here所示,您可以使用流来处理数据,然后将结果放入时间间隔,让我们说10分钟。
然后您可以进行增量聚合,然后进行小时,天,年等计算,如果这是您的最小单位,则精度约为10分钟,并且结果是实时的,因为它们都是实时可用的。您应该在容量单位上节省大笔钱,如果有的话,应进行重复处理。
要具体回答您的问题: