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.
La acción de la regla Timestream escribe los atributos (medidas) de un MQTT mensaje 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 todos los s. 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 D 2 ynamoDBv). 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 la SQL versión 2 (23 de marzo de 2016), los valores numéricos que son números enteros, por ejemplo, se convierten en su 10.0
representación de enteros (). 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 valores numéricos de números enteros como Decimal
valores, utilice SQL V1 (2015-10-08) como sentencia de consulta de reglas.
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 IAM rol que AWS IoT puede asumir para realizar las operaciones y.
timestream:DescribeEndpoints
timestream:WriteRecords
Para obtener más información, consulte Otorgar a una AWS IoT regla el acceso que requiere.En la AWS IoT consola, puede elegir, actualizar o crear un rol que permita AWS IoT realizar esta acción de regla.
-
Si utilizas un cliente AWS KMS para cifrar los datos en reposo en Timestream, el servicio debe tener permiso para utilizarlos AWS KMS key en nombre de la persona que llama. Para obtener más información, consulta Cómo se utilizan los servicios. AWSAWS KMS
Parámetros
Al crear una AWS IoT regla con esta acción, debe especificar la siguiente información:
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 solo
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 EC2 instancia 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
otime
. Estos nombres están reservados. Los nombres de las dimensiones no pueden empezar ports_
o nimeasure_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 del recurso de Amazon (ARN) del rol que concede el AWS IoT permiso para escribir en la tabla de la 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
.Soporta plantillas de sustitución: API y solo AWS CLI
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 esMILLISECONDS
. 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 |
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 |
valor_medida: |
MEASURE_VALUE |
El valor del atributo en el resultado de la sentencia de consulta. El nombre del atributo está en la columna |
El valor se interpreta* y se emite como la coincidencia más adecuada de: |
hora |
TIMESTAMP |
Congela la fecha y la hora de la base de datos. |
Este valor lo asigna el motor de reglas o la propiedad |
* 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
ofalse
se interpreta como un tipoboolean
. -
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 JSON cadenas y se almacenan como un tipo.
varchar
Ejemplos
El siguiente JSON ejemplo define una acción de regla Timestream con una plantilla de sustitución en una AWS IoT regla.
{
"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 device_id
columnas device_firmware_sku
y son las DIMENSIONS definidas en la acción de la regla del tema. 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-159 -0 EXAMPLE738 | 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 | consola iot-159 -0 EXAMPLE738 | integer_value_as_string | - | 123456789012 | - | - | 2020-08-26 22:42:16.423000000 |
Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | boolean_value | - | - | - | TRUE | 2020-08-26 22:42:16.423000000 |
Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | integer_value | 123456789012 | - | - | - | 2020-08-26 22:42:16.423000000 |
Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | string_value | - | Valor de cadena | - | - | 2020-08-26 22:42:16.423000000 |
Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | matriz_de_enteros | - | [23,36,56,72] | - | - | 2020-08-26 22:42:16.423000000 |
Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | matriz de cadenas | - | ["red","green","blue"] | - | - | 2020-08-26 22:42:16.423000000 |
Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | boolean_value_as_string | - | TRUE | - | - | 2020-08-26 22:42:16.423000000 |
Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | double_value | - | - | 123.456789012 | - | 2020-08-26 22:42:16.423000000 |
Mis metadatos estáticos | consola IoT - 159 - 0 EXAMPLE738 | double_value_as_string | - | 123.45679 | - | - | 2020-08-26 22:42:16.423000000 |