アイキャッチの画像

「Amazon Dynamo DB」で「GSI」を追加したのに「サイズ」「項目数」が増えなかった原因

公開日:

更新日:

AWS DynamoDBに後からグローバルセカンダリインデックスを追加

DynamoDBのGSIはテーブル作成後、好きなタイミングで削除・追加ができます。

先日後からGSIを追加したのですが、いつまで待ってもGSIの「項目数」「サイズ」が増えてくれませんでした。

GSIのサイズやアイテム数は6時間事に非同期に連携されています。(公式のAWSサポートに答えて頂きました。)

なので最低でも6時間待てばコンソールには表示されるはずです。

AWSコンソールの画像

原因はパーティションキーの先頭にスペースが紛れていたこと

AWSコンソールの画像

↑上記の「test」テーブルには「name」「age」「country」の三つの項目があります。

AWSコンソールの画像

↑このテーブルにはグローバルセカンダリインデックス「test-index」が設定されていてパーティションキーは「country 」です。

そのため「test-index」は本来なら二つのデータを読み込むはずですが、そこが「0」となってしまっています。

なぜなら「country」の先頭にスペースが入ってしまっているからです

AWSコンソールの画像

↑スペースが入ってしまっているとコンソールから気づくのが難しいです。

上記を修正して正しいパーティションキーを指定すれば正常に動くようになります。

DynamoのGSIが増えない/反映されないとなったらまずGSIのパーティションキー名に誤りがないか疑ってみて下さい。

本記事は以上になります。

ご一読頂きありがとうございました。