Para obtener capacidades similares a las de Amazon Timestream, considere Amazon Timestream LiveAnalytics para InfluxDB. Ofrece una ingesta de datos simplificada y tiempos de respuesta a las consultas en milisegundos de un solo dígito para realizar análisis en tiempo real. Obtenga más información aquí.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
WriteRecords
Le permite escribir datos de serie temporal en Timestream. Puede especificar un solo punto de datos o un lote de puntos de datos para insertarlos en el sistema. Timestream le ofrece un esquema flexible que detecta de manera automática los nombres de las columnas y los tipos de datos de las tablas de Timestream según los nombres de las dimensiones y los tipos de datos de los puntos de datos que especifique al invocar las escrituras en la base de datos.
Timestream admite una semántica de lectura coherente posterior. Esto significa que, al consultar datos inmediatamente después de escribir un lote de datos en Timestream, es posible que los resultados de la consulta no reflejen los resultados de una operación de escritura que se haya completado recientemente. Además, los resultados pueden incluir algunos datos obsoletos. Si repite la solicitud de consulta después de un breve intervalo, la respuesta debería mostrar los datos más recientes. Se aplican cuotas de servicio.
Consulte el ejemplo de código para obtener más detalles.
Upserts
Puede usar el parámetro Version en una solicitud de WriteRecords para actualizar los puntos de datos. Timestream rastrea un número de versión con cada registro. Version toma el valor predeterminado 1 cuando no se especifica para el registro en la solicitud. Timestream actualiza el valor de medida de un registro existente junto con la Version cuando recibe una solicitud de escritura con un número de Version superior para ese registro. Cuando recibe una solicitud de actualización en la que el valor de medida es el mismo que el del registro existente, Timestream sigue actualizando la Version si es mayor que el valor existente de Version. Puede actualizar un punto de datos tantas veces como desee, siempre que el valor de Version aumente continuamente.
Por ejemplo, supongamos que escribe un registro nuevo sin indicar la Version en la solicitud. Timestream almacena este registro y establece la Version en 1. Supongamos que intenta actualizar este registro con una solicitud de WriteRecords del mismo registro con un valor de medida diferente, pero, como antes, no lo proporciona la Version. En este caso, Timestream rechazará esta actualización con una RejectedRecordsException, ya que la versión del registro actualizado no es superior al valor actual de la versión.
Sin embargo, si volviera a enviar la solicitud de actualización con la Version en 2, Timestream lograría actualizar el valor del registro y Version se establecería en 2. A continuación, supongamos que envió una solicitud de WriteRecords con el mismo registro y un valor de medida idéntico, pero con Version en 3. En este caso, Timestream solo actualizará Version a 3. Cualquier otra actualización tendría que enviar un número de versión superior a 3, o las solicitudes de actualización recibirían un RejectedRecordsException.
Sintaxis de la solicitud
{
"CommonAttributes": {
"Dimensions": [
{
"DimensionValueType": "string",
"Name": "string",
"Value": "string"
}
],
"MeasureName": "string",
"MeasureValue": "string",
"MeasureValues": [
{
"Name": "string",
"Type": "string",
"Value": "string"
}
],
"MeasureValueType": "string",
"Time": "string",
"TimeUnit": "string",
"Version": number
},
"DatabaseName": "string",
"Records": [
{
"Dimensions": [
{
"DimensionValueType": "string",
"Name": "string",
"Value": "string"
}
],
"MeasureName": "string",
"MeasureValue": "string",
"MeasureValues": [
{
"Name": "string",
"Type": "string",
"Value": "string"
}
],
"MeasureValueType": "string",
"Time": "string",
"TimeUnit": "string",
"Version": number
}
],
"TableName": "string"
}
Parámetros de la solicitud
Para obtener información sobre los parámetros comunes a todas las acciones, consulte Parámetros comunes.
La solicitud acepta los siguientes datos en formato JSON.
- CommonAttributes
-
Un registro que contiene los atributos comunes de medida, dimensión, tiempo y versión compartidos en todos los registros de la solicitud. Los atributos de medida y dimensión especificados se combinarán con los atributos de medida y dimensión del objeto de registro cuando los datos se escriban en Timestream. Es posible que las dimensiones no se superpongan o aparecerá una
ValidationException. Es decir, un registro debe contener dimensiones con nombres únicos.Tipo: objeto Record
Obligatorio: no
- DatabaseName
-
Nombre de la base de datos de Timestream.
Tipo: cadena
Limitaciones de longitud: longitud mínima de 3. La longitud máxima es de 256 caracteres.
Obligatorio: sí
- Records
-
Una matriz de registros que contiene los atributos únicos de medida, dimensión, tiempo y versión de cada punto de datos de serie temporal.
Tipo: Matriz de Record objetos
Miembros de la matriz: número mínimo de 1 artículo. Número máximo de 100 artículos.
Obligatorio: sí
- TableName
-
Nombre de la tabla de Timestream.
Tipo: cadena
Limitaciones de longitud: longitud mínima de 3. La longitud máxima es de 256 caracteres.
Obligatorio: sí
Sintaxis de la respuesta
{
"RecordsIngested": {
"MagneticStore": number,
"MemoryStore": number,
"Total": number
}
}
Elementos de respuesta
Si la acción se realiza correctamente, el servicio devuelve una respuesta HTTP 200.
El servicio devuelve los datos siguientes en formato JSON.
- RecordsIngested
-
Información sobre los registros ingeridos por esta solicitud.
Tipo: objeto RecordsIngested
Errores
Para obtener información acerca de los errores comunes a todas las acciones, consulte Errores comunes.
- AccessDeniedException
-
No tiene autorización para realizar esta acción.
Código de estado HTTP: 400
- InternalServerException
-
Timestream no pudo procesar por completo esta solicitud debido a un error interno del servidor.
Código de estado HTTP: 500
- InvalidEndpointException
-
El punto de conexión solicitado no era válido.
Código de estado HTTP: 400
- RejectedRecordsException
-
WriteRecords generaría esta excepción en los casos que se encuentran a continuación:
-
Los registros con datos duplicados en los que existen varios registros con las mismas dimensiones, marcas de tiempo y nombres de medidas, pero:
-
Los valores de las medidas son diferentes.
-
La versión no está presente en la solicitud o el valor de la versión en el registro nuevo es igual o inferior al valor existente.
En este caso, si Timestream rechaza los datos, el campo
ExistingVersionde la respuestaRejectedRecordsindicará la versión actual del registro. Para forzar una actualización, puede volver a enviar la solicitud con una versión del registro establecida en un valor superior a laExistingVersion. -
-
Los registros con marcas de tiempo que se encuentran fuera del periodo de retención del almacén de memoria.
-
Los registros con dimensiones o medidas que superan los límites definidos por Timestream.
Para obtener más información, consulte Cuotas en la Guía para desarrolladores de Amazon Timestream.
- RejectedRecords
-
Código de estado HTTP: 400
-
- ResourceNotFoundException
-
La operación intentó acceder a un recurso que no existe. Es posible que el recurso no esté especificado de manera correcta o que el estado no sea ACTIVO.
Código de estado HTTP: 400
- ThrottlingException
-
Un usuario realizó demasiadas solicitudes y estas superaron las cuotas de servicio. La solicitud se ha limitado.
Código de estado HTTP: 400
- ValidationException
-
Solicitud no válida o con formato incorrecto.
Código de estado HTTP: 400
Véase también
Para obtener más información sobre el uso de esta API en un SDK de AWS de un idioma específico, consulte: