Timestream - AWS IoT Core

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á.

Timestream

A ação da regra Timestream grava atributos (medidas) de uma mensagem MQTT em uma tabela do Amazon Timestream. Para obter mais informações sobre o Amazon Timestream, consulte O que é o Amazon Timestream?.

nota

O Amazon Timestream não está disponível em todos os s. Região da AWS Se o Amazon Timestream não estiver disponível em sua região, ele não aparecerá na lista de ações de regras.

Os atributos que essa regra armazena no banco de dados do Timestream são aqueles que resultam da instrução de consulta da regra. O valor de cada atributo no resultado da instrução de consulta é analisado para inferir seu tipo de dados (como em uma ação DynamoDBv2). O valor de cada atributo é gravado em seu próprio registro na tabela do Timestream. Para especificar ou alterar o tipo de dados de um atributo, use a função cast() na instrução de consulta. Para obter mais informações sobre o conteúdo de cada registro do Timestream, consulte. Conteúdo do registro do Timestream

nota

Com o SQL V2 (23-03-2016), valores numéricos que são números inteiros, como 10.0, são convertidos em sua representação inteira (10). Convertê-los explicitamente em um valor Decimal, como usar a função cast(), não impede esse comportamento — o resultado ainda é um valor Integer. Isso pode causar erros de incompatibilidade de tipos que impedem que os dados sejam registrados no banco de dados do Timestream. Para processar valores numéricos inteiros como valores Decimal, use o SQL V1 (08/10/2015) para a instrução de consulta de regra.

nota

O número máximo de valores que uma ação de regra do Timestream pode gravar em uma tabela do Amazon Timestream é 100. Para obter mais informações, consulte a Referência da cota do Amazon Timestream.

Requisitos

Esta ação de regra tem os seguintes requisitos:

  • Uma função do IAM que AWS IoT você pode assumir para realizar as timestream:WriteRecords operações timestream:DescribeEndpoints e. Para ter mais informações, consulte Conceder a uma AWS IoT regra o acesso que ela exige.

    No AWS IoT console, você pode escolher, atualizar ou criar uma função para permitir AWS IoT a execução dessa ação de regra.

  • Se você usa um cliente AWS KMS para criptografar dados em repouso no Timestream, o serviço deve ter permissão para usar o AWS KMS key em nome do chamador. Para obter mais informações, consulte Como AWS os serviços usam o AWS KMS.

Parâmetros

Ao criar uma AWS IoT regra com essa ação, você deve especificar as seguintes informações:

databaseName

O nome de um banco de dados do Amazon Timestream que tem a tabela para receber os registros que essa ação cria. Consulte também tableName.

Suporta modelos de substituição: API e somente AWS CLI

dimensions

Atributos de metadados das séries temporais que são gravados em cada registro de medida. Por exemplo, o nome e a zona de disponibilidade de uma instância do EC2 ou o nome do fabricante de uma turbina eólica são dimensões.

name

O nome da dimensão de metadados. Este é o nome da coluna no registro da tabela do banco de dados.

As dimensões não podem ser nomeadas:measure_name, measure_value, ou time. Esses nomes são reservados. Os nomes das dimensões não podem começar com ts_ ou measure_value e não podem conter o caractere de dois pontos (:).

Compatível com modelos de substituição: Não

value

O valor a ser gravado nesta coluna do registro do banco de dados.

Compatível com modelos de substituição: Sim

roleArn

O nome do recurso da Amazon (ARN) da função que concede permissão AWS IoT para gravar na tabela do banco de dados do Timestream. Para ter mais informações, consulte Requisitos.

Compatível com modelos de substituição: Não

tableName

O nome da tabela de banco de dados na qual gravar os registros de medida. Consulte também databaseName.

Suporta modelos de substituição: API e somente AWS CLI

timestamp

O valor a ser usado para o carimbo e data/hora da entrada. Se estiver em branco, a hora em que a entrada foi processada será usada.

unit

A precisão do valor do carimbo de data/hora que resulta da expressão descrita em value.

Valores válidos: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. O padrão é MILLISECONDS.

value

Uma expressão que retorna um valor de tempo epoch longo.

Você pode usar a função time_to_epoch(String, String) para criar um carimbo de data/hora válido a partir de um valor de data ou hora transmitido na carga da mensagem.

Conteúdo do registro do Timestream

Os dados gravados na tabela do Amazon Timestream por essa ação incluem um carimbo de data e hora, metadados da ação da regra Timestream e o resultado da instrução de consulta da regra.

Para cada atributo (medida) no resultado da instrução de consulta, essa ação de regra grava um registro na tabela Timestream especificada com essas colunas.

Nome da coluna

Tipo de atributo

Valor

Comentários

nome da dimensão

DIMENSÃO

O valor especificado na entrada de ação da regra Timestream.

Cada Dimensão especificada na entrada de ação da regra cria uma coluna no banco de dados do Timestream com o nome da dimensão.

nome_medida

NOME_MEDIDA

O nome do atributo

O nome do atributo no resultado da instrução de consulta cujo valor é especificado na coluna measure_value::data-type.

valor_medida::tipo-dados

VALOR_MEDIDA

O nome do atributo no resultado da instrução de consulta. O nome do atributo está na coluna measure_name.

O valor é interpretado* e convertido como a combinação mais adequada de:bigint, boolean, double, ou varchar. O Amazon Timestream cria uma coluna separada para cada tipo de dados. O valor na mensagem pode ser convertido em outro tipo de dados usando a função cast() na instrução de consulta da regra.

tempo

TIMESTAMP

A data e a hora do registro no banco de dados.

Esse valor é atribuído pelo mecanismo de regras ou pela propriedade timestamp, se estiver definida.

* O valor do atributo lido da carga da mensagem é interpretado da seguinte forma. Consulte a Exemplos para obter uma ilustração de cada um desses casos.

  • Um valor sem aspas de true ou false é interpretado como um tipo boolean.

  • Um numérico decimal é interpretado como um tipo double.

  • Um valor numérico sem ponto decimal é interpretado como um tipo bigint.

  • Uma string entre aspas é interpretada como um tipo varchar.

  • Objetos e valores de matriz são convertidos em strings JSON e armazenados como um tipo varchar.

Exemplos

O exemplo de JSON a seguir define uma ação de regra Timestream com um modelo de substituição em uma regra. AWS IoT

{ "topicRulePayload": { "sql": "SELECT * FROM 'iot/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "timestream": { "roleArn": "arn:aws:iam::123456789012:role/aws_iot_timestream", "tableName": "devices_metrics", "dimensions": [ { "name": "device_id", "value": "${clientId()}" }, { "name": "device_firmware_sku", "value": "My Static Metadata" } ], "databaseName": "record_devices" } } ] } }

Usar a ação de regra de tópico Timestream definida no exemplo anterior com a carga útil da mensagem a seguir resulta nos registros do Amazon Timestream escritos na tabela a seguir.

{ "boolean_value": true, "integer_value": 123456789012, "double_value": 123.456789012, "string_value": "String value", "boolean_value_as_string": "true", "integer_value_as_string": "123456789012", "double_value_as_string": "123.456789012", "array_of_integers": [23,36,56,72], "array of strings": ["red", "green","blue"], "complex_value": { "simple_element": 42, "array_of_integers": [23,36,56,72], "array of strings": ["red", "green","blue"] } }

A tabela a seguir exibe as colunas e os registros do banco de dados que usam a ação de regra de tópico especificada para processar a carga útil da mensagem anterior criada. As colunas device_firmware_sku e device_id são as DIMENSÕES definidas na ação da regra de tópico. A ação de regra de tópico Timestream cria a coluna time e as colunas measure_name e measure_value::*, que ela preenche com os valores do resultado da instrução de consulta da ação de regra de tópico.

device_firmware_sku id_dispositivo nome_medida valor_medida::bigint valor_medida::varchar valor_medida::duplo valor_medida::booleano tempo
Meus metadados estáticos iotconsole-159EXAMPLE738-0 valor_complexo - {"elemento_simples":42,"matriz_de_inteiros":[23,36,56,72],"matriz de strings":["vermelho","verde","azul"]} - - 2020-08-26 22:42:16.423000000
Meus metadados estáticos iotconsole-159EXAMPLE738-0 valor_inteiro_como_string - 123456789012 - - 2020-08-26 22:42:16.423000000
Meus metadados estáticos iotconsole-159EXAMPLE738-0 valor_booleano - - - VERDADEIRO 2020-08-26 22:42:16.423000000
Meus metadados estáticos iotconsole-159EXAMPLE738-0 valor_inteiro 123456789012 - - - 2020-08-26 22:42:16.423000000
Meus metadados estáticos iotconsole-159EXAMPLE738-0 valor_string - Valor da string - - 2020-08-26 22:42:16.423000000
Meus metadados estáticos iotconsole-159EXAMPLE738-0 matriz_de_inteiros - [23,36,56,72] - - 2020-08-26 22:42:16.423000000
Meus metadados estáticos iotconsole-159EXAMPLE738-0 matriz de strings - ["vermelho","verde","azul"] - - 2020-08-26 22:42:16.423000000
Meus metadados estáticos iotconsole-159EXAMPLE738-0 valor_booleano_como_string - VERDADEIRO - - 2020-08-26 22:42:16.423000000
Meus metadados estáticos iotconsole-159EXAMPLE738-0 valor_duplo - - 123.456789012 - 2020-08-26 22:42:16.423000000
Meus metadados estáticos iotconsole-159EXAMPLE738-0 valor_duplo_como_string - 123.45679 - - 2020-08-26 22:42:16.423000000