web-dev-qa-db-fra.com

Type de date le plus efficace dans DynamoDB

Je vois que DynamoDB est essentiellement limité à trois types de données : String, Number et Binary. Cela semble laisser deux options pour stocker une date ou un horodatage:

  • String d'un format date/heure 8601 ou d'un horodatage Unix
  • Nombre d'un horodatage Unix

J'aurai besoin de "trier" les résultats en utilisant cette date/horodatage comme clé de plage et en utilisant scanIndexForward. Est-il possible de dire quelle approche serait la plus efficace?

26
Eric Di Bari

Je ne sais pas si c'est forcément plus efficace, mais nous avons réussi à utiliser un horodatage Unix comme clé d'intervalle. Cela a été rapide (latence inférieure à 20 ms, parfois moins de 10 ms) pour les requêtes et nous permet de trier "du plus tôt au plus récent" ou "le plus récent au plus ancien" en utilisant le drapeau scanIndexForward.

L'inconvénient est que lorsqu'on regarde les tables brutes, il peut être difficile de comparer deux horodatages en un coup d'œil, mais il est assez facile de convertir un horodatage en un type de date dans la langue de votre choix. 

20
rpmartz

Je viens de faire un DescribeTable sur l'une de mes tables DynamoDB et j'ai remarqué que DynamoDB stockait lui-même le CreationDateTime de la table sous forme de nombre à virgule flottante d'horodatage UNIX. Je suppose qu'ils l'ont fait pour une raison.

0
osullic