You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向DynamoDB插入同主键过期TTL记录的影响及报错疑问

关于DynamoDB主键覆盖与TTL过期记录的问题解答
  1. 不会触发报错
    DynamoDB的PutItem操作不会因为目标主键的旧记录TTL过期但未被删除而报错。只要主键匹配,PutItem会直接覆盖现有记录——不管这条旧记录处于什么状态,哪怕已经被标记为TTL待删除。

  2. 关于Stream事件的说明
    直接用PutItem覆盖旧记录时,DynamoDB Streams只会生成MODIFY类型的事件,而不是你期望的删除(REMOVE)事件。因为这种操作本质是更新,而非先删除旧记录再插入新记录。

  3. 实现你需求的方案
    如果想要旧记录被立即删除且触发REMOVE事件,需要拆分两步操作:

    • 先执行DeleteItem操作删除主键为389的旧记录,此时Streams会立即生成REMOVE事件,旧记录被同步删除。
    • 再执行PutItem插入更新了TTL的新记录,Streams会生成INSERT事件。
  4. TTL后台删除的补充
    TTL过期的记录是DynamoDB后台异步删除的,这个过程不会影响你的写入操作,但它触发的REMOVE事件时间不可控,无法保证立即生成。

内容的提问来源于stack exchange,提问作者Banarasi Vaibhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 12:08:10