如果将主键属性定义为字符串类型属性,则 以下附加限制适用:
- 对于一个简单的主键,第一个属性值(分区键)的最大长度为2048个字节。
- 对于复合主键,第二个属性值(排序键)的最大长度为1024个字节。
是否意味着在复合主键的情况下,分区键的最大长度不受限制?
(每个项目大小限制一般为400 KB,但问题与此无关)
答案 0 :(得分:2)
我很确定它只是说2048字节是所有分区键的限制,如果你碰巧有一个排序键,那么该排序键的限制为1024字节。在this page上,这似乎也是他们所说的更清楚。
答案 1 :(得分:0)
ValidationException
错误的项目。
# Create test table
aws dynamodb create-table --table-name testdb5 --attribute-definitions '[{"AttributeName": "Id", "AttributeType": "S"}, {"AttributeName": "LastName", "AttributeType": "S"}]' --key-schema '[{"AttributeName": "Id", "KeyType": "HASH"}, {"AttributeName": "LastName", "KeyType": "RANGE"}]' --provisioned-throughput '{"ReadCapacityUnits": 5, "WriteCapacityUnits": 5}'
# Add an item
aws dynamodb put-item --table-name testdb5 --item '{ "Id": {"S": '$(python -c "print '\"' + 'A'*2048 + '\"'")'}, "LastName": {"S": '$(python -c "print '\"' + 'B'*1024 + '\"'")'}}'
# Delete an item
aws dynamodb delete-item --table-name testdb5 --key '{ "Id": {"S": '$(python -c "print '\"' + 'A'*2048 + '\"'")'}, "LastName": {"S": '$(python -c "print '\"' + 'B'*1024 + '\"'")'}}'