嗨,我创建了一个dynamodb表,但是当我尝试使用用户名(附图像)执行table.GetItem时出现错误
发现这是设计不佳的表,所以考虑重新创建一个新表,我的问题是如何为一个主键和3个搜索列的表设置属性,本地二级索引和全局二级索引。 要么 除了dynamodb中的分区键列(user_ID)之外,是否还可以有3个搜索列(User_email,Username,Usertype)?
答案 0 :(得分:1)
GetItem API
需要分区键和排序键。但是,您可以仅使用Query API
分区键属性值。查询API不是必需的排序键。
获取物品规则: -
对于主键,您必须提供所有属性。对于 例如,使用简单的主键,您只需提供一个值 对于分区键。对于复合主键,您必须提供 分区键和排序键的值。
您可以为每个表定义最多 5个本地二级索引和5个全局二级索引。
LSI附加到特定分区键值,而GSI跨越所有分区键值。由于具有相同分区键值的项目在DynamoDB中共享相同的分区,因此" Local"辅助索引仅涵盖存储在一起的项目(在同一分区上)。因此,LSI的目的是查询具有相同分区键值但不同排序键值的项目。例如,考虑一个跟踪客户订单的DynamoDB表,其中CustomerId是分区密钥。
使用本地二级索引,项目收集有限制 sizes:对于每个不同的分区键值,所有的总大小 表和索引项不能超过10 GB。这可能会限制 每个分区键值的排序键数。