

Para recursos semelhantes aos do Amazon Timestream para, considere o Amazon Timestream LiveAnalytics para InfluxDB. Ele oferece ingestão de dados simplificada e tempos de resposta de consulta de um dígito em milissegundos para análises em tempo real. Saiba mais [aqui](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# WriteRecords
<a name="API_WriteRecords"></a>

Permite que você grave seus dados de séries temporais no Timestream. É possível especificar um único ponto de dados ou um lote de pontos de dados a serem inseridos no sistema. O Timestream oferece um esquema flexível que detecta automaticamente os nomes das colunas e os tipos de dados das tabelas do Timestream com base nos nomes das dimensões e nos tipos de dados dos pontos de dados especificados ao invocar gravações no banco de dados. 

O Timestream é compatível com uma eventual semântica de leitura final consistente. Isso significa que quando você consulta dados imediatamente após gravar um lote de dados no Timestream, os resultados da consulta podem não refletir os resultados de uma operação de gravação recém-concluída. Os resultados também podem incluir alguns dados obsoletos. Se você repetir a solicitação da consulta após um curto período de tempo, os resultados devem retornar os dados mais recentes. [Cotas de serviço se aplicam](https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html). 

Consulte a [amostra de código](https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.write.html) para obter detalhes.

 **Upserts** 

Você pode usar o parâmetro `Version` em uma solicitação `WriteRecords` para atualizar pontos de dados. O Timestream rastreia um número de versão com cada registro. A `Version` padrão é `1` quando não é especificado para o registro na solicitação. O Timestream atualiza o valor de medida de um registro existente junto com o valor da `Version` quando recebe uma solicitação de gravação com um número de `Version` maior para esse registro. Quando recebe uma solicitação de atualização em que o valor da medida é o mesmo do registro existente, o Timestream ainda atualiza a `Version`, se for maior que o valor existente de `Version`. É possível atualizar um ponto de dados quantas vezes quiser, desde que o valor da `Version` aumente continuamente. 

 Por exemplo, suponha que você grave um novo registro sem indicar `Version` na solicitação. O Timestream armazena esse registro e o define a `Version` como `1`. Agora, suponha que você tente atualizar esse registro com uma solicitação `WriteRecords` do mesmo registro com um valor de medida diferente, mas, como antes, não forneça a `Version`. Nesse caso, o Timestream rejeitará essa atualização com um `RejectedRecordsException`, já que a versão do registro atualizado não é maior que o valor existente de Versão. 

No entanto, se você reenviasse a solicitação de atualização com `Version` definido como `2`, o Timestream conseguiria atualizar o valor do registro e a `Version` seria definida como `2`. Em seguida, suponha que você tenha enviado uma solicitação `WriteRecords` com esse mesmo registro e um valor de medida idêntico, mas com `Version` definida como `3`. Nesse caso, o Timestream apenas atualizaria a `Version` para `3`. Quaisquer atualizações adicionais precisariam enviar um número de versão maior que `3`, ou as solicitações de atualização receberiam um `RejectedRecordsException`. 

## Sintaxe da solicitação
<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 da solicitação
<a name="API_WriteRecords_RequestParameters"></a>

Para obter informações sobre os parâmetros que são comuns em todas as ações, consulte [Parâmetros comuns](CommonParameters.md).

A solicitação aceita os dados a seguir no formato JSON.

 ** [CommonAttributes](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-CommonAttributes"></a>
Um registro que contém os atributos comuns de medida, dimensão, tempo e versão compartilhados entre todos os registros na solicitação. Os atributos de medida e dimensão especificados serão mesclados com os atributos de medida e dimensão no objeto de registros quando os dados forem gravados no Timestream. As dimensões não podem se sobrepor, ou um `ValidationException` será lançado. Em outras palavras, um registro deve conter dimensões com nomes exclusivos.   
Tipo: objeto [Record](API_Record.md)  
Obrigatório: não

 ** [DatabaseName](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-DatabaseName"></a>
O nome do banco de dados do Timestream.  
Tipo: string  
Restrições de tamanho: tamanho mínimo 3. O comprimento máximo é 256.  
Obrigatório: sim

 ** [Records](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-Records"></a>
Uma matriz de registros que contém os atributos exclusivos de medida, dimensão, tempo e versão para cada ponto de dados de série temporal.  
Tipo: matriz de objetos [Record](API_Record.md)  
Membros da matriz: número mínimo de 1 item. Número máximo de 100 itens.  
Obrigatório: sim

 ** [TableName](#API_WriteRecords_RequestSyntax) **   <a name="timestream-WriteRecords-request-TableName"></a>
O nome da tabela do Timestream.  
Tipo: string  
Restrições de tamanho: tamanho mínimo 3. O comprimento máximo é 256.  
Obrigatório: sim

## Sintaxe da resposta
<a name="API_WriteRecords_ResponseSyntax"></a>

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

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

Se a ação for bem-sucedida, o serviço retornará uma resposta HTTP 200.

Os dados a seguir são retornados no formato JSON pelo serviço.

 ** [RecordsIngested](#API_WriteRecords_ResponseSyntax) **   <a name="timestream-WriteRecords-response-RecordsIngested"></a>
Informações sobre os registros ingeridos por essa solicitação.  
Tipo: objeto [RecordsIngested](API_RecordsIngested.md)

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

Para informações sobre os erros comuns retornados pelas ações, consulte [Tipos de erro comuns](CommonErrors.md).

 ** AccessDeniedException **   
Você não tem autorização para executar esta ação.  
Código de status HTTP: 400

 ** InternalServerException **   
 O Timestream não conseguiu processar totalmente essa solicitação devido a um erro interno do servidor.  
Código de status HTTP: 500

 ** InvalidEndpointException **   
O endpoint solicitado não era válido.  
Código de status HTTP: 400

 ** RejectedRecordsException **   
 WriteRecords lançaria essa exceção nos seguintes casos:   
+ Registros com dados duplicados nos quais há vários registros com as mesmas dimensões, registros de data/hora e nomes de medidas, mas: 
  + Os valores das medidas são diferentes
  + A versão não está presente na solicitação *ou* o valor da versão no novo registro é igual ou inferior ao valor existente

   Nesse caso, se o Timestream rejeitar dados, o campo `ExistingVersion` na resposta `RejectedRecords` indicará a versão atual do registro. Para forçar uma atualização, você pode reenviar a solicitação com uma versão do conjunto de registros com um valor maior que a `ExistingVersion`.
+  Registros com registros de data/hora que estão fora da duração de retenção do armazenamento na memória. 
+  Registros com dimensões ou medidas que excedem os limites definidos pelo Timestream. 
 Para obter mais informações, consulte [Cotas](https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html) no Guia do desenvolvedor do Amazon Timestream.     
 ** RejectedRecords **   
 
Código de status HTTP: 400

 ** ResourceNotFoundException **   
A operação tentou acessar um recurso inexistente. O recurso pode não estar especificado corretamente ou seu status pode não ser ATIVO.  
Código de status HTTP: 400

 ** ThrottlingException **   
 Muitas solicitações foram feitas por um usuário e elas excederam as cotas de serviço. A solicitação foi acelerada.  
Código de status HTTP: 400

 ** ValidationException **   
 Uma solicitação inválida ou malformada.  
Código de status HTTP: 400

## Consulte também
<a name="API_WriteRecords_SeeAlso"></a>

Para obter mais informações sobre como usar essa API em uma das linguagens específicas AWS SDKs, consulte o seguinte:
+  [AWS Interface de linha de comando 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) 