将更改数据捕获与 Amazon DynamoDB 结合使用 - Amazon DynamoDB

将更改数据捕获与 Amazon DynamoDB 结合使用

当存储在 DynamoDB 表中的项目发生更改时,许多应用程序都会因能够捕获此类更改而受益。下面是一些使用场景示例:

  • 一个热门移动应用程序以每秒数千次更新的速率修改 DynamoDB 表中的数据。第二个应用程序捕获和存储有关这些更新的数据,并提供针对该移动应用程序的近乎实时用量指标。

  • 财务应用程序修改 DynamoDB 表中的股票市场数据。并行运行的不同应用程序实时跟踪这些变化,计算风险价值,并根据股票价格变动自动重新平衡投资组合。

  • 运输车辆和工业设备中的传感器将数据发送到 DynamoDB 表中。不同的应用程序监控性能并在检测到问题时发送消息警报,通过应用机器学习算法预测任何潜在缺陷,并将数据压缩和存档到 Amazon Simple Storage Service (Amazon S3)。

  • 一旦某个好友上传新图片,一个应用程序就会自动向群组中的所有好友的移动设备发送通知。

  • 一个新客户将数据添加到 DynamoDB 表。此事件调用另一个应用程序,以便向该新客户发送欢迎电子邮件。

DynamoDB 支持近实时流式处理项目级别更改数据捕获记录。可以构建使用这些流并根据内容采取操作的应用程序。

以下视频将向您介绍更改数据捕获概念。

更改数据捕获的流式传输选项

DynamoDB 提供了两个用于更改数据捕获的流模型:Kinesis Data Streams for DynamoDB 和 DynamoDB Streams。

为了帮助选择适合应用程序的解决方案,下表总结了每个流式处理模型的功能。

属性 Kinesis Data Streams for DynamoDB DynamoDB Streams
数据保留 最多 1 年 24 小时。
Kinesis Client Library (KCL) 支持 支持 KCL 版本 1.X 版和 2.X 版 支持 KCL 版本 1.X
使用者数 每个分片最多同时 5 个消费者,或者 enhanced fan-out 的每个分片最多同时 20 个消费者。 每个分片最多 2 个消费者。
吞吐量配额 无限制。 由 DynamoDB 表和 AWS 区域的吞吐量配额决定。
记录传输模型 使用 GetRecordsenhanced fan-out 在 HTTP 拉取模型,Kinesis Data Streams 使用 SubscribeToShard 在 HTTP/2 推送记录。 使用 GetRecords 通过 HTTP 提取模型。
记录排序 每条流记录上的时间戳属性可用于标识 DynamoDB 表中发生更改的实际顺序。 对于 DynamoDB 表中修改的每个项目,流记录将按照对该项目进行的实际修改的顺序显示。
重复记录 重复记录偶尔会出现在流中。 流中不会显示重复记录。
流处理选项 使用 AWS Lambda适用于 Apache Flink 的亚马逊托管服务Kinesis Data FirehoseAWS Glue 流式传输 ETL 处理流记录。 使用 AWS Lambda 或者 DynamoDB Streams Kinesis Adapter 处理流记录。
持久性等级 可用区可提供无中断的自动失效转移功能。 可用区可提供无中断的自动失效转移功能。

您可以在同一 DynamoDB 表上启用两个流式处理模型。

下面的视频详细介绍了这两个选项之间的差异。