Timestream - AWS IoT Core

Timestream

La acción de regla Timestream escribe atributos (medidas) de un mensaje MQTT en una tabla de Amazon Timestream. Para obtener información completa sobre Amazon Timestream, consulte ¿Qué es Amazon Timestream?

nota

Amazon Timestream no está disponible en todas las Región de AWS. Si Amazon Timestream no está disponible en su región, no aparecerá en la lista de acciones de reglas.

Los atributos que esta regla almacena en la base de datos de Timestream son los que resultan de la declaración de consulta de la regla. El valor de cada atributo del resultado de la declaración de consulta se analiza para deducir su tipo de datos (como en una acción DynamoDBv2). El valor de cada atributo se escribe en su propio registro de la tabla Timestream. Para especificar o cambiar el tipo de datos de un atributo, utilice la función cast() en la sentencia de consulta. Para obtener más información acerca del contenido de cada registro de Timestream, consulte Contenido de los registros de Timestream.

nota

Con SQL V2 (2016-03-23), los valores numéricos que son números enteros, como 10.0, se convierten su representación Entera (10). Convertirlos explícitamente en un valor Decimal, por ejemplo utilizando la función cast (), no evita este comportamiento: el resultado sigue siendo un valor Integer. Esto puede provocar errores de discordancia de tipos que impidan que los datos se registren en la base de datos de Timestream. Para procesar los valores numéricos de números enteros como valores Decimal, utilice SQL V1 (2015-10-08) como instrucción de consulta de regla.

nota

El número máximo de valores que una acción de regla Timestream puede escribir en una tabla de Amazon Timestream es 100. Para obtener más información, consulte la Referencia de Cuotas de Amazon Timestream.

Requisitos

Esta regla tiene los siguientes requisitos:

  • un rol de IAM que AWS IoT puede asumir para realizar las operaciones timestream:DescribeEndpoints y timestream:WriteRecords. Para obtener más información, consulte Otorgar a una regla AWS IoT el acceso que requiere.

    En la consola de AWS IoT, puede elegir, actualizar o crear un rol que permita a AWS IoT realizar esta acción de regla.

  • Si utiliza una AWS KMS gestionada por el cliente para cifrar los datos en reposo en Timestream, el servicio debe tener permiso para utilizar el AWS KMS key en nombre de la persona que llama. Para más información, consulte Cómo los servicios AWS utilizan KMS AWS.

Parámetros

Cuando cree una regla AWS IoT con esta acción, debe especificar la información siguiente:

databaseName

Nombre de una base de datos de Amazon Timestream que contiene la tabla para recibir los registros que crea esta acción. Véase también tableName.

Admite plantillas de sustitución: API y AWS CLI únicamente

dimensions

Atributos de metadatos de las series de tiempo que se escriben en cada registro de medida. Por ejemplo, el nombre y la zona de disponibilidad de una instancia EC2 o el nombre del fabricante de un aerogenerador son dimensiones.

name

El nombre de la dimensión de metadatos. Es el nombre de la columna en el registro de tabla de la base de datos.

Las dimensiones no se pueden denominar:measure_name, measure_value o time. Estos nombres están reservados. Los nombres de las dimensiones no pueden empezar por ts_ o ni measure_value pueden contener el carácter de dos puntos (:).

Admite plantillas de sustitución: No

value

El valor que se va a escribir en esta columna del registro de la base de datos.

Admite plantillas de sustitución: Sí

roleArn

El nombre de recurso de Amazon (ARN) del rol que concede permiso a AWS IoT para escribir en la tabla de base de datos Timestream. Para obtener más información, consulte Requisitos.

Admite plantillas de sustitución: No

tableName

El nombre de la tabla de la base de datos en la que escribir los registros de la medida. Véase también databaseName.

Admite plantillas de sustitución: API y AWS CLI únicamente

timestamp

El valor que se va a utilizar para la marca de tiempo de la entrada. Si está en blanco, se utiliza la hora en que se procesó la entrada.

unit

La precisión del valor de marca de tiempo que resulta de la expresión que se describe en value.

Valores válidos: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS El valor predeterminado es MILLISECONDS.

value

Una expresión que devuelve un valor de tiempo de época larga.

Puede utilizar la función time_to_epoch(String, String) para crear una marca de tiempo válida a partir de un valor de fecha u hora incluido en la carga útil del mensaje.

Contenido de los registros de Timestream

Los datos que esta acción escribe en la tabla Amazon Timestream incluyen una marca de tiempo, los metadatos de la acción de la regla Timestream y el resultado de la declaración de consulta de la regla.

Para cada atributo (medida) del resultado de la declaración de consulta, esta acción de regla escribe un registro en la tabla Timestream especificada con estas columnas.

Nombre de la columna

Tipo de atributo

Valor

Comentarios

dimension-name

DIMENSION

El valor especificado en la entrada de acción de la regla Timestream.

Cada dimensión especificada en la entrada de acción de la regla crea una columna en la base de datos de Timestream con el nombre de la dimensión.

measure_name

MEASURE_NAME

Nombre del atributo

El nombre del atributo en el resultado de la declaración de consulta cuyo valor se especifica en la columna measure_value::data-type.

measure_value::data-type

MEASURE_VALUE

El valor del atributo en el resultado de la sentencia de consulta. El nombre del atributo está en la columna measure_name.

El valor se interpreta* y se emite como la coincidencia más adecuada de: bigint, boolean, double o varchar. Amazon Timestream crea una columna independiente para cada tipo de datos. El valor del mensaje se puede convertir en otro tipo de datos mediante la función cast() de la declaración de consulta de la regla.

tiempo

MARCA DE TIEMPO

Congela la fecha y la hora de la base de datos.

Este valor lo asigna el motor de reglas o la propiedad timestamp, si está definido.

* El valor del atributo leído en la carga útil del mensaje se interpreta de la siguiente manera. Consulte la Ejemplos para ver una ilustración de cada uno de estos casos.

  • Un valor sin comillas de true o false se interpreta como un tipo boolean.

  • Un número decimal se interpreta como un tipo double.

  • Un valor numérico sin punto decimal se interpreta como un tipo bigint.

  • Una cadena entre comillas se interpreta como un tipo varchar.

  • Los objetos y los valores de la matriz se convierten en cadenas JSON y se almacenan como un tipo varchar.

Ejemplos

El siguiente ejemplo JSON define una acción de regla Timestream con una plantilla de sustitución en una regla 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" } } ] } }

Si se utiliza la acción de regla del tema Timestream definida en el ejemplo anterior con la carga útil del mensaje siguiente, se obtienen los registros de Amazon Timestream escritos en la tabla siguiente.

{ "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"] } }

En la siguiente tabla se muestran las columnas y los registros de la base de datos que se crean al utilizar la acción de regla temática especificada para procesar la carga útil del mensaje anterior. Las columnas device_firmware_sku y device_id son las DIMENSIONES definidas en la acción de la regla temática. La acción de regla temática Timestream crea la columna time y las columnas measure_name y measure_value::*, que rellena con los valores del resultado de la declaración de consulta de la acción de regla temática.

device_firmware_sku device_id measure_name measure_value::bigint measure_value::varchar measure_value::double measure_value::boolean hora
Mis metadatos estáticos iotconsole-159EXAMPLE738-0 complex_value - {"simple_element":42,"array_of_integers":[23,36,56,72],"array of strings":["red","green","blue"]} - - 2020-08-26 22:42:16.423000000
Mis metadatos estáticos iotconsole-159EXAMPLE738-0 integer_value_as_string - 123456789012 - - 2020-08-26 22:42:16.423000000
Mis metadatos estáticos iotconsole-159EXAMPLE738-0 boolean_value - - - TRUE 2020-08-26 22:42:16.423000000
Mis metadatos estáticos iotconsole-159EXAMPLE738-0 integer_value 123456789012 - - - 2020-08-26 22:42:16.423000000
Mis metadatos estáticos iotconsole-159EXAMPLE738-0 string_value - Valor de cadena - - 2020-08-26 22:42:16.423000000
Mis metadatos estáticos iotconsole-159EXAMPLE738-0 matriz_de_enteros - [23,36,56,72] - - 2020-08-26 22:42:16.423000000
Mis metadatos estáticos iotconsole-159EXAMPLE738-0 matriz de cadenas - ["red","green","blue"] - - 2020-08-26 22:42:16.423000000
Mis metadatos estáticos iotconsole-159EXAMPLE738-0 boolean_value_as_string - TRUE - - 2020-08-26 22:42:16.423000000
Mis metadatos estáticos iotconsole-159EXAMPLE738-0 double_value - - 123.456789012 - 2020-08-26 22:42:16.423000000
Mis metadatos estáticos iotconsole-159EXAMPLE738-0 double_value_as_string - 123.45679 - - 2020-08-26 22:42:16.423000000