Kostenloses Tool

DynamoDB-TTL-Konverter

Dekodiere einen DynamoDB-TTL-Wert in ein lesbares Datum oder wandle ein Datum in die zu speichernden Epoch-Sekunden um — mit einer Warnung, wenn ein Wert nach Millisekunden aussieht.

Unix-Timestamp

Ein DynamoDB-TTL-Attribut speichert eine Unix-Epoch-Zeit in Sekunden. Füge einen Wert ein, um ihn zu dekodieren, oder wähle unten ein Datum, um die zu speichernde Zahl zu erhalten.

UTC-Datum & -Zeit

Tue, 14 Nov 2023 22:13:20 GMT

Epoch-Sekunden (TTL-Wert)1700000000
Epoch-Millisekunden1700000000000
ISO 8601 (UTC)2023-11-14T22:13:20.000Z

Zeiten werden in UTC angezeigt. TTL-Löschungen erfolgen innerhalb von ~48 Stunden nach Ablauf.

Wie DynamoDB TTL funktioniert

Time to Live (TTL) lässt DynamoDB Items automatisch ohne Zusatzkosten ablaufen. Du bestimmst ein Number-Attribut als TTL-Attribut; sein Wert ist ein Unix-Epoch-Timestamp in Sekunden. Ein Hintergrundprozess vergleicht die TTL jedes Items mit der aktuellen Zeit und löscht Items, deren Zeit abgelaufen ist — typischerweise innerhalb von 48 Stunden, auf Best-Effort-Basis.

Da der Wert in Sekunden angegeben wird, ist ein Millisekunden-Timestamp der TTL-Bug Nummer eins: Ein Wert von JavaScripts Date.now() ist 1000× zu groß, sodass der Ablauf des Items in ferner Zukunft liegt und es nie entfernt wird. Dieser Konverter erkennt die Einheit automatisch und markiert diesen Fall, damit du ihn abfängst, bevor er in Produktion geht.

Items automatisch ablaufen zu lassen ist ein Teil der Dimensionierung einer Tabelle — der DynamoDB-TTL-Guide behandelt das Aktivieren, das Nachfüllen von Werten und das Herausfiltern abgelaufener Items aus Lesevorgängen.

Häufig gestellte Fragen

Welches Format verwendet ein DynamoDB-TTL-Attribut?

Ein DynamoDB-Time-to-Live-(TTL)-Attribut muss ein Number sein, das einen Unix-Epoch-Timestamp in Sekunden enthält — die Anzahl der Sekunden seit dem 1970-01-01 UTC. DynamoDB vergleicht diesen Wert mit der aktuellen Zeit und löscht das Item, sobald er in der Vergangenheit liegt. Es müssen Sekunden sein, keine Millisekunden und kein ISO-Datums-String.

Warum löscht meine DynamoDB TTL keine Items?

Die häufigste Ursache ist das Speichern von Millisekunden statt Sekunden. Ein Millisekundenwert wie 1700000000000, als Sekunden gelesen, ergibt ein Datum Zehntausende von Jahren in der Zukunft, sodass das Item nie abläuft. Teile durch 1000. Stelle außerdem sicher, dass TTL für die Tabelle aktiviert ist und auf das richtige Attribut verweist — Items ohne Wert in diesem Attribut laufen nie ab.

Wie lange nach der TTL-Zeit löscht DynamoDB ein Item?

DynamoDB löscht abgelaufene Items typischerweise innerhalb weniger Tage nach dem Ablaufzeitpunkt — AWS dokumentiert ein Best-Effort-Fenster von bis zu 48 Stunden, unter Last auch länger. Abgelaufene Items können in Lesevorgängen, Scans und Queries noch erscheinen, bis der Hintergrundprozess sie entfernt; filtere daher auf das TTL-Attribut, wenn du sie sofort ausblenden musst.

Muss die TTL-Zeit in der Zukunft liegen?

Nein. Wenn du einen TTL-Wert schreibst, der bereits in der Vergangenheit liegt, wird das Item sofort zum Löschen freigegeben und beim nächsten Hintergrunddurchlauf entfernt. Die TTL auf die aktuellen Epoch-Sekunden zu setzen ist eine gängige Methode, um ein Item für eine baldige Löschung einzuplanen.

Mit DynamoDB ohne die Console arbeiten

DynoTable ist ein schneller Desktop-Client für DynamoDB — durchsuche Tabellen, führe SQL-artige Queries aus und bearbeite Items lokal.