如何终止DynamoDB当前的索引创建操作并重启?
回答:可以取消当前DynamoDB索引创建操作并重启
当然可以取消正在进行的索引创建操作,这绝对是解决你当前困境的合理选择——毕竟200MB的表却花了15小时还在构建索引,根源就是你说的读写IOPS设置太低。
怎么取消正在进行的索引构建?
你可以通过几种常用方式终止这个操作:
- AWS管理控制台:
- 打开DynamoDB控制台,找到你的目标表
- 切换到「索引」标签页,找到那个显示“创建中”的索引
- 点击操作菜单,选择「删除索引」——别担心,这里的“删除”只是终止未完成的创建流程,不会动你原表的数据
- AWS CLI命令:
直接执行这条命令(记得替换占位符):
要是你建的是本地二级索引,命令逻辑类似,只是参数细节略有不同,不过GSI一般是这种长时间构建的情况。aws dynamodb update-table --table-name YourTableName --global-secondary-index-updates '[{"Delete": {"IndexName": "YourIndexName"}}]' - AWS SDK:
用你熟悉的编程语言(Python、Java啥的)调用update_table方法,传入删除目标索引的参数就行,官方SDK都有明确的示例。
取消后要注意啥?
- 取消操作很快就能完成,而且绝对不会损坏你的原表数据,表会立刻回到索引创建前的状态
- 等操作彻底终止后,你就可以调整表的预置读写IOPS了——或者干脆切换到按需模式,让DynamoDB自动根据负载调吞吐量,省得再手动设置不足
- 调整完吞吐量之后,重新发起索引创建请求就行
给你个重新创建的小建议
针对200MB的表,正常情况下索引构建应该在几十分钟内搞定。重新创建时,要么临时把IOPS调到足够高(可以参考DynamoDB官方的索引构建性能参考),要么直接用按需模式,这样就不会再出现因为IOPS不够拖慢进度的情况了。
内容的提问来源于stack exchange,提问作者Aman Aggarwal
相关产品推荐
相关产品推荐

