为全球二级索引选择一级索引

时间:2019-06-12 11:08:19

标签: amazon-web-services aws-lambda amazon-dynamodb throughput capacity

我正在阅读有关二级索引的AWS文档,但我不理解以下声明:

  

索引键不需要具有来自   桌子

据我了解,GSI允许我在创建表后的角色上创建主键或排序键。

我想确保我理解上面的陈述,这是否完全意味着我可以在与当前表的主键/哈希键不同的属性上创建主键或排序键?

1 个答案:

答案 0 :(得分:2)

是的,这就是它的意思。假设您有一个表,该表的复合主键由bundle_id作为分区键,而item_id作为排序键。假设您在该表中还有一个名为client_id的属性。

然后您可以创建一个GSI,以client_id-index作为其分区键来命名为client_id,并且您也可以在GSI中包含其他一些属性。

然后,您可以像这样查询GSI(使用Python和Boto3的代码示例)

table.query(
    IndexName='client_id-index',
    KeyConditionExpression=Key('client_id').eq("123456")
)

请注意,即使您在GSI中将ProjectionType指定为INCLUDE,并且包含一些非关键属性,该表中的关键属性也将包含在您的GSI中。