DynamoDB CDC 事件排序 - Kinesis Data Streams 与 DynamoDb 流

问题描述 投票:0回答:1

阅读 DynamoDB cdc 流的文档,有一个表格列出了使用 Kinesis Data Streams 和 DynamoDB 流之间的一些差异。 “记录排序”行针对数据流说明如下:

The timestamp attribute on each stream record can be used to identify the actual order in which changes occurred in the DynamoDB table.

对比 DynamoDB 流:

For each item that is modified in a DynamoDB table, the stream records appear in the same sequence as the actual modifications to the item.

我将此措辞解释为 DynamoDB 流保证基于 dynamo 中的项目修改顺序进行排序,因为数据流不能保证这一点。我的解释正确吗?

目前我正在为 CDC 使用 Data Streams,但需要制作一个新的应用程序,该应用程序要求记录基于它们插入 dynamo 的时间。我可以继续使用 Data Streams 还是应该同时启用 DynamoDb 流?

amazon-web-services amazon-dynamodb amazon-kinesis
1个回答
2
投票

我将此措辞解释为 DynamoDB 流保证基于 dynamo 中的项目修改顺序进行排序,因为数据流不能保证这一点。我的解释正确吗?

这是正确的认识。项目级别排序,这意味着对单个项目的修改将保证按发生时间的顺序排列。

目前我正在为 CDC 使用 Data Streams,但需要制作一个新的应用程序,该应用程序要求记录基于它们插入 dynamo 的时间。我可以继续使用 Data Streams 还是应该同时启用 DynamoDb 流?

我会使用 DynamoDB Streams,因为它简化了在流的多个分片之间维护顺序的过程。


属性 DynamoDB 的 Kinesis 数据流 DynamoDB 流
数据保留 长达 1 年。 24小时。
Kinesis 客户端库 (KCL) 支持 支持 KCL 版本 1.X 和 2.X. 支持 KCL 版本 1.X.
消费者数量 每个分片最多 5 个并发消费者,或者每个分片最多 20 个同时消费者,具有增强的扇出功能。 每个分片最多同时有 2 个消费者。
吞吐量配额 无限。 受 DynamoDB 表和 AWS 区域的吞吐量配额限制。
备案交付模式 使用 GetRecords 和增强的扇出功能通过 HTTP 拉取模型,Kinesis Data Streams 使用 SubscribeToShard 通过 HTTP/2 推送记录。 使用 GetRecords 通过 HTTP 拉取模型。
记录排序 每条流记录上的时间戳属性可用于识别 DynamoDB 表中发生更改的实际顺序。 对于 DynamoDB 表中修改的每个项目,流记录的出现顺序与项目的实际修改顺序相同。
重复记录 重复的记录可能偶尔会出现在流中。 流中不会出现重复记录。
流处理选项 使用 AWS Lambda、Kinesis Data Analytics、Kinesis data firehose 或 AWS Glue 流式 ETL 处理流记录。 使用 AWS Lambda 或 DynamoDB Streams Kinesis 适配器处理流记录。
耐用度 可用区提供不间断的自动故障转移。 可用区提供不间断的自动故障转移。
© www.soinside.com 2019 - 2024. All rights reserved.