So speichern Sie Zeitstempel in DynamoDB

So speichern Sie Zeitstempel in DynamoDB
Zeitstempel sind eine der wichtigsten Datenbankfunktionen und eine Aufgabe, die es wert ist, gemeistert zu werden. DynamoDB bietet auch verschiedene Möglichkeiten, einen Zeitstempel darzustellen und zu speichern. Natürlich können Sie bequem Zeitstempel in DynamoDB als Tabellenattribute speichern.

Sie können entweder einen Zeitstempel als Zahlendatentyp oder einen String -Datentyp speichern. Als Zahlendatentyp gespeicherte Zeitstempel haben einen Unix -Zeitstempelwert (Sekunden oder Millisekunden), während die als String -Datentypen gespeicherten ISO 8601 -Stringformate enthalten.

Im Idealfall erfordert die Arbeit mit Zeitstempeln auch unschlagbare Präzision. Je präziser Ihre Zeitstempel sind, desto leichter sind sie abfragen. Sie können beispielsweise das Jahr der Erstellung für jeden Artikel auf Ihrer Tabelle angeben oder genauer werden, indem Sie die Minute, Sekunde oder Millisekunde angeben. Je spezifischer Ihre Zeitstempel sind, desto einfacher ist es, zu sortieren, abzufragen oder zu filtern.

Speichern Sie Zeitstempel in DynamoDB mit dem Zahlendatentyp

Sie können den Zahlendatentyp verwenden, um einen Zeitstempel zu speichern. In dieser Abbildung wird unser Nummerndatentyp in Form eines Datumsattributs angenommen. Ein Boto3 (AWS SDK für Python) Beispiel für die Speicherung eines Zeitstempels in DynamoDB lautet wie folgt:

Boto3 importieren
DateTime importieren
# Erstellen Sie einen DynamoDB -Client
DynamoDB = Boto3.Client ('DynamoDB')
# Holen Sie sich den aktuellen Zeitstempel
timestamp = int (datetime.Terminzeit.utcnow ().timestamp ())
# Erstellen Sie ein neues Element in Ihrer Tabelle
Antwort = DynamoDB.put_item (
TableName = 'my-table-name' ',
Item =
'id': 'n': '1234',
'timestamp': 'n': str (timestamp)

)

Der Datentyp für den oben genannten Zeitstempel speichert die Zahl in Sekunden seit der Mitternacht des 1. Januar 1970, der Epoche, die Epoche. Natürlich wird es auch die UTC -Zeitzone verwenden.

Rufen Sie einen Zeitstempel in DynamoDB ab

Das Abrufen eines Zeitstempels in DynamoDB ist kein komplexes Unterfangen. Wie bei jeder anderen Abrufoperation in DynamoDB verwenden Sie den Befehl get_item am Clientend, um Zeitstempel abzurufen. Im Folgenden wird ein Beispielbefehl angezeigt:

Boto3 importieren
# Erstellen Sie einen DynamoDB -Client
DynamoDB = Boto3.Client ('DynamoDB')
# Rufen Sie den Artikel aus Ihrer Tabelle ab
Antwort = DynamoDB.get_item (
TableName = 'my-table-name' ',
Key =
'id': 'n': '1234'

)
# Holen Sie sich den Zeitstempel aus dem Artikel
item = response ['item']
timestamp = int (item ['timestamp'] ['n'])

Konvertieren Sie einen Zeitstempel in ein DateTime -Objekt

Sie können Ihren Zeitstempel mit dem DateTime -Modul weiter in ein DateTime -Objekt umwandeln. Siehe die Illustration unten:

DateTime importieren
# Konvertieren Sie den Zeitstempel in ein DateTime -Objekt
dt = datetime.Terminzeit.FromTimestamp (Timestamp)
drucken (dt)

Speichern Sie einen Zeitstempel mit einem updatated_at -Attribut

Interessanterweise können Sie auch einen Zeitstempel in DynamoDB mit einem updatated_at -Attribut speichern. In diesem Beispiel werden wir unser updatated_at-Attribut auf 2023-01-01 festlegen.

Boto3 importieren
# Erstellen Sie einen DynamoDB -Client
DynamoDB = Boto3.Client ('DynamoDB')
# Stellen Sie den Zeitstempel auf 2023-01-01 ein
timestamp = "2023-01-01"
# Setzen Sie den Tabellennamen
table_name = "my_table-name"
# Setzen Sie den Primärschlüssel
PK = "1234"
# Legen Sie den zu gespeicherten Wert fest
value = "Frohes neues Jahr"
# Setzen Sie die Attributkarte
Attribute_map =
"aktualisiert am":
"S": Zeitstempel
,
"Wert":
"S": Wert


# Legen Sie den Artikel in die Tabelle
Antwort = DynamoDB.put_item (
TableName = table_name,
Item =
"pk":
"S": PK
,
** Attribute_map

)
Druck (Antwort)

Das obige Beispiel speichert einen Artikel mit einem Primärschlüssel von 1234 und zwei Attribute: aktualisiert am Und Wert. Der aktualisiert am Das Attribut wird auf den Zeitstempel gesetzt 2023-01-01, und das Wert Das Attribut wird auf die Zeichenfolge gesetzt "Frohes Neues Jahr.”

Abfragedynamodb zwischen zwei Zeitstempeln

Sie können Elemente aus einer DynamoDB -Tabelle mit a abfragen aktualisiert am Attribut zwischen zwei Zeitstempeln. Um dies zu erreichen, verwenden Sie die Anfrage Betrieb und Geben Sie die an KeyConditionexpression Parameter.

Hier ist ein Beispiel dafür, wie Sie nach Elementen mit einem abfragen können aktualisiert am Attribut zwischen 2022-01-01 Und 2022-12-31:

Boto3 importieren
# Erstellen Sie einen DynamoDB -Client
DynamoDB = Boto3.Client ('DynamoDB')
# Setzen Sie den Tabellennamen
table_name = "my_table_name"
# Stellen Sie den Start- und Ende -Zeitstempel ein
start_timestamp = "2022-01-01"
end_timestamp = "2022-12-31"
# Die Tabelle abfragen
Antwort = DynamoDB.Anfrage(
TableName = table_name,
KeyConditionExpression = "Aktualisiert_atbetween: start_timestamp und: end_timestamp",
ExpressionAttributeValues ​​=
": start_timestamp":
"S": start_timestamp
,
": end_timestamp":
"S": end_timestamp


)
# Drucken Sie die Abfrageergebnisse
Druck (Antwort)

Der obige Code gibt alle Elemente in der Tabelle zurück, die eine haben aktualisiert am Attribut zwischen 2022-01-01 Und 2022-12-31, inklusiv. Der KeyConditionexpression Der Parameter gibt den Zustand an, der erfüllt werden muss, damit ein Element zurückgegeben wird, und die ExpressionAttributeValues Der Parameter legt die Werte für die Attribut -Platzhalter in der fest KeyConditionexpression.

Sie können auch die verwenden ScanIndexforward Parameter Um die Reihenfolge anzugeben, in der die Elemente zurückgegeben werden sollten. Standardmäßig die ScanIndexforward Parameter wird auf eingestellt WAHR, Das bedeutet, dass die Elemente in aufsteigender Reihenfolge zurückgegeben werden. Wenn Sie es aufstellen FALSCH, Die Gegenstände werden in absteigender Reihenfolge zurückgegeben.

Abschluss

In diesem Artikel wurde die Grundlagen des Speicherns von Zeitstempeln in DynamoDB erörtert. Sie können jetzt Zeitstempel in DynamoDB korrekt speichern. Wir haben auch hervorgehoben, wie Sie mit Zeitstempeln arbeiten können. Wie bei jeder DynamoDB -Operation können Sie Zeitstempel über Ihren bevorzugten AWS SDK oder AWS CLI verwenden.