2014-04-09 7 views
26

Ich sehe, dass DynamoDB im Wesentlichen auf three data types beschränkt ist: String, Number und Binary. Das scheint für die Speicherung ein Datum oder Zeitstempel zwei Optionen zu verlassen:DynamoDB am effizientesten Datumstyp

  • String eines 8601-Datum/Uhrzeit oder Unix-Zeitstempel
  • Anzahl eines Unix-Zeitstempel

werde ich Sie müssen die Ergebnisse sortieren, indem Sie diesen Datums-/Zeitstempel als Bereichsschlüssel verwenden und scanIndexForward verwenden. Kann man sagen, welcher Ansatz effizienter wäre?

+2

Ich weiß, das ist eine ein Jahr alte Frage, aber hast du jemals eine Antwort darauf gefunden? – user2924127

Antwort

20

Ich weiß nicht, dass es notwendigerweise effizienter ist, aber wir hatten einen guten Erfolg mit einem Unix-Zeitstempel als Bereichsschlüssel. Es war schnell (unter 20ms Latenz, manchmal unter 10ms) für Abfragen und lässt uns "früheste zu spät" oder "neueste zu früheste" mit dem scanIndexForward Flag sortieren.

Der Nachteil ist, dass es beim Betrachten der Rohtabellen schwierig sein kann, zwei Zeitstempel auf einen Blick zu vergleichen, aber es ist einfach genug, einen Zeitstempel in einen Datumstyp in der Sprache Ihrer Wahl zu konvertieren.

0

Ich habe gerade eine DescribeTable für eine meiner DynamoDB -Tabellen erstellt und festgestellt, dass DynamoDB selbst die CreationDateTime der Tabelle als UNIX-Timestamp-Gleitkommazahl speichert. Ich nehme an, dass sie das aus einem bestimmten Grund getan haben.

Verwandte Themen