使用 流的更改数据捕获 - Amazon DynamoDB
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 流的更改数据捕获

很多应用程序都受益于捕获在发生这些更改时对存储在 DynamoDB 表中的项目进行的更改。下面是一些用例示例:

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

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

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

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

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

DynamoDB 支持近乎实时地流式传输项目级更改数据捕获记录。您可以构建使用这些流并根据内容执行操作的应用程序。

更改数据捕获的流式处理选项

DynamoDB 为更改数据捕获提供两种流式处理模型:适用于 DynamoDB 和 DynamoDB 流的 Kinesis 数据流。

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

属性 适用于 DynamoDB 的 Kinesis 数据流 DynamoDB 流
数据保留 最多 1 年 24 小时。
Kinesis 客户端库 (KCL) 支持 支持 KCL 版本 1.X 和 2.X 支持 KCL 版本 1.X
使用者数量 每个分片最多 5 个并发使用者,或每个分片最多同时有 20 个带增强型扇出功能的使用者。 每个分片最多 2 个同时使用使用者。
吞吐量配额 无限制。 表和 AWS 区域吞吐量配额DynamoDB限制。
记录传输模型 使用 GetRecords 通过 HTTP 提取模型,使用增强型扇出功能,Kinesis Data Streams 使用 SubscribeToShard 通过 HTTP/2 推送记录。 使用 GetRecords 通过 HTTP 拉取模型。
记录排序 每个流记录的时间戳属性可用于标识 DynamoDB 表中发生更改的实际顺序。 对于 DynamoDB 表中修改的每个项目,流记录将按照对该项目进行的实际修改的顺序显示。
重复记录 流中有时会显示重复记录。 流中不显示重复记录。
流处理选项 使用 AWS LambdaKinesis Data AnalyticsKinesis Data FirehoseAWS Glue Streaming ETL 处理流记录。 使用 AWS LambdaDynamoDB Streams Kinesis Adapter 处理流记录。

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