なお、ローカルセカンダリインデックスを使うためには、ライブラリのパッケージは
com.amazonaws.services.dynamodbv2.*以下を使用することになるので注意してください。
ローカルセカンダリインデックスを持つテーブルの作成
テーブル作成時にローカルセカンダリインデックスを定義する必要があります。事後にインデックスを追加することはできないので要注意ですね。
Index Name名というのがよくわからないので、Attributeの名前を同じにしました。
データクラスにアノテーションを記述する
アノテーションの記述方法ですが、ローカルセカンダリインデックスに相当するAttributeについては、
@DynamoDBIndexRangeKey(localSecondaryIndexName ="age") public int getAge() { return age; } public void setAge(int age) { this.age = age; }というようにします。
ローカルセカンダリインデックスで検索をかける
従来のRangeKeyに対する検索の方法と同じです。
上記は、年齢(age)をセカンダリインデックスとして20才のデータを探している例です。
ローカルセカンダリインデックスの特徴
個人的にポイントと思っているのは下記の点です。
- テーブル毎に最大5つのローカルセカンダリインデックスを作成可能
- あくまでも従来のレンジキーに対する代替
- 複数のローカルセカンダリインデックスを組み合わせた検索は不可
- 従来のレンジキーとの組み合わせも不可
- 紐付けるAttributeによってコストが増える?
APIの仕様が若干変化している点に注意
パッケージがcom.amazonaws.services.dynamodbv2に変わるとともに、微妙にAPIの仕様が変わってます。今までのコードが動かなくなる可能性が高いので注意が必要でしょう。現状すでにDynamoDBで運用している場合は、移行の際は注意した方がいいです。
0 件のコメント:
コメントを投稿