对于dynamodb扫描或查询,使用任意值作为`ExclusiveStartKey`是否安全?

问题描述 投票:1回答:1

ExclusiveStartKey的DynamoDB API参考(对于ScanQuery),我们有:

此操作将评估的第一个项的主键。使用上一操作中为LastEvaluatedKey返回的值。

我有一个用例,其中我想使用ExclusiveStartKey从特定的已知位置开始扫描(而不是使用它来继续现有扫描)。上面的第一句听起来确实没问题,但第二句却没有。第二句让我停下来特别是因为它不是“你应该[...]”或“你必须[...]”,只是一个没有背景或解释的普通命令。

我在这方面使用ExclusiveStartKey在SO或其他地方找不到任何例子。它似乎有效,但API参考似乎含糊不清是否合同。我应该寻求不同的路线吗?有没有人在实践中使用过这个并且可以确认它是否可靠?

amazon-web-services amazon-dynamodb dynamodb-queries
1个回答
2
投票

是的,您应该将ExclusiveStartKey用于此用例,因为这就是它的用途。如果您遇到第一次打电话而且还不知道从哪里开始的情况(没有LastEvaluatedKey),那么您可以简单地不包括ExclusiveStartKey,因为它是可选的。

我认为第二句很明显暗示“应该”,并且他们没有说“必须”的原因是因为你可以在技术上使用任何扫描的键,但你可以,并且在正确扫描所有对象的情况下,应该使用LastEvaluatedKey。

© www.soinside.com 2019 - 2024. All rights reserved.