DynamoDB incremento automático de ID y time del server (iOS SDK)

¿Hay una opción en DynammoDB para almacenar ID incrementada automáticamente como key principal en tablas? También necesito almacenar el time del server en las tablas como los campos "creados en" (p. Ej., Usuario creado en). Pero no encuentro ninguna manera de get el time del server de DynamoDB o de cualquier otro service de AWS.

¿Pueden ustedes ayudarme con,

  1. Trabajar con identificadores incrementados automáticamente en tablas DyanmoDB
  2. Almacenar el time del server en tablas para campos "creados en" como.

Gracias.

En realidad, hay muy pocas funciones en DynamoDB y esta es precisamente su principal fortaleza. Sencillez.

  • No hay manera de generar ID automáticamente ni UUID.
  • No hay forma de generar automáticamente una date

Para el problema de "date", debería ser fácil de generar en el lado del cliente. ¿Puedo sugerirle que use el formatting de date ISO 8601? Es tanto progtwigdor como amigable con la computadora.

La mayoría de las veces, hay una mejor manera que usar identificadores automáticos para artículos. Esto es a menudo un mal hábito tomado del mundo de SQL o MongoDB. Por ejemplo, un correo electrónico o un inicio de session hará una ID perfecta para un usuario. Pero sé que hay casos específicos donde las identificaciones pueden ser útiles.

En estos casos, necesita crear su propio sistema. En esta respuesta SO y este artículo de la documentation de DynamoDB-Mapper, explico cómo hacerlo. Espero que ayude

En lugar de trabajar con identificadores incrementados automáticamente, considere trabajar con GUID. Obtiene mayor performance teórico y mejor event handling fallas, y lo único que pierde es el order de time natural, que se maneja mejor por dates.

Mayor performance porque no necesita pedirle a Dynamo que genere las siguientes ID disponibles (lo que requeriría algún recurso en algún lugar para get un locking, get algunos numbers y asegurarse de que nada más obtenga esos numbers). Se produce un mejor event handling fallas cuando pierde su connection con Dynamo (el Dynamo baja, o está en estado de ráfaga y su aplicación está haciendo más trabajo que el performance provisionado actualmente). Una aplicación de solo escritura puede continuar "trabajando" y generando datos completos con ID, haciendo queue para escribir en dinamo, y nunca se preocupe por las colisiones de ID.

He creado un pequeño service web solo para este propósito. Consulte esta publicación de blog, que explica cómo estoy usando stateful.co con DynamoDB para simular la funcionalidad de incremento automático: http://www.yegor256.com/2014/05/18/cloud-autoincrement-counters.html

Básicamente, registra un contador atómico en stateful.co e incrementarlo cada vez que necesita un nuevo valor, a través de RESTful API.