0

私にとって、「ハッシュ」という言葉は、DynamoDB 内の複数のフィールドで構成されるハッシュが可能であることを示しています。ただし、私が見つけたすべての記事は、単一の値のみで構成される「ハッシュ」を示しています...これは私には意味がありません。

私のテーブルは次のフィールドで構成されています。

  • uid (PK)
  • プロバイダー
  • 識別子
  • から
  • date_received
  • date_processed

目標は、アプリがデータを取得する方法に基づいて複数のインデックスを作成することです (もちろん、PK 以外で)。組み合わせは次のとおりです。

  1. プロバイダーのメッセージ識別子による:必要な
    ハッシュ: プロバイダー + 識別子

  2. 会話メッセージ識別子による:
    望ましいハッシュ: from + to

  3. 受け取った日付までに処理された場合
    希望のハッシュ: _ac

  4. 受け取った日付までに処理された場合
    希望のハッシュ: アカウント

これは、私が試して成功しなかったものの例の1つです...

  MessagesTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: messages
      BillingMode: PAY_PER_REQUEST
      AttributeDefinitions:
        - AttributeName: uid
          AttributeType: S
        - AttributeName: account
          AttributeType: S
        - AttributeName: provider
          AttributeType: S
        - AttributeName: identifier
          AttributeType: S
        - AttributeName: from
          AttributeType: N
        - AttributeName: to
          AttributeType: N
        - AttributeName: _ac
          AttributeType: N
        - AttributeName: _ap
          AttributeType: N
      KeySchema:
        - AttributeName: uid
          KeyType: HASH
      GlobalSecondaryIndexes:
        - IndexName: idxConversation
          KeySchema:
            - AttributeName: from:to
              KeyType: HASH
            - AttributeName: _ac
              KeyType: RANGE
          Projection:
            ProjectionType: KEYS_ONLY
        - IndexName: idxProviderMessage
            KeySchema:
              - AttributeName: provider:identifier
                KeyType: HASH
              - AttributeName: _ac
                KeyType: RANGE
            Projection:
              ProjectionType: KEYS_ONLY
4

1 に答える 1