ハッシュキーを作成するために、DynamoDBのテーブルの設計ではいくつかのアドバイスを探してイムとのSortKeyAmazon DynamoDBテーブルに読み込み中に読み込み容量を管理する方法は?
私は
ValueMap valueMap = new ValueMap();
valueMap.put(":pId", pId);
valueMap.put(":mainId", mainId);
StringBuilder userIdList =follwing userIds List;
QuerySpec querySpec = new QuerySpec()
.withProjectionExpression("id,mainId")
.withKeyConditionExpression("id = :pId")
.withFilterExpression("(userId in ("+userIdList+")))
.withValueMap(valueMap).withScanIndexForward(false).withMaxResultSize(minSize);
ItemCollection<QueryOutcome> items = table.query(querySpec);
のような私の簡単なコードを見ては、私が使用してデータをフェッチしようとし、テーブル
HashKey - id - date with some interval
sortKey - mainId - date with timestamp
userId - someNumber
を作成しましたidとuserIdでフィルタリングします。この場合、私のすべての読み込み容量は、ハッシュキーでデータを読み込んだ後、それにフィルタを適用するときに使用されます。この場合、データにフィルタを適用した後、私はレコードを取得しませんでした。
だから、これ以上この方法ではレコードを返さないItemCollectionが、それはそう無駄にならない容量を読み、どのようにすることができ、すべての容量(ケースユーザーIDリストにフェッチされた結果と一致していない)
どのように私はテーブルを設計することができますを読み込み修理する?
返信ありがとうございました Instagramのような「投稿」がテーブルに格納されています。だから私はそれを時間順にソートし、10の束の大きさにしたい。それは私が従う人への投稿を得る。 –
特定のユーザーのポストオーダーを時間単位で取得しますか? –
はい特定の1人のユーザーではなく、私が従うユーザーのための時間順のポストが必要です。だからここに私とuser_idのリストがあります。 –