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

AWS DynamoDB全局二级索引无法查询新增数据求助

DynamoDB GSI数据不同步问题排查方案

以下是可能导致全局二级索引(GSI)与主表数据不一致的核心原因及排查方向:

  • 批量导入的未处理条目未重试
    使用BatchWriteItem做批量导入时,接口会返回UnprocessedItems列表,若导入逻辑未对这部分条目进行重试,对应的记录就不会同步到GSI。需检查导入代码是否实现了完整的重试逻辑,确保所有条目都被成功处理。

  • GSI索引键属性缺失或类型不匹配
    GSI仅会包含拥有索引键属性的条目,若批量导入的记录中field1为空或不存在,这类数据不会进入GSI。另外要验证导入数据的field1类型是否与GSI定义一致(比如主表中field1是字符串,导入数据不能是数字类型),类型不匹配的记录也不会被索引。

  • GSI状态未处于活跃状态
    通过AWS控制台或调用DescribeTable API查看GSI的状态:如果GSI处于CREATING、UPDATING状态,数据同步会延迟或中断,必须等待状态变为ACTIVE后,数据才会正常同步。

  • 导入工具或配置抑制了GSI更新
    部分第三方批量导入工具默认可能跳过GSI同步逻辑,或者在调用BatchWriteItem时存在特殊配置导致索引未被触发。需确认导入工具的参数设置,确保没有禁用GSI更新。

  • 删改操作未触索引更新
    若尝试删改问题数据后仍未同步,可能是删改仅修改了非索引字段——只有当field1这个索引键属性发生变化时,DynamoDB才会触发GSI的更新操作。

验证GSI状态的代码示例

dynamodb.describeTable({TableName: 'myTable'}, (err, data) => {
  if (err) console.error(err);
  else console.log('GSI状态:', data.Table.GlobalSecondaryIndexes[0].IndexStatus);
});

内容的提问来源于stack exchange,提问作者Xiao Wang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:05:22