amazon-web-services - 具有 TTL 并触发 Kinesis Firehose 的 DynamoDB 表
问题描述
在我的 DynamoDB 表中,Kinesis Firehose 被触发,每当添加/更新一些记录时,它就会将我的数据转储到 S3。我的 DynamoDB 表也启用了 TTL。
删除某些记录时也会触发吗?
当物品过期时,届时会触发 Kinesis Firehose,S3 端会发生什么情况?
解决方案
我的理解是,DynamoDB 发送到 Kinesis Data Streams 的数据格式与它发送到常规 DynamoDB 流的数据基本相同,因此,我希望行为相同。
根据Kinesis Data Streams 集成文档(强调我的):
适用于 Amazon DynamoDB 的 Amazon Kinesis Data Streams 以异步方式运行,因此如果启用流,则不会对表的性能产生影响。每当在表中创建、更新或删除项目时,DynamoDB 都会向 Kinesis 发送一条数据记录。该记录包含有关对 DynamoDB 表中单个项目的数据修改的信息。具体来说,数据记录包含被修改项目的主键属性,以及被修改项目的“之前”和“之后”图像。
本质上,这也是常规 DynamoDB 流所做的事情,并且关于 TTL-deletes 的文档说:
您可以通过在表上启用 Amazon DynamoDB Streams 并处理过期项目的流记录来备份或以其他方式处理由生存时间 (TTL) 删除的项目。
流记录包含用户身份字段 Records[].userIdentity。
过期后由生存时间流程删除的项目具有以下字段:
Records[<index>].userIdentity.type
“服务”
Records[<index>].userIdentity.principalId
“dynamodb.amazonaws.com”
tl;dr:是的,TTL 删除也应该出现在流中,并将像任何常规删除一样由 Firehose 处理。
推荐阅读
- python - 使用 Python 自动化 Google 表单
- cypress - 在 Cypress 中组织新的端到端测试的一般做法
- api - 是否有现有软件可以从经纪账户导入所有数据?
- javascript - 返回一个嵌套的 observable
- java - 关于oshi-core,我使用m1(macbook air)
- javascript - 从代码中的 Fancybox 中删除 Share 元素图标
- android - 设计数据库用户有很多特权
- r - 使用 R 将数据帧的行设置为 NA
- c# - 反序列化后无法获取从xml文件返回的项目列表
- ssl - WolfSSL:由于构建(cmake)的配置问题导致恢复会话失败