query - formato fecha datetime c#
DynamoDB tipo de fecha más eficiente (2)
Acabo de hacer un DescribeTable en una de mis tablas DynamoDB y noté que DynamoDB mismo almacena el CreationDateTime de la tabla como un número de coma flotante de marca de tiempo de UNIX. Supongo que lo hicieron por una razón.
Veo que DynamoDB está esencialmente limitado a tres tipos de datos : cadena, número y binario. Eso parece dejar dos opciones para almacenar una fecha o marca de tiempo:
- Cadena de formato de fecha / hora 8601 o marca de tiempo Unix
- Número de una marca de tiempo de Unix
Tendré que ''ordenar'' los resultados usando esta fecha / marca de tiempo como una tecla de rango y usando scanIndexForward. ¿Es posible decir qué enfoque sería más eficiente?
No sé si es necesariamente más eficiente, pero hemos tenido éxito usando una marca de tiempo de Unix como teclas de rango. Ha sido rápido (menos de 20 ms de latencia, a veces menos de 10 ms) para las consultas y nos permite ordenar "más temprano a más reciente" o "lo último a lo más temprano" usando el indicador scanIndexForward
.
La desventaja es que al mirar las tablas sin formato puede ser difícil comparar dos marcas de tiempo de un vistazo, pero es bastante fácil convertir una marca de tiempo en un tipo de fecha en el idioma de su elección.