使用请求或直接DynamoDB对象从表中检索项目?

时间:2019-02-13 16:14:42

标签: amazon-web-services amazon-dynamodb

我目前正在使用DynamoDB AWS API,只是发现了两种做同一件事的不同方法,我实际上是想知道,一个用户而不是另一个用户是否有任何性能或收益。

我目前的情况仅限于一张桌子,所以我将只对该表格进行操作。

使用此方法有什么好处(我认为在我的场景中,每次我想检查密钥是否存在都形成请求更为简单,我还可以使用一个固定的Table对象来请求任何密钥我需要的时间)...

    AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build();
    DynamoDB dynamoDB = new DynamoDB(client);

    Table table = dynamoDB.getTable("my-table");
    table.getItem("sample");

...和这个?

    AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build();

    HashMap<String, AttributeValue> key = new HashMap<String, AttributeValue>();
    key.put("Artist", new AttributeValue().withS("sample1"));
    key.put("SongTitle", new AttributeValue().withS("sample2"));

    GetItemRequest request = new GetItemRequest()
        .withTableName("my-table")
        .withKey(key);

我已经从AWS网站中的实际示例中获取了代码。

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.SDKs.Interfaces.LowLevel.html

https://docs.aws.amazon.com/en_en/amazondynamodb/latest/developerguide/JavaDocumentAPIWorkingWithTables.html#JavaDocumentAPIListTables

1 个答案:

答案 0 :(得分:1)

Table或多或少是DynamoDB客户端对象周围的轻量级包装。 (可以通过在Guthub上查看其source code来看到这一点。)可以使用任何一种使您的代码更具可读性和可维护性的代码。