我得到了这样的表键架构:
KeySchema: []*dynamodb.KeySchemaElement{{
AttributeName: aws.String("address"),
KeyType: aws.String(dynamodb.KeyTypeHash),
}, {
AttributeName: aws.String("tx_id"),
KeyType: aws.String(dynamodb.KeyTypeRange),
}},
这样写记录:
for _, storeKey := range t.StoreKeys() {
mainItem["address"], err = dynamodbattribute.Marshal(storeKey)
if err != nil {
return err
}
mainTxPut := dynamodb.PutRequest{
Item: mainItem,
}
writeRequests = append(writeRequests, &dynamodb.WriteRequest{
PutRequest: &mainTxPut,
})
}
但是当使用不同的地址值、相同的 tx_id 时,我得到了错误: ValidationException:提供的项目键列表包含重复项
因为 hashkey 不同,我应该使用不同的 key 。那么为什么 dynamodb 告诉我我的 key 重复了?
最佳答案
我强烈建议您添加一些日志记录,以确保批处理中没有重复项。当您遇到异常时,只需记录该批处理以进行检查。
项目必须具有相同的主键才能重复。
关于database - DynamoDB批量写入,不同的哈希键,相同的范围键。但提供的项目键列表包含重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75690884/