【问题标题】:Multiple attributes as Hash Key in Dynamo DBDynamo DB 中的多个属性作为哈希键
【发布时间】:2020-06-17 14:52:46
【问题描述】:

我正在尝试使用 CloudFormation 创建一个 Dynamo DB 表。我想要将两个属性组合为哈希键。例如,

   ExampleTable:
    Type: "AWS::DynamoDB::Table"
    Description: This is an example table
    Properties:
      TableName: { 'Fn::Sub': 'example'}
      StreamSpecification:
        StreamViewType: NEW_AND_OLD_IMAGES
      AttributeDefinitions:
        - AttributeName: "a1"
          AttributeType: "S"
        - AttributeName: "a2"
          AttributeType: "N"
        - AttributeName: "a3"
          AttributeType: "S"
        - AttributeName: "a4"
          AttributeName: "S"
      KeySchema:
        - AttributeName: "a1"
          KeyType: "HASH"
        - AttributeName: "a2"
          KeyType: "HASH"
        - AttributeName: "a3"
          KeyType: "Range"
        - AttributeName: "a4"
          KeyType: "Range"

在这种情况下,我希望“a1”和“a2”的组合成为哈希键,同样,我希望“a3”和“a4”的组合成为我的范围键。

  • 哈希键:a1, a2
  • 范围键:a3、a4

我如何实现这一目标?我正在寻找不使用 GSI 或 LSI 的解决方案。

【问题讨论】:

    标签: database amazon-web-services amazon-dynamodb amazon-cloudformation


    【解决方案1】:

    我在这里看不到您计划的完整图片。如果你能解释更多的计划,那就更好了。

    正如 Jason 所解释的,对于 dynamodb 表,LeadingKey(哈希键)和或 SortKey(范围键)最多有 2 个键。

    【讨论】:

      【解决方案2】:

      您只能将一个字段作为两个键中的每一个,因此一个 HASH 和一个 RANGE 键。如果您需要多个字段,则需要创建一个复合键。例如,为 HASH 创建一个名为 a1a2 的属性,为范围创建一个名为 a3a4 的属性。

      【讨论】:

        猜你喜欢
        • 2022-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 2012-01-02
        • 2016-01-28
        • 1970-01-01
        相关资源
        最近更新 更多