временная метка DynamodB зарезервированное имя выражение-атрибут-имя - PullRequest
0 голосов
/ 22 апреля 2019

Структура таблицы DynamoDb:

Primary key: userId, Sort key: timestamp

Я создал этот запрос:

aws dynamodb query \
    --table-name QAClusteredData \
    --key-condition-expression 'userId= :user_id AND timestamp BETWEEN :t1 AND :t2' \
    --expression-attribute-values '{
        ":user_id": {"S": "ec2e598f-cff8-4648-a120-3baf18e5102c"}, 
        ":t1": {"S": "1550481826"}, 
        ":t2": {"S": "1550662412"}
    }' \
    --region us-east-1

получено: "An error occurred (ValidationException) when calling the Query operation: Invalid KeyConditionExpression: Attribute name is a reserved keyword; reserved keyword: timestamp"

пробовал:

aws dynamodb query \
    --table-name QAClusteredData \
    --key-condition-expression 'userId= :user_id AND timestamp BETWEEN :t1 AND :t2' \
    --expression-attribute-names '{"#ts":"timestamp"}' \
    --expression-attribute-values '{
        ":user_id": {"S": "ec2e598f-cff8-4648-a120-3baf18e5102c"}, 
        ":t1": {"S": "1550481826"}, 
        ":t2": {"S": "1550662412"}
    }' \
    --region us-east-1

все еще получаете ту же ошибку, какие-либо предложения?

Ответы [ 2 ]

1 голос
/ 22 апреля 2019

Мой плохой,

пришлось поставить #ts BETWEEN :t1 AND :t2 а не timestamp BETWEEN :t1 AND :t2

Полный запрос:

aws dynamodb query \
    --table-name QAClusteredData \
    --key-condition-expression 'userId= :user_id AND #ts BETWEEN :t1 AND :t2' \
    --expression-attribute-names '{"#ts":"timestamp"}' \
    --expression-attribute-values '{
        ":user_id": {"S": "ec2e598f-cff8-4648-a120-3baf18e5102c"}, 
        ":t1": {"S": "1550481826"}, 
        ":t2": {"S": "1550662412"}
    }' \
    --region us-east-1
0 голосов
/ 22 апреля 2019

Ваш код содержит запрещенное ключевое слово: :user_id AND timestamp BETWEEN :t1 AND :t2'

timestamp - зарезервированное слово в DynamoDB.Вот список зарезервированных ключевых слов в DynamoDB: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html

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