2016-08-04 3 views
0

У меня есть требование наличия поля автоматического приращения в базе данных dynamoDB. Я мог бы справиться с этим, написав собственные алгоритмы, но мне просто нужно знать, предоставляет ли DynamoDB или AWS такое решение, чтобы я мог использовать это. Кто-нибудь знает об этомПоддержка поля автоинкремента в dynamoDB

ответ

1

DynamoDB не предоставляет эту функцию. Ключ с автоматическим приращением обычно используется просто как простой способ получить уникальный идентификатор для каждой записи в таблице базы данных. Существуют и другие способы генерации уникальных идентификаторов, таких как UUID, которые не требуют, чтобы вы знали о значениях, ранее сохраненных в таблице. Я рекомендую вам оценить ваш вариант использования, чтобы определить, разрешат ли UUID вашу проблему.

Если вам абсолютно необходим инкрементный цифровой ключ в таблице DynamoDB, то один из способов сделать это - иметь отдельную таблицу, в которой хранится ваше последнее значение автоматического увеличения, и использовать счетчики AtomamoDB Atomic для увеличения этого значения, когда вы нужно ключевое значение для новой записи. Конечно, это означало бы, что теперь вам нужно выполнить обновление в одной таблице плюс вставить в другую таблицу каждый раз, когда у вас есть новая запись, поэтому это не идеальный сценарий.

+1

+1 - не слишком упоминает, что последнее значение идентификатора становится шеей бутылки, что существенно снижает теоретическую максимальную пропускную способность для записи в 1000 IOPS - определенно не является масштабируемым решением для чего угодно, кроме тривиальных нагрузок. –

+0

Спасибо, Марк, мне абсолютно нужно это автоматическое приращение и поскольку dynamoDB не имеет этой встроенной функции, мне нужно будет найти какую-то идею, которую вы рекомендовали. Кстати, это атомные счетчики, мы должны управлять синхронизацией потоков здесь самим собой? или Есть ли счетчик атомных батарей dynamo db? Что произойдет, если несколько потоков прочитают этот атомный счетчик в то же время. –

+0

@JavaProgrammer DynamoDB Atomic Counters являются потокобезопасными. http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html#WorkingWithItems.AtomicCounters –

Смежные вопросы