我有以下项目,不同的公司名称和记录(记录数约为110K):
Items=[{"Company":"ABCD","Frequency":"Annual","Date":"2016-03-31"},
{"Company":"ABCD","Frequency":"Quarterly","Date":"2016-03-31"},
{"Company":"ABCD","Frequency":"Quarterly","Date":"2016-06-31"},
{"Company":"ABCD","Frequency":"Quarterly","Date":"2016-09-31"}
{"Company":"ABCD","Frequency":"Quarterly","Date":"2016-12-31"}.......]
我的密钥架构是:
table = dynamodb.create_table(
TableName='table',
KeySchema=[
{'AttributeName':'Company','KeyType':'HASH'},{'AttributeName': 'Date','KeyType': 'RANGE'}
],
AttributeDefinitions=[
{'AttributeName':'Company','AttributeType':'S'},{'AttributeName':'Date','AttributeType':'S'}
],
ProvisionedThroughput={
'ReadCapacityUnits': 100,
'WriteCapacityUnits': 100
}
)
我的要求是:
答案 0 :(得分:0)
您可以使用ConditionExpression
检查现有值。只有满足条件,API操作才会成功。
如果不满足条件,您应该ConditionalCheckFailedException
。
ConditionExpression : "Company <> :companyVal AND #Date <> :dateVal",
ExpressionAttributeNames : {
'#Date' : 'Date'
},
ExpressionAttributeValues : {
":yearVal" : companyVal,
":dateVal" : dateVal
}
主键: -
主键唯一标识表中的每个项目。首要的 key可以是简单的(分区键)或复合的(分区键和排序) 键)。
在基本情况下,公司和日期的组合必须是唯一的。它不能有重复的值。