2016-05-30 6 views
1

Я выполнение следующих dynamoDB параметров запроса с использованием библиотеки AWS-динамо в С.Amazon DynamoDB ValidationException

{ "TableName": "table4", "KeyConditionExpression": "#yr = :yyyy and ts between :letter1 and :letter2", "ExpressionAttributeNames": { "#yr": "userid" }, "ExpressionAttributeValues": { ":yyyy": "abc", ":letter1": 1, ":letter2": 2 } } 

Но я получил ошибку

"__type":"com.amazon.coral.validate#ValidationException","message":"1 validation error detected: Value null at 'hashKeyValue' failed to satisfy constraint: Member must not be null" 

это моя структура таблицы

table4 
{ 
    "Table": { 
     "TableSizeBytes": 66, 
     "KeySchema": [ 
      { 
       "AttributeName": "userid", 
       "KeyType": "HASH" 
      }, 
      { 
       "AttributeName": "ts", 
       "KeyType": "RANGE" 
      } 
     ], 
     "CreationDateTime": 1464617195.039, 
     "ItemCount": 3, 
     "AttributeDefinitions": [ 
      { 
       "AttributeName": "ts", 
       "AttributeType": "N" 
      }, 
      { 
       "AttributeName": "userid", 
       "AttributeType": "S" 
      } 
     ], 
     "ProvisionedThroughput": { 
      "ReadCapacityUnits": 1, 
      "WriteCapacityUnits": 1, 
      "LastDecreaseDateTime": 1464683346.007, 
      "NumberOfDecreasesToday": 1 
     }, 
     "TableStatus": "ACTIVE", 
     "TableName": "table4", 
     "TableArn": "arn:aws:dynamodb:us-east-1:456456456:table/table4" 
    } 
} 
+1

Что является ключом разделов и сортировки ключ таблицы? Вы включили поле ключа раздела в KeyConditionExpression? – notionquest

+0

раздел key = userid, sortkey = ts –

ответ

0

Ключ раздела должен находиться в ключевом выражении. Включите ключ раздела и попробуйте. Когда вы запрашиваете dynamodb, ключ раздела должен. При сканировании dynamodb ключ раздела является необязательным. Это основное различие между запросом vs scan в dynamodb.

+0

i уже добавлен ключ раздела (userid) в моем выражении keycondition. –

+0

Не могли бы вы запустить команду описать таблицу и вставить здесь структуру таблицы? – notionquest

+0

Я добавил структуру таблицы в свой вопрос –

0

Вот рабочий запрос и структура таблицы.

{ TableName: 'table4', 
KeyConditionExpression: '#userid = :userid AND #ts between :ts1 AND :ts2', 
ExpressionAttributeNames: { '#userid': 'userid', '#ts': 'ts' }, 
ExpressionAttributeValues: { ':userid': 'user1', ':ts1': 1, ':ts2': 2 } } 

выход запроса: -

{"userid":{"S":"user1"},"ts":{"N":"1"}} 

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

{"Table":{"AttributeDefinitions": 
     [{"AttributeName":"userid","AttributeType":"S"}, 
    {"AttributeName":"ts","AttributeType":"N"}], 
"TableName":"table4","KeySchema": 
[{"AttributeName":"userid","KeyType":"HASH"},{"AttributeName":"ts","KeyType":"RANGE"}], 
"TableStatus":"ACTIVE", 
"CreationDateTime":"2016-05-31T12:46:08.351Z", 
"ProvisionedThroughput":{"LastIncreaseDateTime":"1970-01-01T00:00:00.000Z","LastDecreaseDateTime":"1970-01-01T00:00:00.000Z","NumberOfDecreasesToday":0, 
"ReadCapacityUnits":10,"WriteCapacityUnits":10}, 
"TableSizeBytes":15,"ItemCount":1,"TableArn": 
"arn:aws:dynamodb:ddblocal:000000000000:table/table4"}} 
+0

Решает ли ваша проблема ваша проблема? Если да, не могли бы вы принять ответ? – notionquest

Смежные вопросы