Безопасно ли использовать произвольные значения в качестве `ExclusiveStartKey` для сканирования или запроса динамодана? - PullRequest
0 голосов
/ 21 февраля 2019

Из справочника по API DynamoDB для ExclusiveStartKey (для Scan и Query) мы имеем:

Первичный ключ первого элемента, который будет обрабатываться этой операцией.Используйте значение, которое было возвращено для LastEvaluatedKey в предыдущей операции.

У меня есть вариант использования, в котором я хотел бы использовать ExclusiveStartKey для запуска сканирования с определенной известной позиции (в отличие отиспользовать его для продолжения существующего сканирования).Первое предложение выше звучит так, как будто это нормально, а второе предложение - нет.Это второе предложение дает мне паузу, особенно потому, что это не «вы должны [...]» или «вы должны [...]», а просто старый императив без контекста или толкования.

Я могуне найти примеров на SO или в других местах людей, использующих ExclusiveStartKey таким образом.Кажется, что это работает, но справка по API кажется расплывчатой ​​из-за того, что это выходит за рамки контракта.Должен ли я искать другой маршрут?Кто-нибудь использовал это на практике и может подтвердить, что это надежно?

1 Ответ

0 голосов
/ 22 февраля 2019

Да, вы должны использовать ExclusiveStartKey для этого варианта использования, поскольку именно для этого он и был создан.Если у вас есть случай, когда вы делаете свой первый вызов и еще не знаете, с чего начать (без LastEvaluatedKey), то вы можете просто не включать ExclusiveStartKey, так как это необязательно.

Я думаю, что второе предложение довольно ясноподразумевается «должен», и причина, по которой они не сказали «должен», заключается в том, что вы можете технически использовать любой отсканированный ключ, но вы можете, и в случае правильного сканирования всех объектов, должен использовать LastEvaluatedKey.

...