本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将更改数据捕获与 Amazon DynamoDB 结合使用
当存储在 DynamoDB 表中的项目发生更改时,许多应用程序都会因能够捕获此类更改而受益。下面是一些使用场景示例:
-
一个热门移动应用程序以每秒数千次更新的速率修改 DynamoDB 表中的数据。另一个应用程序捕获并存储有关这些更新的数据,为移动应用程序提供 near-real-time 使用情况指标。
-
财务应用程序修改 DynamoDB 表中的股票市场数据。并行运行的不同应用程序实时跟踪这些变化 value-at-risk,计算并根据股价走势自动重新平衡投资组合。
-
运输车辆和工业设备中的传感器将数据发送到 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 表和区域的吞吐量配额限制。 Amazon |
记录传输模型 | Kinesis Data Streams 使用GetRecords并通过增强的扇出功能通过 HTTP 拉取模型,使用通过 HTTP/2 推送记录。SubscribeToShard | 使用通过 HTTP 提取模型GetRecords。 |
记录排序 | 每条流记录上的时间戳属性可用于标识 DynamoDB 表中发生更改的实际顺序。 | 对于 DynamoDB 表中修改的每个项目,流记录将按照对该项目进行的实际修改的顺序显示。 |
重复记录 | 重复记录偶尔会出现在流中。 | 流中不会显示重复记录。 |
流处理选项 | 使用 Amazon Lambda、适用于 Apache Flink 的亚马逊托管服务、Kinesis Data Firehose 或 Amazon Glue 流式传输 ETL 处理流记录。 | 使用 Amazon Lambda 或者 DynamoDB Streams Kinesis Adapter 处理流记录。 |
持久性等级 | 可用区可提供无中断的自动失效转移功能。 | 可用区可提供无中断的自动失效转移功能。 |
您可以在同一 DynamoDB 表上启用两个流式处理模型。
下面的视频详细介绍了这两个选项之间的差异。