DynamoDB access in Java(structure)

By | December 30, 2021
Share the joy
  •  
  •  
  •  
  •  
  •  
  •  

dynamodb_hierarchy

1. dynamodb vs dynamodb-enhanced
1). software.amazon.awssdk, dynamodb
2). software.amazon.awssdk, dynamodb-enhanced, a high-level library. Can map class to DynamoDb tables.
Introducing enhanced DynamoDB client in the AWS SDK for Java v2

2. Client vs Table
DynamoDbClient/DynamoDbEnhancedClient is like databases access. Think you know the username/password to the database.
DynamoDbTable/DynamoDbAsyncTable is the table you will operate on.

AsyncClient could return CompletableFuture or Publisher(in reactive)

Below are some junk demo code.

// dynamodb
DynamoDbAsyncClient dynamoDbAsyncClient = null;
QueryRequest queryRequest = null;
Flux.from(dynamoDbAsyncClient.queryPaginator(queryRequest))
        .subscribe();

// dynamodb enhanced
// sync
DynamoDbEnhancedClient dynamoDbClient = null;
DynamoDbTable dynamoDbTable = dynamoDbClient.table("tableName", TableSchema.class);
PageIterable pageIterable = dynamoDbTable.query(SOME_QUERY); // return

// async
DynamoDbEnhancedAsyncClient dynamoDbEnhancedAsyncClient1 = null;
DynamoDbAsyncTable dynamoDbAsyncTable = dynamoDbEnhancedAsyncClient1.table(null, null);
PagePublisher<T> pagePublisher = dynamoDbAsyncTable.query(SOME_QUERY);
Flux.from(pagePublisher).subscribe(p -> {
    System.out.println();
});