ハッシュキーとソート(範囲)キーを使用するテーブルがあります。私の範囲キーはuuidです。私は、DynamoDBMapperを使用してデータベースにクエリを実行する任意の範囲キーを持っている場合があります。彼らは決して順調ではありません。残念ながら、私の目的のために、それらが連続している可能性はないので、キーの範囲を照会することはできません(キーはaとbの間です)。潜在的な値のセットにある範囲キーを検索するクエリ条件を持つ方法はありますか?基本的にSQL WHERE条件は次のようになります。rangeKey IN(val1、val2、...);DynamoDB:非シーケンシャル範囲キーのセットで範囲キーを照会します。
DynamoDBQueryExpressionのドキュメントによると、これはsetKeyConditionExpressionまたはsetRangeKeyConditionsを使用しては不可能と思われます。これを行う効率的な方法はありますか?または、私の潜在的な値のセットを反復し、loadメソッドを使用して個々にデータベースからそれらを取得するのが最善の策ですか?
あなたのデータモデルについてもう少し詳細を共有できますか? Uuidsを自然な順序がないので範囲キーとして使用するのはちょっと変わったようです。 – hellomichibye
私はhellomichibyeのコメントです。あなたのデータモデルにはある程度の作業が必要なようです。 UUIDを範囲キーとして使用することは意味がありません。 –
私はそれが理想的ではないことに同意しますが、私たちが思いついた最高の解決策です。我々は、ハッシュキーを介してアクセスされる異なる顧客のためのデータベースのパーティションを持っています。パーティション内では、すべての文書が互いに独立しているため、ソートや順序付けは任意です。複数のドキュメントを別のエンティティに関連付ける参照テーブルがあるため、このクエリが必要です。ただし、そのエンティティへのドキュメント参照は頻繁に変更されるため、ソートや順序付けは非常に恣意的です。 –