In Middle of Partition Key with Start Sort Key
Query with start sort key Java SDK 2.x
package aws.ddb.snippets;
import java.util.HashMap;
import java.util.Map;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
import software.amazon.awssdk.services.dynamodb.model.QueryRequest;
import software.amazon.awssdk.services.dynamodb.model.QueryResponse;
public class QueryWithStartSortKey {
private static final String TABLE_NAME = Constants.HashKeyRangeKeyTable.TABLE_NAME;
private static final DynamoDbClient DDB = DynamoDbClient.builder()
.region(Region.US_WEST_2)
.build();
public static void main(String[] args) {
queryItems();
}
private static void queryItems() {
final Map<String, AttributeValue> expressionAttributeValues = new HashMap<>();
expressionAttributeValues.put(":v1", AttributeValue.builder().s("alphabet_200KB_per_row").build());
expressionAttributeValues.put(":v2", AttributeValue.builder().s("70").build()); // ASCII value for 'F'
final QueryRequest queryRequest = QueryRequest.builder()
.tableName(TABLE_NAME)
.keyConditionExpression("hash_key = :v1 and sort_key >= :v2")
.expressionAttributeValues(expressionAttributeValues)
.scanIndexForward(true)
.build();
final QueryResponse queryResponse = DDB.query(queryRequest);
AlphabetOutUtil.printAll(queryResponse);
}
}
Output:
sort_key: 70, letter: F, value: FFFFFFFFFF... value length=(204800)
sort_key: 71, letter: G, value: GGGGGGGGGG... value length=(204800)
sort_key: 72, letter: H, value: HHHHHHHHHH... value length=(204800)
sort_key: 73, letter: I, value: IIIIIIIIII... value length=(204800)
sort_key: 74, letter: J, value: JJJJJJJJJJ... value length=(204800)
sort_key: 75, letter: K, value: KKKKKKKKKK... value length=(204800)
GT Snapshot:
gt.sandbox.checkout.commit 355b0e2 \
&& cd "${GT_SANDBOX_REPO}/javaSandbox"