【问题标题】:Choose primary index for Global secondary index为全局二级索引选择主索引
【发布时间】:2019-10-26 21:09:52
【问题描述】:

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

索引键不需要具有任何来自 表

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

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

【问题讨论】:

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


    【解决方案1】:

    是的,这正是它的意思。假设您有一个包含复合主键的表,其中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 中。

    【讨论】:

    • 很好的答案,很好的解释。谢谢!
    • @SyndicatorBBB 乐于助人! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    相关资源
    最近更新 更多