gpt4 book ai didi

amazon-dynamodb - 如何仅使用分区键 [Java] 查询 DynamoDB?

转载 作者:行者123 更新时间:2023-12-05 04:50:06 24 4
gpt4 key购买 nike

我是 DynamoDB 的新手,想知道我们如何在 JAVA 中仅使用分区键来查询 DynamoDB 中的表

我有一个名为“ervive-pdi-data-invalid-qa”的表,它的架构是:

  1. 分区键是“SubmissionId”
  2. 排序键是“Id”。
  3. 城市(属性)
  4. 错误(属性)

表格如下所示: Table

我想通过使用 (software.amazon.awssdk) 新版 AWS SDK DynamoDB 类的分区键来检索排序键值和剩余属性数据。

有可能得到吗?如果是这样,任何人都可以发布答案吗?

试过这个:

       DynamoDbClient ddb = 
DynamoDbClient.builder().region(Region.US_EAST_1).build();
DynamoDbEnhancedClient enhancedClient =
DynamoDbEnhancedClient.builder()
.dynamoDbClient(ddb)
.build();

//Define table
DynamoDbTable<ErvivePdiDataInvalidQa> table =
enhancedClient.table("ervive-pdi-data-invalid-qa",
TableSchema.fromBean(ErvivePdiDataInvalidQa.class));

Key key = Key.builder().partitionValue(2023).build();
ErvivePdiDataInvalidQa result = table.getItem(r->r.key(key));
System.out.println("The record id is "+result.getId());

ErvivePdiDataInvalidQa 表类在下面的评论中*

它返回“提供的关键元素与架构不匹配(服务:DynamoDb,状态代码:400,请求 ID:PE1MKPMQ9MLT51OLJQVDCURQGBVV4KQNSO5AEMVJF66Q9ASUAAJG,扩展请求 ID:空)

最佳答案

您需要的查询记录在 AWS Dynamodb Query API for Java 的示例之一中.

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

Table table = dynamoDB.getTable("ervive-pdi-data-invalid-qa");

QuerySpec spec = new QuerySpec()
.withKeyConditionExpression("SubmissionId = :v_id")
.withValueMap(new ValueMap()
.withInt(":v_id", 2146));

ItemCollection<QueryOutcome> items = table.query(spec);

Iterator<Item> iterator = items.iterator();
Item item = null;
while (iterator.hasNext()) {
item = iterator.next();
System.out.println(item.toJSONPretty());
}

单个Query 操作最多可以检索1 MB 的数据,see documentation

关于amazon-dynamodb - 如何仅使用分区键 [Java] 查询 DynamoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67370992/

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