DynamoDB 流架构

DynamoDB Stream Architecture

我有一个 DynamoDB table,我想使用 DynamoDB table 中的数据并将其放入我们的数据存储中。

我不想直接访问 DynamoDB table,相反,我想添加一个 Lambda 函数来侦听 table 中的任何更改并将其放入 DynamoDB 流。

我寻求帮助的部分是:

  1. 我可以使用 python boto 客户端直接从 DynamoDB 流消费并将其加载到数据存储。

  2. 我可以在两者之间添加kafka/sns并从kafka消费。

我担心的唯一原因是分片数据会在 24 小时后从 DynamoDB 中删除。如果失败了,我该如何解决?

最佳选项 1 或 2 是什么?

这似乎是一种误解——您不需要 Lambda 即可将某些内容放入 DynamoDB 流中——这就是 DynamoDB 为您所做的。

您可以选择设置“传统”DynamoDB 流(保留 24 小时)或 Kinesis 数据流(最多保留 7 天)。由于您主要担心 24 小时的限制,您可能希望使用 Kinesis 数据流,然后从那里处理数据。

您甚至可以从那里与 Lambda 集成以写入您的数据存储。