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
エキスパート
質問済み 8ヶ月前59ビュー
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
エキスパート
回答済み 8ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン