

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í](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html).

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
<a name="API_WriteRecords"></a>

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](https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html). 

Consulte el [ejemplo de código](https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.write.html) 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
<a name="API_WriteRecords_RequestSyntax"></a>

```
{
   "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
<a name="API_WriteRecords_RequestParameters"></a>

Para obtener información sobre los parámetros comunes a todas las acciones, consulte [Parámetros comunes](CommonParameters.md).

La solicitud acepta los siguientes datos en formato JSON.

 ** [CommonAttributes](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-CommonAttributes"></a>
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](API_Record.md)  
Obligatorio: no

 ** [DatabaseName](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-DatabaseName"></a>
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](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-Records"></a>
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](API_Record.md) objetos  
Miembros de la matriz: número mínimo de 1 artículo. Número máximo de 100 artículos.  
Obligatorio: sí

 ** [TableName](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-TableName"></a>
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
<a name="API_WriteRecords_ResponseSyntax"></a>

```
{
   "RecordsIngested": { 
      "MagneticStore": number,
      "MemoryStore": number,
      "Total": number
   }
}
```

## Elementos de respuesta
<a name="API_WriteRecords_ResponseElements"></a>

Si la acción se realiza correctamente, el servicio devuelve una respuesta HTTP 200.

El servicio devuelve los datos siguientes en formato JSON.

 ** [RecordsIngested](#API_WriteRecords_ResponseSyntax) **   <a name="timestream-WriteRecords-response-RecordsIngested"></a>
Información sobre los registros ingeridos por esta solicitud.  
Tipo: objeto [RecordsIngested](API_RecordsIngested.md)

## Errores
<a name="API_WriteRecords_Errors"></a>

Para obtener información acerca de los errores comunes a todas las acciones, consulte [Errores comunes](CommonErrors.md).

 ** 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 siguientes casos:   
+ 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 `ExistingVersion` de la respuesta `RejectedRecords` indicará 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 la `ExistingVersion`.
+  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](https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html) 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
<a name="API_WriteRecords_SeeAlso"></a>

Para obtener más información sobre el uso de esta API en uno de los idiomas específicos AWS SDKs, consulta lo siguiente:
+  [AWS Interfaz de línea de comandos V2](https://docs.aws.amazon.com/goto/cli2/timestream-write-2018-11-01/WriteRecords) 
+  [AWS SDK para .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/timestream-write-2018-11-01/WriteRecords) 
+  [AWS SDK para C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/timestream-write-2018-11-01/WriteRecords) 
+  [AWS SDK para Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/timestream-write-2018-11-01/WriteRecords) 
+  [AWS SDK para Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/timestream-write-2018-11-01/WriteRecords) 
+  [AWS SDK para JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/timestream-write-2018-11-01/WriteRecords) 
+  [AWS SDK para Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/timestream-write-2018-11-01/WriteRecords) 
+  [AWS SDK para PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/timestream-write-2018-11-01/WriteRecords) 
+  [AWS SDK para Python](https://docs.aws.amazon.com/goto/boto3/timestream-write-2018-11-01/WriteRecords) 
+  [AWS SDK para Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/timestream-write-2018-11-01/WriteRecords) 