【问题标题】:how is data stored in dynamo db if hash and range key are same in global secondary index如果全局二级索引中的哈希和范围键相同,数据如何存储在 dynamo db 中
【发布时间】:2018-08-02 10:37:01
【问题描述】:

我正在 dynamo db 中创建全局二级索引,现在我想知道哈希键和范围键中存储的项目是如何相同的?它们将按什么顺序存储在表中?

【问题讨论】:

    标签: amazon-dynamodb


    【解决方案1】:

    如果我没看错你的问题,你问的是两个不同的对象,每个对象在主表中都有一个唯一的主键,它们被投影到 GSI 中,在 GSI 中具有相同的 HASH/RANGE 键。

    例子

    主表

    • 哈希:hash_id
    • 范围:range_id

    GSI

    • 哈希:gsi_hash_id
    • 范围:gsi_range_id

    数据

    {
      hash_id: 123,
      range_id: 'abc',
      gsi_hash_id: 'same',
      gsi_range_id: 'also_same'
    }
    
    {
      hash_id: 234,
      range_id: 'bcd',
      gsi_hash_id: 'same',
      gsi_range_id: 'also_same'
    }
    

    简短的回答:这些项目没有特定的顺序。

    长答案:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html

    【讨论】:

    • 那么如果将新项目添加到 gsi 会发生什么情况,它们会被插入顶部、底部或任何地方
    • 没有特定的顺序意味着它可以插入到任何地方。请记住,这些文件在顺序上是等效的。如果您正在寻找特定问题的解决方案,我建议您描述一下您的用例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多