Puede almacenar una marca de tiempo como un tipo de datos de número o un tipo de datos de cadena. Las marcas de tiempo almacenadas como un tipo de datos numerosos tienen un valor de marca de tiempo UNIX (segundos o milisegundos), mientras que las almacenadas como tipos de datos de cadena cuentan con los formatos de cadena ISO 8601.
Idealmente, trabajar con marcas de tiempo también requiere una precisión inmejorable. Cuanto más precisas sean sus marcas de tiempo, más fáciles serán de consulta. Por ejemplo, puede especificar el año de creación para cada elemento en su tabla o obtener más específico indicando el minuto, el segundo o el milisegundo. Cuanto más específicas sean sus marcas de tiempo, más fáciles serán clasificar, consultar o filtrar.
Almacene las marcas de tiempo en DynamodB utilizando el tipo de datos de número
Puede usar el tipo de datos de número para almacenar una marca de tiempo. En esta ilustración, nuestro tipo de datos numéricos tomará la forma de un atributo de fecha. Un ejemplo de Boto3 (AWS SDK para Python) de cómo almacenar una marca de tiempo en DynamoDB es el siguiente:
importar boto3El tipo de datos para la marca de tiempo anterior almacena el número en segundos desde la medianoche del 1 de enero de 1970, que es la época. Por supuesto, también usará la zona horaria de UTC.
Recuperar una marca de tiempo en Dynamodb
Recuperar una marca de tiempo en DynamodB no es una empresa compleja. Como cualquier otra operación de recuperación en DynamodB, usará el comando get_item en el extremo del cliente para recuperar marcas de tiempo. A continuación se muestra un comando de ejemplo:
importar boto3Convertir una marca de tiempo en un objeto de fecha y hora
Puede convertir aún más su marca de tiempo en un objeto DateTime utilizando el módulo DateTime. Vea la ilustración a continuación:
Importar DateTetimeAlmacene una marca de tiempo con un atributo actualizado_at
Curiosamente, también puede almacenar una marca de tiempo en DynamoDB con un atributo actualizado_at. En este ejemplo, estableceremos nuestro atributo actualizado_at al 2023-01-01.
importar boto3El ejemplo anterior almacenará un elemento con una clave principal de 1234 y dos atributos: actualizado_at y valor. El actualizado_at El atributo se establecerá en la marca de tiempo 2023-01-01, y el valor El atributo se establecerá en la cadena "feliz año nuevo."
Consulta dinamodb entre dos marcas de tiempo
Puede consultar elementos desde una tabla Dynamodb con un actualizado_at atributo entre dos marcas de tiempo. Para lograr esto, use el consulta operación y especifique el KeyConditionExpression parámetro.
Aquí hay un ejemplo de cómo puede consultar los artículos con un actualizado_at atributo entre 2022-01-01 y 2022-12-31:
importar boto3El código anterior devolverá todos los elementos en la tabla que tienen un actualizado_at atributo entre 2022-01-01 y 2022-12-31, inclusivo. El KeyConditionExpression El parámetro especifica la condición que debe cumplirse para que se devuelva un elemento y el ExpressionAttributeValues El parámetro establece los valores para los marcadores de posición de atributo en el KeyConditionExpression.
También puedes usar el ScanIdexForward parámetro para especificar el orden en que se deben devolver los elementos. Por defecto, el ScanIdexForward El parámetro se establece en Verdadero, lo que significa que los artículos se devolverán en orden ascendente. Si lo configuras en FALSO, Los artículos serán devueltos en orden descendente.
Conclusión
Este artículo discutió los conceptos básicos de almacenar marcas de tiempo en Dynamodb. Ahora puede almacenar marcas de tiempo correctamente en Dynamodb. También destacamos cómo podría trabajar con marcas de tiempo. Como todas las operaciones de DynamodB, puede usar marcas de tiempo a través de su AWS SDK o AWS preferido.