【问题标题】:Kinesis for grouping jobs from DynamoDB streams to Data Storage用于将 DynamoDB 流中的作业分组到数据存储的 Kinesis
【发布时间】:2020-04-20 19:15:01
【问题描述】:

声明:我从未使用过 Kinesis。

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

这是一个基本的架构图:

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

  1. 是否有适合 Kinesis 的用例?对于我们的用例,此解决方案中是否存在任何市长问题设计问题?
  2. 如何保证只有最后一个版本的 DDB 项目(随时间更新)用于分组作业?

【问题讨论】:

    标签: amazon-web-services aws-lambda stream amazon-dynamodb amazon-kinesis


    【解决方案1】:

    如果您每次获取这些行时都在执行类似的操作,您可能希望使用 Streams 并执行聚合,如 here 所示,您可以使用流处理数据,然后将结果放入时间间隔中,让' 说 10 分钟。

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

    具体回答您的问题:

    1. DynamoDB Streams 在后台使用 Kenesis,我会这么说。
    2. 您有不同的事件要使用,更新、删除、创建,因此您可以订阅您感兴趣的所有事件。订购也是preserved

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多