我以为我
- 创建一个表并启用流,现在我有了一个ARN
- 创建运动流
- 配置某处以告知dynamoDb流写入kinesis流
我正在考虑使用https://github.com/harlow/kinesis-consumer,但这是从kinesis读取的,或者我可以使用ARN并使用它直接从dynamoDB流读取吗?
我看得越多,就越觉得,我必须写一个lambda来读取dynamoDB并写入kinesis,对吗?
谢谢
我以为我
我正在考虑使用https://github.com/harlow/kinesis-consumer,但这是从kinesis读取的,或者我可以使用ARN并使用它直接从dynamoDB流读取吗?
我看得越多,就越觉得,我必须写一个lambda来读取dynamoDB并写入kinesis,对吗?
谢谢
3条答案
按热度按时间t40tm48m1#
嘿,你能提供更多关于你的目标设置的信息吗?你是否计划为你的dynamoDB表进行某种ETL过程?AFAIK当你将一个kinesis流绑定到dynamodb表时,每次你在dynamodb上添加,删除或更新行时,一个新的事件将在关联的kinesis流中发布,你可以从该流中消费并以任何你想要的方式使用该事件。
也许值得检查一下这个:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.KCLAdapter.Walkthrough.html
hgqdbh6s2#
DynamoDB现在原生支持Kinesis数据流:
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/kds.html
您可以为变更数据捕获(CDC)选择DynamoDB流或Kinesis数据流。
| 属性|DynamoDB的运动数据流|DynamoDB数据流|
| - -|- -|- -|
| 数据保留|最多1年。|24个小时。|
| Kinesis客户端库(KCL)支持|支持KCL版本1.X和2.X。|支持KCL版本1.X。|
| 使用者数量|每个分片最多5个同时使用者,或每个分片最多20个同时使用者(具有增强的扇出)。|每个碎片最多可同时使用2个使用者。|
| 吞吐量配额|无限制。|受DynamoDB表和AWS区域的吞吐量配额限制。|
| 记录交付模型|使用GetRecords和增强扇出的HTTP Pull模型,Kinesis数据流使用SubscribeToShard通过HTTP/2推送记录。|使用GetRecords通过HTTP提取模型。|
| 记录排序|每个流记录上的timestamp属性可用于标识DynamoDB表中发生更改的实际顺序。|对于DynamoDB表中修改的每个项,流记录以与项的实际修改相同的顺序出现。|
| 重复记录|重复的记录可能偶尔会出现在数据流中。|数据流中不会出现重复的记录。|
| 流处理选项|使用AWS Lambda、Kinesis数据分析、Kinesis数据消防软管或AWS Glue流ETL处理流记录。|使用AWS Lambda或DynamoDB Streams Kinesis适配器处理流记录。|
| 耐久性等级|可用性区域提供无中断的自动故障切换。|可用性区域可提供无中断的自动故障切换。|
lrl1mhuk3#
您可以使用Amazon Kinesis数据流来捕获对Amazon DynamoDB的更改。根据the AWS documentation:
Kinesis数据流捕获任何DynamoDB表中的项目级修改,并将其复制到Kinesis数据流。您的应用程序可以访问此流并近乎实时地查看项目级更改。您可以每小时连续捕获和存储数TB的数据。您可以利用更长的数据保留时间,并使用增强的扇出功能,您可以同时访问两个或多个下游应用程序。2其他好处包括额外的审计和安全透明性。
您还可以从DynamoDB表启用到Kinesis的流式传输。