Timestream - AWS IoT Core

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

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

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 DynamoDBv2). 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() nell'istruzione di query. Per ulteriori informazioni sul contenuto di ogni record Timestream, consulta Contenuto del record Timestream.

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(), 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.

Requisiti

Questa operazione della regola presenta i seguenti requisiti:

  • Un ruolo IAM che AWS IoT può assumere per eseguire le operazioni timestream:DescribeEndpoints andtimestream:WriteRecords. Per ulteriori informazioni, consulta Concedere a qualsiasi AWS IoT regola l'accesso richiesto.

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

Parametri

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: 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: no

value

Il valore da scrivere in questa colonna del record di database.

Supporta modelli di sostituzione: 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.

Supporta modelli di sostituzione: no

tableName

Il nome della tabella del database in cui scrivere i registri delle misure. Consulta anche databaseName.

Supporta modelli sostitutivi: API 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 | MILLISECONDS | MICROSECONDS | NANOSECONDS. Il valore predefinito è MILLISECONDS.

value

Un'espressione che restituisce un lungo valore temporale epoch.

Puoi utilizzare la funzione time_to_epoch(String, String) per creare un timestamp valido da un valore di data o ora passato nel payload del messaggio.

Contenuto del record Timestream

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 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_name

MEASURE_NAME

Il nome dell'attributo

Nome dell'attributo nel risultato dell'istruzione query il cui valore è specificato nella colonna measure_value::data-type.

measure_value::data-type

MISURA_VALORE

Il valore dell'attributo nel risultato dell'istruzione di query. Il nome dell'attributo si trova nella colonna measure_name.

Il valore viene interpretato* 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() 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.

* Il valore dell'attributo, letto dal payload del messaggio, viene interpretato come segue. Consulta Esempi 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

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_firmware_sku device_id measure_name measure_value::bigint measure_value::varchar measure_value::double measure_value::boolean time
I miei metadati statici 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
I miei metadati statici iotconsole-159EXAMPLE738-0 integer_value_as_string - 123456789012 - - 2020-08-26 22:42:16.423000000
I miei metadati statici iotconsole-159EXAMPLE738-0 boolean_value - - - TRUE 2020-08-26 22:42:16.423000000
I miei metadati statici iotconsole-159EXAMPLE738-0 integer_value 123456789012 - - - 2020-08-26 22:42:16.423000000
I miei metadati statici iotconsole-159EXAMPLE738-0 string_value - Valore di stringa - - 2020-08-26 22:42:16.423000000
I miei metadati statici iotconsole-159EXAMPLE738-0 array_of_integers - [23,36,56,72] - - 2020-08-26 22:42:16.423000000
I miei metadati statici iotconsole-159EXAMPLE738-0 matrice di stringhe - ["red","green","blue"] - - 2020-08-26 22:42:16.423000000
I miei metadati statici iotconsole-159EXAMPLE738-0 boolean_value_as_string - TRUE - - 2020-08-26 22:42:16.423000000
I miei metadati statici iotconsole-159EXAMPLE738-0 double_value - - 123,456789012 - 2020-08-26 22:42:16.423000000
I miei metadati statici iotconsole-159EXAMPLE738-0 double_value_as_string - 123,45679 - - 2020-08-26 22:42:16.423000000