本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 流的更改数据捕获
很多应用程序都受益于捕获在发生这些更改时对存储在 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 Lambda、Kinesis Data Analytics、Kinesis Data Firehose 或 AWS Glue Streaming ETL 处理流记录。 | 使用 AWS Lambda 或 DynamoDB Streams Kinesis Adapter 处理流记录。 |
您可以在同一个 DynamoDB 表上启用这两个流式处理模型。