it-swarm.com.ru

UUID для DynamoDB?

Можно ли заставить DynamoDB автоматически генерировать уникальные идентификаторы при добавлении новых элементов в таблицу?

Я заметил, что Java API упоминает @DynamoDBAutoGeneratedKey, поэтому я предполагаю, что есть способ заставить это работать и с PHP.

Если да, генерирует ли код приложения эти идентификаторы или это делается на стороне DynamoDB?

32
Adam

Хороший вопрос - хотя концептуально это возможно, в настоящее время это, по-видимому, недоступно в качестве функции уровня API DynamoDB, поскольку ни CreateTable , ни PutItem не ссылаются на такую ​​функциональность.

Заметка @DynamoDBAutoGeneratedKey, которую вы заметили, представляет собой аннотация Java , то есть синтаксический сахар, предлагаемый Java SDK:

Аннотация на языке программирования Java - это особый форма синтаксических метаданных, которые могут быть добавлены в исходный код Java.

Таким образом, @DynamoDBAutoGeneratedKey является одной из Amazon DynamoDB Annotations, предлагаемых как часть Object Persistence Model в высокоуровневом API Java SDK (см. Использование Object Persistence Model с Amazon DynamoDB ):

Помечает свойство ключа хеша или ключа диапазона как автоматически сгенерированное. Модель сохраняемости объекта будет генерировать случайный UUID при сохранении этих атрибутов. Только свойства String могут быть помечены как автоматически сгенерированные ключи.

22
Steffen Opel

Используя основанную на схеме библиотеку AWS dynamicodb data data в Node.js, ключ (id) хеша будет сгенерирован автоматически. Автоматически сгенерированные идентификаторы основаны на uuid v4.

Для более подробной информации, посмотрите на следующий пакет aws.

Data Mapper с аннотацией

Пакет Data Mapper для Javascript

Образец сниппета

@table('my_table')
class MyDomainClass {
    @autoGeneratedHashKey()
    id: string;

    @rangeKey({defaultProvider: () => new Date()})
    createdAt: Date;
}
1
Ashok JayaPrakash

Во время работы с DynamodB в JavaScript с nodejs. Я использую модуль npm uuid для генерации уникального ключа.

Пример:

iD = uuid.v1 ();

обратитесь: UUID НПМ

0
Sam