小编S.D*_*ney的帖子

什么时候应使用各种DynamoDB API客户端中的每一个?

我正在开发一个个人项目,该项目广泛使用了DynamoDB,这是我以前从未使用过的项目,我发现自己遇到了以下问题:“我应该使用哪个DynamoDB客户端对象进行此读/写?”

例如,我已经遇到了三个提供某些程度的写入功能的不同类:AmazonDynamoDBClientDynamoDB和Table(有关链接的说明,请参见下文)。据我所知,它们是基于彼此构建的,您将获得如下表:

Table table = new DynamoDB(new AmazonDynamoDBClient()).getTable("TableName");
Run Code Online (Sandbox Code Playgroud)

但是,当我想执行写入操作(无论是“更新”还是“放置”)时,AmazonDynamoDBClient会提供

c.putItem(PutItemRequest r);
//or
c.updateItem(UpdateItemRequest r);
//or
c.batchWriteItem(BatchWriteItemRequest r);
Run Code Online (Sandbox Code Playgroud)

DynamoDB提供

d.batchWriteItem(BatchWriteItemSpec s);
Run Code Online (Sandbox Code Playgroud)

和表报价

t.putItem(Item);
// or
t.putItem(PutItemSpec s);
// or
t.updateItem(UpdateItemSpec s);
Run Code Online (Sandbox Code Playgroud)

如您所见,在如何使用每个类写入表方面有很多重叠之处。此外,对于不同的客户端对象,存在不同类型的请求对象(例如,“请求”系列和“规范”系列),每种类型都有不同的方法来填充其选项。这样可以防止我使用一个请求,然后再将其传递给我的课程碰巧遇到的任何客户端。

我应该如何选择何时使用哪个客户端(以及关联的方法和请求对象)?我的初步评估表明,仅自己使用AmazonDynamoDB客户端,因为它是提供我所有必需功能的最简单对象(乍一看)。

注意:我还没有很高的声誉可以链接到所有3个类,但是可以从DynamoDB API页面的getTable()方法返回类型访问Table。

java amazon-web-services amazon-dynamodb

6
推荐指数
1
解决办法
1188
查看次数