DynamoDB のソートキーだけで絞り込みたいとき
はじめに
Dynamo のテーブルに GSI(グローバルセカンダリインデックス)を貼ってハッシュキー+ソートキーでクエリするパターンが通常の使い方かと思います。
ではソートキーを日付にしていた場合、同じ日付範囲のデータを一括で取得できる方法はありますでしょうか?
公式ドキュメントにはその辺の Tips なかったのですが、同僚から以下の記事を教えてもらいました。
これの設計2を参考にしました。
全データ共通のダミー列を用意して、以下の GSI を作成します。
- パーティションキーはダミー列
- ソートキーに日付
これで同じ日付範囲の複数データを引っ張ってくることが可能になります。
確かに美しいと言えないかもしれませんが、機転の効いた方法だと思いました。