¿Qué tipo de datos se deben utilizar para la marca de tiempo en DynamoDB?


Soy nuevo en DynamoDB. Deseo crear una tabla que use DeviceID como clave hash, Timestamp como mi clave de rango y algunos datos.

{ DeviceID: 123, Timestamp: "2016-11-11T17:21:07.5272333Z", X: 12, Y: 35 }

En SQL, podemos usar el tipo datetime para Timestamp, pero en DynamoDB no hay ninguno.

  1. ¿Qué tipo de datos debo usar? ¿Cuerda? ¿Número?
    introduzca la descripción de la imagen aquí

  2. Para el tipo de datos elegido, ¿en qué tipo de formato de marca de tiempo debo escribir? Formato ISO (e.g: 2016-11-11T17:21:07.5272333 Z) o epoch time (e. g: 1478943038816)?

  3. Necesito buscar en la tabla a través de un rango de tiempo, por ejemplo: 1/1/2015 10: 00: 00am hasta 31/12/2016 11:00: 00pm

Author: Dennis, 2016-11-12

1 answers

El tipo de datos de cadena debe usarse para la Fecha o la marca de tiempo.

Puede usar el tipo de datos String para representar una fecha o una marca de tiempo. Una forma de hacer esto es mediante el uso de cadenas ISO 8601, como se muestra en estos ejemplos:

2016-02-15

2015-12-21T17:42:34Z

20150311T122706Z

Tipo de datos DynamoDB para Fecha o Marca de tiempo

Sí, las consultas de rango son compatibles cuando la fecha se almacena como cadena. El ENTRE se puede utilizar en FilterExpression. Tengo los elementos en el resultado usando las siguientes expresiones de filtro.

Expresión del filtro sin tiempo:-

FilterExpression : 'createdate between :val1 and :val2',
ExpressionAttributeValues : {
        ':hkey' : year_val,
        ':rkey' : title,
        ":val1" : "2010-01-01",
        ":val2" : "2010-12-31"
    }

Expresión del filtro con el tiempo:-

FilterExpression : 'createdate between :val1 and :val2',
    ExpressionAttributeValues : {
        ':hkey' : year_val,
        ':rkey' : title,
        ":val1" : "2010-01-01T00:00:00",
        ":val2" : "2010-12-31T00:00:00"
    }

Valores de la Base de Datos:-

Formato 1-con zona horaria:

{"Item":{"createdate":{"S":"2010-12-21T17:42:34+00:00"},"title":{"S":"The Big New Movie 2010"},"yearkey":{"N":"2010"},"info":{"M":{"rating":{"N":"0"},"plot":{"S":"Nothing happens at all."}}}}}

Formato 2-sin zona horaria:-

{"Item":{"createdate":{"S":"2010-12-21T17:42:34Z"},"title":{"S":"The Big New Movie 2010"},"yearkey":{"N":"2010"},"info":{"M":{"rating":{"N":"0"},"plot":{"S":"Nothing happens at all."}}}}}
 29
Author: notionquest,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-12 18:18:33