当前位置: 首页 > 知识库问答 >
问题:

带有值列表的GSI上的DynamoDB查询-Python

章安易
2023-03-14

在我的Dynamodb表中,该表包含分区键“id”和“created_at”作为排序键的“batchs”和一个带有“batch_status”的GSI

假设我想查询状态为“正在进行”、“新建”、“已完成”的批。

def retrieve_records():
    response = table.query(IndexName="batch_Status-index", KeyConditionExpression=Key("batch_Status").eq("In Progress"))

共有1个答案

潘秦斩
2023-03-14

目前还没有办法在单个请求中执行这些查询。做到这一点的唯一方法是执行多个查询。延迟应该是最小的。它也让你有机会并行地做它们,这可能会加快一些事情。

 类似资料:
  • 在我的DynamoDB表中,有HashKey=ID和GSI=Type。我需要获取特定类型(GSI)的所有hashKeys(ID)。 在这种情况下,获取给定类型的所有ID的有效方法是什么?我的DynamoDB表不会很大。

  • 我有一个带有哈希键(id)的表(配置文件),我有一个关于名称的GSI,一个关于国家的范围键。我想创建一个DAO方法,它将获取所有具有给定值的name和country的记录,如下所示:List getProfileWithNameAndCountry(name,country);

  • 我在Dynamodb有一张这样的桌子 我想列出表中的所有数据,但不想对表执行扫描。所以我在表上添加了一个索引。它的值将始终相同(示例中的) 现在我可以使用查询表中的所有数据。它的好处是所有数据都将驻留在Dynamodb的GSI中的同一个分区中。我想知道这样做是否是个好主意?还是会导致GSI上的热分区?

  • 我想进行更新,但我想添加的条件检查不是基于主表的哈希/范围,而是基于GSI。 实际上,如果给定属性(即GSI的哈希)已经存在,我希望保存失败。 例如,在一个虚构的employees表中,“SSN”是散列键,“EmployeeId”上有一个GSI。这两个属性都必须是独一无二的。在保存员工时,我希望确保表中没有使用“SSN”或“EmployeeId”。我可以用表的散列,也就是SSN,但不能用GSI的散

  • PS:值得一提的是,我能够通过Appsync控制台成功地查询到这些数据,这让我坚信问题出在函数本身。

  • jOOQ可以将查询结果映射到POJO中的多个嵌套列表吗?例如,我有一个POJO VM,它代表一个虚拟机。它具有'networks'属性,这是一个类型为network的列表。它还有一个'hdds'属性,这是一个类型为'hdd'的列表。该查询连接VM、HDD和Networks表。我是否可以“获取”到vm.class并期望jOOQ“做正确的事情”?