グローバルセカンダリインデックスに、テーブルに書き込んだ新しい項目が表示されない理由を知りたいです。

所要時間1分
0

テーブルに書き込んだ項目が、Amazon DynamoDB の関連するグローバルセカンダリインデックス (GSI) に表示されません。または、項目を書き込んでから GSI で読み込めるようになるまでに遅延が発生します。

解決策

書き込み操作は 1 秒以内に GSI に伝達されます。数秒待っても更新内容が GSI に表示されない場合は、以下の一般的な原因を確認してください。

  • 1 つのテーブルに多数の項目または複数の GSI がある大規模なベーステーブルでは、伝播に遅延が発生します。
  • ベーステーブルに追加された項目に、GSI プライマリキーの値がないものがあります。
    注: GSI はスパースインデックスであるため、これらの項目はインデックスに表示されません。

伝播の大幅な遅延を解決するには、エクスポネンシャルバックオフアルゴリズムを使用するように AWS SDK を設定します。次に、インデックスでクエリまたはスキャン操作を再試行します。エクスポネンシャルバックオフにより、インデックスに書き込み操作が表示されるまでの時間が得られるため、必要な再試行の合計回数が減ります。

プロビジョニングされたキャパシティモードのテーブルでは、ベーステーブルよりも書き込みキャパシティが低いインデックスの場合、伝播が遅延する可能性があります。この問題を解決するには、UpdateTable API を使用してインデックスの書き込みキャパシティをベーステーブルのキャパシティ以上 (同値含む) にします。

関連情報

テーブルとグローバルセカンダリインデックス間のデータ同期

AWS公式
AWS公式更新しました 3ヶ月前