

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

L'operazione della regola Timestream scrive attributi (misure) da un messaggio MQTT in una tabella Amazon Timestream. Per ulteriori informazioni su Amazon Timestream, consulta [Che cos'è Amazon Timestream?](https://docs.aws.amazon.com/timestream/latest/developerguide/what-is-timestream.html).

**Nota**  
Amazon Timestream non è disponibile in tutti i sistemi. Regione AWS Se Amazon Timestream non è disponibile nella tua regione, non verrà visualizzato nell'elenco delle operazioni della regola.

Gli attributi memorizzati da questa regola nel database Timestream sono quelli derivanti dall'istruzione query della regola. Il valore di ogni attributo nel risultato dell'istruzione query viene analizzato per dedurre il suo tipo di dati (come in un’operazione [Dynamo DBv2](dynamodb-v2-rule-action.md)). Il valore di ogni attributo viene scritto nel proprio record nella tabella Timestream. Per specificare o modificare il tipo di dati di un attributo, utilizza la funzione [`cast()`](iot-sql-functions.md#iot-sql-function-cast) nell'istruzione di query. Per ulteriori informazioni sul contenuto di ogni record Timestream, consulta [Contenuto del record Timestream](#timestream-rule-action-data).

**Nota**  
Con SQL V2 (23/03/2016), i valori numerici che sono numeri interi, come `10.0`, vengono convertite la loro rappresentazione Integer (`10`). Trasmettendoli esplicitamente a un valore `Decimal`, ad esempio utilizzando la funzione [cast()](iot-sql-functions.md#iot-sql-function-cast), non si impedisce questo comportamento: il risultato è ancora un valore `Integer`. Ciò può causare errori di mancata corrispondenza dei tipi, che impediscono la registrazione dei dati nel database Timestream. Per elaborare in modo affidabile valori numerici interi come i valori `Decimal`, utilizza SQL V1 (08/10/2015) per l'istruzione di query della regola.

**Nota**  
Il numero massimo di valori che un'azione regola Timestream può scrivere in una tabella Amazon Timestream è 100. Per ulteriori informazioni, consulta [Riferimento della quota Amazon Timestream](https://docs.aws.amazon.com//timestream/latest/developerguide/ts-limits.html#limits.default). 

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

Questa operazione della regola presenta i seguenti requisiti:
+ Un ruolo IAM che AWS IoT può assumere per eseguire le operazioni `timestream:DescribeEndpoints` and`timestream:WriteRecords`. Per ulteriori informazioni, consulta [Concedere a qualsiasi AWS IoT regola l'accesso richiesto](iot-create-role.md).

  Nella AWS IoT console, puoi scegliere, aggiornare o creare un ruolo che consenta di AWS IoT eseguire questa azione relativa alla regola.
+ Se utilizzi un cliente- AWS KMS per crittografare i dati inattivi in Timestream, il servizio deve disporre dell'autorizzazione a utilizzarli per AWS KMS key conto del chiamante. Per ulteriori informazioni, consulta [Come i servizi utilizzano KMS AWS](https://docs.aws.amazon.com/kms/latest/developerguide/service-integration.html). AWS 

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

Quando crei una AWS IoT regola con questa azione, devi specificare le seguenti informazioni:

`databaseName`  
Il nome di un database Amazon Timestream con la tabella per ricevere i record creati dall'azione. Consulta anche `tableName`.  
Supporta [modelli sostitutivi](iot-substitution-templates.md): solo API AWS CLI 

`dimensions`  
Attributi dei metadati delle serie temporali scritti in ogni record di misura. Ad esempio, il nome e la zona di disponibilità di un'istanza EC2 o il nome del produttore di una turbina eolica sono dimensioni.    
`name`  
Il nome della dimensione dei metadati. Questo è il nome della colonna nel record della tabella del database.  
Le dimensioni non possono essere denominate: `measure_name`, `measure_value` oppure `time`. Questi nomi sono riservati. I nomi delle dimensioni non possono iniziare con `ts_` o `measure_value` e non possono contenere i due punti (`:`).  
Supporta [modelli di sostituzione](iot-substitution-templates.md): no  
`value`  
Il valore da scrivere in questa colonna del record di database.  
Supporta [modelli di sostituzione](iot-substitution-templates.md): sì

`roleArn`  
L’Amazon Resource Name (ARN) del ruolo che concede l'autorizzazione AWS IoT per scrivere nella tabella del database Timestream. Per ulteriori informazioni, consulta [Requisiti](#timestream-rule-action-requirements).  
Supporta [modelli di sostituzione](iot-substitution-templates.md): no

`tableName`  
Il nome della tabella del database in cui scrivere i registri delle misure. Consulta anche `databaseName`.  
Supporta [modelli sostitutivi: API](iot-substitution-templates.md) e solo AWS CLI 

`timestamp`  
 Il valore da utilizzare per il timestamp della voce. Se vuoto, viene utilizzata l'ora in cui la voce è stata elaborata.     
`unit`  
La precisione del valore timestamp risultante dall’espressione descritta in `value`.  
Valori validi: `SECONDS` \$1 `MILLISECONDS` \$1 `MICROSECONDS` \$1 `NANOSECONDS`. Il valore predefinito è `MILLISECONDS`.  
`value`  
Un'espressione che restituisce un lungo valore temporale epoch.  
Puoi utilizzare la funzione [time\$1to\$1epoch(String, String)](iot-sql-functions.md#iot-sql-function-time-to-epoch) per creare un timestamp valido da un valore di data o ora passato nel payload del messaggio. 

## Contenuto del record Timestream
<a name="timestream-rule-action-data"></a>

I dati scritti nella tabella Amazon Timestream da questa operazione includono un timestamp, i metadati dell'operazione della regola Timestream e il risultato dell'istruzione query della regola.

Per ogni attributo (misura) nel risultato dell'istruzione query, questa operazione della regola scrive un record nella tabella TimeStream specificata con queste colonne.


|  Nome della colonna  |  Tipo di attributo  |  Valore  |  Commenti  | 
| --- | --- | --- | --- | 
|  *dimension-name*  |  DIMENSIONE  |  Il valore specificato nella voce di operazione della regola Timestream.  |  Ciascuna **Dimensione** specificata nella voce di operazione della regola crea una colonna nel database Timestream con il nome della dimensione.  | 
|  measure\$1name  |  MEASURE\$1NAME  |  Il nome dell'attributo  |  Nome dell'attributo nel risultato dell'istruzione query il cui valore è specificato nella colonna `measure_value::data-type`.  | 
|  valore\$1misura:: *data-type*  |  MISURA\$1VALORE  |  Il valore dell'attributo nel risultato dell'istruzione di query. Il nome dell'attributo si trova nella colonna `measure_name`.  |  Il valore viene interpretato\$1 e lanciato come la migliore corrispondenza di: `bigint`, `boolean`, `double` oppure `varchar`. Amazon Timestream crea una colonna separata per ogni tipo di dati. Il valore nel messaggio può essere sottoposto a trasferimento su un altro tipo di dati utilizzando la funzione [`cast()`](iot-sql-functions.md#iot-sql-function-cast) nell'istruzione query della regola.  | 
|  time  |  TIMESTAMP  |  La data e l'ora della registrazione nel database.  |  Questo valore viene assegnato dal motore delle regole o dalla proprietà `timestamp`, se è definita.  | 

\$1 Il valore dell'attributo, letto dal payload del messaggio, viene interpretato come segue. Consulta [Esempi](#timestream-rule-action-examples) per un'illustrazione di ciascuno di questi casi.
+ Un valore non quotato di `true` o `false` viene interpretato come `boolean`.
+ Un numerico decimale viene interpretato come `double`.
+ Un valore numerico senza virgola decimale viene interpretato come `bigint`.
+ Una stringa tra virgolette viene interpretata come `varchar`.
+ Gli oggetti e i valori dell'array vengono convertiti in stringhe JSON e memorizzati come `varchar`.

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

Il seguente esempio JSON definisce un'azione della regola Timestream con un modello di sostituzione in una regola. 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"
        }
      }
    ]
  }
}
```

Se utilizzi l'operazione della regola argomento del timestream definita nell'esempio precedente con il payload del messaggio seguente, si ottengono i record di Amazon Timestream scritti nella tabella che segue.

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

Nella tabella seguente vengono visualizzate le colonne del database e i record creati utilizzando l'operazione della regola dell’argomento specificata per elaborare il payload del messaggio precedente. Le colonne `device_firmware_sku` e `device_id` sono le DIMENSIONI definite nell'operazione della regola dell’argomento. L'azione della regola dell’argomento Timestream crea la colonna `time`, `measure_name` e `measure_value::*`, che riempie con i valori del risultato dell'istruzione query dell'operazione della regola dell’argomento. 


| device\$1firmware\$1sku | device\$1id | measure\$1name | measure\$1value::bigint | measure\$1value::varchar | measure\$1value::double | measure\$1value::boolean | time | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| I miei metadati statici | EXAMPLE738iotconsole-159 -0 | 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 | 
| I miei metadati statici | iotconsole-159 -0 EXAMPLE738 | integer\$1value\$1as\$1string | - | 123456789012 | - | - | 2020-08-26 22:42:16.423000000 | 
| I miei metadati statici | iotconsole-159 -0 EXAMPLE738 | boolean\$1value | - | - | - | TRUE | 2020-08-26 22:42:16.423000000 | 
| I miei metadati statici | iotconsole-159 -0 EXAMPLE738 | integer\$1value | 123456789012 | - | - | - | 2020-08-26 22:42:16.423000000 | 
| I miei metadati statici | iotconsole-159 -0 EXAMPLE738 | string\$1value | - | Valore di stringa | - | - | 2020-08-26 22:42:16.423000000 | 
| I miei metadati statici | iotconsole-159 -0 EXAMPLE738 | array\$1of\$1integers | - | [23,36,56,72] | - | - | 2020-08-26 22:42:16.423000000 | 
| I miei metadati statici | iotconsole-159 -0 EXAMPLE738 | matrice di stringhe | - | ["red","green","blue"] | - | - | 2020-08-26 22:42:16.423000000 | 
| I miei metadati statici | iotconsole-159 -0 EXAMPLE738 | boolean\$1value\$1as\$1string | - | TRUE | - | - | 2020-08-26 22:42:16.423000000 | 
| I miei metadati statici | iotconsole-159 -0 EXAMPLE738 | double\$1value | - | - | 123,456789012 | - | 2020-08-26 22:42:16.423000000 | 
| I miei metadati statici | console iot-159 -0 EXAMPLE738 | double\$1value\$1as\$1string | - | 123,45679 | - | - | 2020-08-26 22:42:16.423000000 | 