AWS DynamoDB проверяет уникальность перед добавлением нового элемента - PullRequest
0 голосов
/ 25 января 2019

Я хочу проверить, является ли id (первичный ключ) нового элемента уникальным или нет, прежде чем добавлять в DynamoDB

, что может быть лучшим вариантом как для производительности, так и для стоимости.


Возможные варианты проверки уникальности первичного ключа: ...

1) Get (если возвращается пустой массив, это означает, что нет соответствующих данных. Это также означает, что он уникален)

2) Сканирование (очевидно, худшая идея как по производительности, так и по стоимости)

3) Запрос


++ Еще одна мысль, если есть какой-либо способ принудительно игнорировать входящиезапрос в настройках DynamoDB (отменить входящий запрос или отправить сообщение об ошибке), логика может быть намного проще.

В обычном RDB, если мы попытаемся добавить новый элемент с существующим первичным ключом, база данных вернет сообщение об ошибке без изменения исходногоданные хранятся в базе данных.

однако в DynamoDB, независимо от того, помещаем ли мы элемент или обновляем элемент с существующим первичным ключом, он просто молча меняет исходные данные, хранящиеся в базе данных.

имеюту тебя идея?

1 Ответ

0 голосов
/ 25 января 2019

Как вы упомянули, DynamoDB обновит элемент указанным вами первичным ключом, если он уже существует.В приведенной ниже статье показано, как выполнить условный запрос PUT, который не будет выполнен при попытке вставить уже существующий элемент (на основе первичного ключа).

http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_PutItem.html

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...