创建Dynamodb表,除分区键之外的3个搜索列,是否可能?

时间:2017-11-22 12:47:34

标签: amazon-dynamodb

Dynamodb table

嗨,我创建了一个dynamodb表,但是当我尝试使用用户名(附图像)执行table.GetItem时出现错误

发现这是设计不佳的表,所以考虑重新创建一个新表,我的问题是如何为一个主键和3个搜索列的表设置属性,本地二级索引和全局二级索引。 要么 除了dynamodb中的分区键列(user_ID)之外,是否还可以有3个搜索列(User_email,Username,Usertype)?

1 个答案:

答案 0 :(得分:1)

GetItem API需要分区键和排序键。但是,您可以仅使用Query API分区键属性值。查询API不是必需的排序键。

获取物品规则: -

  

对于主键,您必须提供所有属性。对于   例如,使用简单的主键,您只需提供一个值   对于分区键。对于复合主键,您必须提供   分区键和排序键的值。

您可以为每个表定义最多 5个本地二级索引和5个全局二级索引

LSI附加到特定分区键值,而GSI跨越所有分区键值。由于具有相同分区键值的项目在DynamoDB中共享相同的分区,因此" Local"辅助索引仅涵盖存储在一起的项目(在同一分区上)。因此,LSI的目的是查询具有相同分区键值但不同排序键值的项目。例如,考虑一个跟踪客户订单的DynamoDB表,其中CustomerId是分区密钥。

  

使用本地二级索引,项目收集有限制   sizes:对于每个不同的分区键值,所有的总大小   表和索引项不能超过10 GB。这可能会限制   每个分区键值的排序键数。