web-dev-qa-db-fra.com

UUID pour DynamoDB?

Est-il possible de demander à DynamoDB de générer automatiquement des identifiants uniques lors de l'ajout de nouveaux éléments à une table?

J'ai remarqué que l'API Java mentionnait @DynamoDBAutoGeneratedKey. Je suppose donc qu'il existe un moyen de faire fonctionner cela avec PHP également.

Si tel est le cas, le code de l'application génère-t-il ces ID ou est-il effectué du côté de DynamoDB?

32
Adam

Bonne question - bien que cela soit conceptuellement possible, cela ne semble pas actuellement disponible en tant que fonctionnalité au niveau de l'API DynamoDB, dans la mesure où ni CreateTable , ni PutItem ne font référence à une telle fonctionnalité.

La notation @DynamoDBAutoGeneratedKey que vous avez remarquée est un annotation Java , c'est-à-dire un sucre syntaxique offert par le SDK Java:

Une annotation, dans le langage de programmation informatique Java, est un .__ spécial. forme de métadonnées syntaxiques pouvant être ajoutées au code source Java.

En tant que tel, @DynamoDBAutoGeneratedKey fait partie des Amazon DynamoDB Annotations proposées dans le modèle Object Persistence Model au sein de l'API de haut niveau du SDK Java (voir Utilisation du modèle de persistance d'objet avec Amazon DynamoDB } ):

Marque une propriété de clé de hachage ou de clé de plage comme générée automatiquement. Le Object Persistence Model générera un UUID aléatoire lors de l'enregistrement de ces les attributs. Seules les propriétés de chaîne peuvent être marquées comme générées automatiquement clés.

22
Steffen Opel

En utilisant la bibliothèque de mappeur de données AWS dynamodb basée sur un schéma dans Node.js, la clé de hachage (id) est générée automatiquement. Les identifiants générés automatiquement sont basés sur uuid v4.

Pour plus de détails, jetez un coup d’œil sur le paquet aws suivant.

Data Mapper avec annotation

Package Data Mapper pour Javascript

Échantillon snipet

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

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

Tout en travaillant avec dynamodb en javascript avec nodejs. J'utilise le module npm uuid pour générer une clé unique.

Ex:

id = uuid.v1 ();

se référer: uuid npm

0
Sam