将作业从DynamoDB流分组到数据存储的运动

问题描述 投票:0回答:1

Disclamer:我从没用过Kinesis。

Context:我们正在设计一种服务,该服务每分钟从4.1M Items DynamoDB表中获取数据,我们基于一个Items属性进行分组,然后将其写入数据存储(仅可从EC2访问) ,而不是Lambda)。我们的目标是在<1m内执行每个作业,最好是15秒。 DDB中的项目可以随时获取其属性之一的更新(即DDB表中的项目覆盖)。分组作业中只能使用该项目的最新版本。

这是基本架构图:

enter image description here

假设DDB提供了正确的RCU,我的问题是:

  1. Kinesis是否有很好的用例?对于我们的用例,此解决方案中是否存在任何市长问题设计问题?
  2. 如何保证仅将最新版本的DDB项(随时间更新)用于分组作业?
amazon-web-services aws-lambda stream amazon-dynamodb amazon-kinesis
1个回答
0
投票

[如果每次获取这些行时都执行类似的操作,则可能要使用流并进行聚合,如here所示,您可以使用流来处理数据,然后将结果放入时间间隔,让我们说10分钟。

然后您可以进行增量聚合,然后进行小时,天,年等计算,如果这是您的最小单位,则精度约为10分钟,并且结果是实时的,因为它们都是实时可用的。您应该在容量单位上节省大笔钱,如果有的话,应进行重复处理。

要具体回答您的问题:

  1. DynamoDB Streams在后台使用Kenesis,我会这么说。
  2. 您有不同的事件要消费,更新,删除创建,因此您将订阅所有感兴趣的事件。订购也为preserved
© www.soinside.com 2019 - 2024. All rights reserved.