Para recursos semelhantes aos do Amazon Timestream para LiveAnalytics, considere o Amazon Timestream 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.
WriteRecords
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.
Consulte a amostra de código 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. Version o 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 Version quando recebe uma solicitação de gravação com um Version número 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 é atualizado Version, se for maior que o valor existente de Version. É possível atualizar um ponto de dados quantas vezes quiser, desde que o valor de aumente Version continuamente.
Por exemplo, suponha que você grave um novo registro sem indicar Version na solicitação. O Timestream armazena esse registro e o define 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 Version. Nesse caso, o Timestream rejeitará essa atualização com a, 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 o Version seria definido 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 definido como 3. Nesse caso, o Timestream só seria atualizado para 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
{
"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
Para obter informações sobre os parâmetros que são comuns em todas as ações, consulte Parâmetros comuns.
A solicitação aceita os dados a seguir no formato JSON.
- CommonAttributes
-
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 podem ser
ValidationExceptionlançadas. Em outras palavras, um registro deve conter dimensões com nomes exclusivos.Tipo: objeto Record
Obrigatório: não
- DatabaseName
-
O nome do banco de dados do Timestream.
Tipo: string
Restrições de tamanho: tamanho mínimo 3. Tamanho máximo de 256.
Obrigatório: sim
- Records
-
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
Membros da matriz: número mínimo de 1 item. Número máximo de 100 itens.
Obrigatório: sim
- TableName
-
O nome da tabela do Timestream.
Tipo: string
Restrições de tamanho: tamanho mínimo 3. Tamanho máximo de 256.
Obrigatório: sim
Sintaxe da Resposta
{
"RecordsIngested": {
"MagneticStore": number,
"MemoryStore": number,
"Total": number
}
}
Elementos de Resposta
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
-
Informações sobre os registros ingeridos por essa solicitação.
Tipo: objeto RecordsIngested
Erros
Para obter informações sobre os erros comuns retornados pelas ações, consulte Erros comuns.
- AccessDeniedException
-
Você não está autorizado a 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 em que há vários registros com as mesmas dimensões, carimbos 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
ExistingVersionna respostaRejectedRecordsindicará 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 queExistingVersion. -
-
Registros com carimbos de data/hora que estão fora da duração de retenção do armazenamento de memória.
-
Registros com dimensões ou medidas que excedem os limites definidos pelo Timestream.
Para obter mais informações, consulte Cotas 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
Para obter mais informações sobre como usar essa API em um dos SDKs específicos de linguagem AWS, consulte: