gpt4 book ai didi

java - 什么时候应该使用各种 DynamoDB API 客户端?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:32:03 25 4
gpt4 key购买 nike

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

例如,我已经遇到了三个提供一定程度写入能力的不同类:AmazonDynamoDBClient , DynamoDB , 和表(链接方向见下文)。据我所知,它们是建立在彼此之上的,因为您可以获得如下表:

Table table = new DynamoDB(new AmazonDynamoDBClient()).getTable("TableName");

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

c.putItem(PutItemRequest r);
//or
c.updateItem(UpdateItemRequest r);
//or
c.batchWriteItem(BatchWriteItemRequest r);

DynamoDB 提供

d.batchWriteItem(BatchWriteItemSpec s);

和表报价

t.putItem(Item);
// or
t.putItem(PutItemSpec s);
// or
t.updateItem(UpdateItemSpec s);

如您所见,在如何使用每个类写入表方面存在很多重叠。此外,对于不同的客户端对象(例如“Request”系列和“Spec”系列),存在不同类型的请求对象,每个对象都有非常不同的方法来填充它们的选项。这使我无法使用一个请求,然后将其传递给我的类(class)碰巧手头上的任何客户。

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

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

最佳答案

参见:

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AboutJava.html

低级别是如果您想基本上自己执行所有 DDB 调用并给您最大的控制权。高层将事物映射到您直接使用的 Java 对象,并将您正在执行的操作编码到较低层。第一个文档有点新。

put 和 update 之间的区别在于 put 需要项目的整个主体,而在更新的情况下,您只需要正在更改的属性。

批处理操作通常是为了延迟目的而进行的(即一次更新 300 条记录与更新一条记录 300 次)。

如果它只是一个宠物项目,我建议从低级 API 开始,这样您就可以了解 Dynamo 是什么以及可以在 API 级别做什么。

关于java - 什么时候应该使用各种 DynamoDB API 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32976613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com