gpt4 book ai didi

java - 我可以列出 DynamoDB 表中包含这些值的所有项目吗?

转载 作者:行者123 更新时间:2023-12-02 18:26:19 26 4
gpt4 key购买 nike

我有一个 DynamoDB 表,其中包含具有以下结构的项目:

{
"applicationName": { //PARTITION KEY
"S": "FOO_APP"
},
"requestId": { // SORT KEY
"S": "zzz/yyy/xxx/58C28B6"
},
"creationTime": {
"N": "1636332219136"
},
"requestStatus": {
"S": "DENIED"
},
"resolver": {
"S": "SOMEONE"
}
}

在 DynamoDB 中,我可以查询此表来列出applicationNamerequestStatus 提供的值匹配的所有项目解析器

换句话说,我如何列出所有匹配的项目:

  • applicationName = 'FOO',
  • requestStatus =“已拒绝”,并且
  • 解析器=“某人”

采用此表设计,我需要 GSI 吗?我可以进行查询还是扫描?

完成这项任务最经济有效的方法是什么?

我正在使用 Java 的 DynamoDBMapper .

最佳答案

您可以添加另一个属性来组合您正在查询的值,如下所示:

GSI1PK: <applicationName>#<requestStatus>#<resolver>

然后定义一个全局二级索引 (GSI1),分区键为 GSI1PK,排序键类似于当前的排序键 requestId .

每当您想要查找与这三个条件匹配的所有请求时,您都可以构建搜索事物并查询全局二级索引:

Query @GSI1
Partition Key = FOO_APP#DENIED#SOMEONE

这将产生与条件组合匹配的所有请求。这种非规范化在 DynamoDB 等 NoSQL 数据库中很常见。

关于java - 我可以列出 DynamoDB 表中包含这些值的所有项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70100457/

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