

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.

# Timestream
<a name="timestream-rule-action"></a>

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?](https://docs.aws.amazon.com/timestream/latest/developerguide/what-is-timestream.html)

**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 [Dinamo DBv2](dynamodb-v2-rule-action.md)). 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()`](iot-sql-functions.md#iot-sql-function-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](#timestream-rule-action-data).

**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](iot-sql-functions.md#iot-sql-function-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](https://docs.aws.amazon.com//timestream/latest/developerguide/ts-limits.html#limits.default). 

## Requisitos
<a name="timestream-rule-action-requirements"></a>

Esta regla tiene los siguientes requisitos:
+ Una función de IAM que AWS IoT puede asumir para realizar las `timestream:DescribeEndpoints` operaciones y. `timestream:WriteRecords` Para obtener más información, consulte [Otorgar a una AWS IoT regla el acceso que requiere](iot-create-role.md).

  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, consulte [Cómo AWS](https://docs.aws.amazon.com/kms/latest/developerguide/service-integration.html) utilizan los servicios KMS. AWS 

## Parameters
<a name="timestream-rule-action-parameters"></a>

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](iot-substitution-templates.md): 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](iot-substitution-templates.md): No  
`value`  
El valor que se va a escribir en esta columna del registro de la base de datos.  
Admite [plantillas de sustitución](iot-substitution-templates.md): 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](#timestream-rule-action-requirements).  
Admite [plantillas de sustitución](iot-substitution-templates.md): 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](iot-substitution-templates.md): 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` \$1 `MILLISECONDS` \$1 `MICROSECONDS` \$1 `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\$1to\$1epoch(String, String)](iot-sql-functions.md#iot-sql-function-time-to-epoch) 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
<a name="timestream-rule-action-data"></a>

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\$1name  |  MEASURE\$1NAME  |  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`.  | 
|  valor\$1medida: *data-type*  |  MEASURE\$1VALUE  |  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\$1 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()`](iot-sql-functions.md#iot-sql-function-cast) de la declaración de consulta de la regla.  | 
|  tiempo  |  TIMESTAMP  |  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.  | 

\$1 El valor del atributo leído en la carga útil del mensaje se interpreta de la siguiente manera. Consulte la [Ejemplos](#timestream-rule-action-examples) 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
<a name="timestream-rule-action-examples"></a>

El siguiente ejemplo de 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\$1firmware\$1sku | device\$1id | measure\$1name | measure\$1value::bigint | measure\$1value::varchar | measure\$1value::double | measure\$1value::boolean | hora | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Mis metadatos estáticos | iotconsole-159 -0 EXAMPLE738 | complex\$1value | - | \$1"simple\$1element":42,"array\$1of\$1integers":[23,36,56,72],"array of strings":["red","green","blue"]\$1 | - | - | 2020-08-26 22:42:16.423000000 | 
| Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | integer\$1value\$1as\$1string | - | 123456789012 | - | - | 2020-08-26 22:42:16.423000000 | 
| Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | boolean\$1value | - | - | - | TRUE | 2020-08-26 22:42:16.423000000 | 
| Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | integer\$1value | 123456789012 | - | - | - | 2020-08-26 22:42:16.423000000 | 
| Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | string\$1value | - | Valor de cadena | - | - | 2020-08-26 22:42:16.423000000 | 
| Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | matriz\$1de\$1enteros | - | [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\$1value\$1as\$1string | - | TRUE | - | - | 2020-08-26 22:42:16.423000000 | 
| Mis metadatos estáticos | consola iot-159 -0 EXAMPLE738 | double\$1value | - | - | 123.456789012 | - | 2020-08-26 22:42:16.423000000 | 
| Mis metadatos estáticos | consola IoT - 159 - 0 EXAMPLE738 | double\$1value\$1as\$1string | - | 123.45679 | - | - | 2020-08-26 22:42:16.423000000 | 