Dynamo DB Kinesis Steams 最佳实践

0

【以下的问题经过翻译处理】 你好,

我的客户目前有一个启用了 DynamoDB 流的大型 DynamoDB 表和流的两个 Lambda 使用者。他们希望能够处理多达五个额外的消费者,但意识到[如果有两个以上的消费者正在从同一流读取,则可能会受到限制](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide /Limits.html#limits-dynamodb-streams)。他们正在考虑使用 DynamoDB 的 Kinesis Data Steam 将事件分散到其他消费者,他们提出了以下问题:

  1. 在现有的 DynamoDB Stream 和两个 Lambda 消费者仍然存在的情况下,为 DynamoDB 添加 Kinesis Data Steam 是好的做法,还是他们应该考虑删除现有的 DynamoDB Stream 并为所有消费者使用 Kinesis Data Steam for DynamoDB?
  2. 在使用 Kinesis Data Steam for DynamoDB 与 DynamoDB Streams 时,他们应该注意哪些陷阱?我能想到的是:
  3. 将 Kinesis Data Steam 用于 DynamoDB 时,记录的显示顺序可能与项目的实际修改顺序不同,而在 DynamoDB Steam 中,记录按时间顺序显示
  4. 在使用 Kinesis Data Steam for DynamoDB 时需要管理 Kinesis Data Steam 碎片的数量,而在使用 DynamoDB Streams 时会为您管理。

非常感谢指导。

谢谢

profile picture
专家
已提问 6 个月前31 查看次数
1 回答
0

【以下的回答经过翻译处理】 为了帮助回答您的问题:

  1. 从 DDB 创建 1 个流总是更好,无论是 DDB 流还是 Kinesis。因此,如果您的客户计划使用 2 个以上的消费者,我建议他们转移到 Kinesis 流,然后让他们所有的 Lambda 从 Kinesis 消费。您还可以获得数据保留优于 DDB 流的优势。 2.除了你提到的那些:
  • A。流记录可能会在 Kinesis 数据流中出现多次。您可以在每条记录上使用时间戳属性 ApproximateCreationDateTime 来识别项目修改发生的实际顺序,并识别流中的重复记录。
  • B。使用 Kinesis Data Streams for DynamoDB 时,数据流的 Kinesis Data Streams 定价和源表的 DynamoDB 定价均受限。因此,请注意 Kinesis 和 DynamoDB 对 Kinesis Data Streams 的变更数据捕获收取的额外费用。他们还必须计算红色。# 所需的分片数量。
profile picture
专家
已回答 6 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则