DynamoDB:如何执行条件写入以强制执行唯一的Hash + Range键

sti*_*kos 6 amazon-web-services amazon-dynamodb

我正在使用DynamoDB来存储事件.它们存储在1个事件表中,其中包含散列键"Source ID"和范围键"version".每当源发生新事件时,我想添加一个带有源ID和增加版本号的新项目.

是否可以指定条件写入,以便重复项(相同的散列键和相同的范围键)永远不会存在?如果是这样,你会怎么做?

我已经成功地为只有一个哈希键的表做了这个:

Map<String, ExpectedAttributeValue> expected = new HashMap<String, ExpectedAttributeValue>();
expected.put("key", new ExpectedAttributeValue().withExists(false));
Run Code Online (Sandbox Code Playgroud)

但不知道如何处理哈希+范围键....

yad*_*taf 3

我不太了解 Java SDK,但您可以在range_keyhash_key.

也许更好的主意是使用时间戳而不是版本号?除此之外,还有一些技术可以生成唯一的 id。