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

删除重建同名Kinesis数据流后ETL报错,如何不删DynamoDB表修复?

解决DynamoDB流关联同名新Kinesis流后的ETL任务报错问题

问题原因

每个Kinesis数据流都有唯一的内部标识符(即使名称完全相同)。删除旧流后创建同名新流时,DynamoDB流的关联记录仍指向旧流的标识,而ETL任务保存的shard迭代器属于已被删除的旧流,导致在新流中调用GetShardIterator时触发无效迭代器错误。

解决步骤

  • 更新DynamoDB与Kinesis流的关联
    登录DynamoDB控制台,找到目标表,进入「Exports and streams」标签页:

    1. 在「Kinesis data stream」配置项中,先选择「Disable」并保存,等待配置生效。
    2. 重新选择你创建的同名新Kinesis流,再次保存配置。这会让DynamoDB重新建立与新流的绑定,确保后续数据变更事件发送到新流。
  • 重置ETL任务的读取状态
    根据你使用的ETL服务类型操作:

    • Kinesis Data Firehose:进入Firehose控制台找到对应投递流,点击「停止」,待状态变为已停止后,再点击「启动」。启动后Firehose会从新Kinesis流的最新位置开始读取,不再使用旧的shard迭代器。
    • Glue ETL作业:确认作业的Kinesis数据源配置指向新流(可通过ARN验证,避免名称混淆),然后:
      • 如果启用了Glue书签,先禁用书签运行一次作业,再重新启用书签;
      • 直接重新启动作业,让任务重新初始化对新流的读取上下文。
  • 验证修复效果
    在DynamoDB表中执行测试变更(如插入、更新数据),检查ETL任务是否正常捕获事件并同步到Redshift,同时查看任务日志确认GetShardIterator错误已消失。

内容的提问来源于stack exchange,提问作者64rl0

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:35:58