Możesz przechowywać znacznik czasu jako typ danych liczbowych lub typ danych. Znacznik czasu przechowywane jako typ danych liczbowych mają wartość znacznika czasu UNIX (sekundy lub milisekund), podczas gdy te przechowywane jako typy danych String mają formaty ciągów ISO 8601.
Idealnie, praca z znacznikiem czasu wymaga również niezrównanej precyzji. Im bardziej precyzyjne są twoje znaczniki czasu, tym łatwiej je zapytać. Na przykład możesz określić rok tworzenia dla każdego elementu na stole lub uzyskać bardziej szczegółowe informacje, podając minutę, drugą lub milisekundową. Im bardziej szczegółowe są twoje znaczniki czasu, tym łatwiej będą sortować, zapytać lub filtrować.
Przechowuj znaczniki czasu w DynamoDB za pomocą typu danych liczbowych
Możesz użyć typu danych liczbowych do przechowywania znacznika czasu. W tej ilustracji nasz typ danych liczbowych przybierze formę atrybutu daty. Boto3 (AWS SDK dla Pythona) Przykład, jak przechowywać znacznik czasu w DynamoDB, jest następujący:
Import Boto3Typ danych dla powyższego znacznika czasu przechowuje liczbę w sekundach od północy 1 stycznia 1970 r., Która jest epoką. Oczywiście użyje również strefy czasowej UTC.
Odzyskać znacznik czasu w DynamoDB
Osiągnięcie znacznika czasu w DynamoDB nie jest złożonym przedsięwzięciem. Jak każda inna operacja wyszukiwania w DynamoDB, użyjesz polecenia get_item na końcu klienta, aby pobrać znaczniki czasu. Przykładowe polecenie pokazano poniżej:
Import Boto3Konwertuj znacznik czasu na obiekt DateTime
Możesz dalej przekonwertować swój znacznik czasu na obiekt DateTime za pomocą modułu DATETIME. Zobacz ilustrację poniżej:
Importuj datetimePrzechowuj znacznik czasu z aktualizowanym atrybutem_at
Co ciekawe, możesz również przechowywać znacznik czasu w DynamoDB z aktualizowanym atrybutem_at. W tym przykładzie ustawimy nasz atrybut aktualizacji_at na 2023-01-01.
Import Boto3Powyższy przykład będzie przechowywać element z kluczowym kluczem 1234 i dwa atrybuty: aktualizowany_at I wartość. aktualizowany_at atrybut zostanie ustawiony na znacznik czasu 2023-01-01, i wartość atrybut zostanie ustawiony na ciąg "Wszystkiego najlepszego w Nowym Roku."
Zapytanie DynamiDB między dwoma znacznikami czasu
Możesz zapytać elementy z tabeli DynamOdB z aktualizowany_at atrybut między dwoma znacznikami. Aby to osiągnąć, użyj zapytanie Działanie i określ KeyconditionExpression parametr.
Oto przykład tego, jak możesz zapytać o przedmioty z aktualizowany_at atrybut między 2022-01-01 I 2022-12-31:
Import Boto3Powyższy kod zwróci wszystkie elementy w tabeli, które mają aktualizowany_at atrybut między 2022-01-01 I 2022-12-31, włącznie. KeyconditionExpression Parametr określa warunek, który należy spełnić, aby element został zwrócony, oraz ExpressionAttributeValues Parametr ustawia wartości dla symbolicznych symboliczne w KeyconditionExpression.
Możesz także użyć SCANINDEXFORD parametr w celu określenia kolejności, w jakiej elementy powinny zostać zwrócone. Domyślnie, SCANINDEXFORD parametr jest ustawiony na PRAWDA, co oznacza, że elementy zostaną zwrócone w kolejności rosnącej. Jeśli ustawisz to do FAŁSZ, Przedmioty zostaną zwrócone w kolejności malejącej.
Wniosek
W tym artykule omówiono podstawy przechowywania znaczników czasu w DynamoDB. Możesz teraz przechowywać znaczniki czasu prawidłowo w DynamoDB. Podkreśliliśmy również, w jaki sposób możesz pracować z znacznikami czasu. Jak każda operacja DynamoDB, możesz używać znaczników czasu za pośrednictwem preferowanego AWS SDK lub AWS CLI.