Несколько атрибутов, таких как Ha sh Key в DB Dynamo - PullRequest
2 голосов
/ 05 марта 2020

Я пытаюсь создать таблицу Dynamo DB, используя CloudFormation. Я хочу, чтобы два атрибута были объединены как ключ ha sh. Например,

   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" была клавишей ha sh, и аналогично, я хочу, чтобы комбинация "a3" и "a4 «быть моим ключом диапазона.

  • Ха sh клавиша: a1, a2
  • Клавиша диапазона: a3, a4

Как мне этого добиться? Я ищу решение, которое не использует GSI или LSI.

Ответы [ 2 ]

4 голосов
/ 05 марта 2020

Вы можете иметь только одно поле в качестве каждой из двух клавиш, поэтому один HA SH и один ключ RANGE. Если вам нужно несколько полей, вам нужно создать составной ключ. Например, создайте атрибут с именем a1a2 для HA SH и a3a4 для диапазона.

0 голосов
/ 05 марта 2020

Я не могу видеть полные изображения вашего плана здесь. Если бы вы могли объяснить больше плана, это было бы лучше.

Как объяснил Джейсон, у нас будет ключ max 2 для таблицы DynamodB, LeadingKey (Ha sh Key) и или SortKey (Range Key).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...