Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Timestream
L'action de règle Timestream écrit les attributs (mesures) d'un MQTT message dans un tableau Amazon Timestream. Pour plus d'informations sur Amazon Timestream, veuillez consulter Qu'est-ce qu'Amazon Timestream ?.
Note
Amazon Timestream n'est pas disponible dans tous les s. Région AWS Si Amazon Timestream n'est pas disponible dans votre région, il n'apparaîtra pas dans la liste des actions relatives aux règles.
Les attributs que cette règle stocke dans la base de données Timestream sont ceux qui résultent de l'instruction de requête de la règle. La valeur de chaque attribut dans le résultat de l'instruction de requête est analysée pour en déduire le type de données (comme dans le cas d'une ynamoDBvD.2 action). La valeur de chaque attribut est écrite dans son propre enregistrement dans la table Timestream. Pour spécifier ou modifier le type de données d'un attribut, utilisez la cast()fonction contenue dans l'instruction de requête. Pour de plus amples informations sur le contenu de chaque enregistrement Timestream, veuillez consulter. Contenu d'un enregistrement Timestream
Note
Avec SQL V2 (2016-03-23), les valeurs numériques qui sont des nombres entiers, telles que10.0
, sont converties en leur représentation entière (). 10
Leur conversion explicite en une Decimal
valeur, par exemple en utilisant la fonction cast (), n'empêche pas ce comportement : le résultat reste une Integer
valeur. Cela peut provoquer des erreurs de non-concordance de type qui empêchent l'enregistrement des données dans la base de données Timestream. Pour traiter les valeurs numériques entières en tant que Decimal
valeurs, utilisez SQL V1 (08/10/2015) pour l'instruction de requête de règle.
Note
Le nombre maximum de valeurs qu'une action de règle Timestream peut écrire dans une table Amazon Timestream est de 100. Pour de plus amples informations, veuillez consulter la Référence d'Amazon Timestream Quota.
Prérequis
Cette action réglementaire est assortie des exigences suivantes :
-
IAMRôle qui AWS IoT peut assumer l'exécution des
timestream:WriteRecords
opérationstimestream:DescribeEndpoints
et. Pour de plus amples informations, veuillez consulter Accorder à une AWS IoT règle l'accès dont elle a besoin.Dans la AWS IoT console, vous pouvez choisir, mettre à jour ou créer un rôle AWS IoT pour autoriser l'exécution de cette action de règle.
-
Si vous utilisez un client AWS KMS pour chiffrer des données inactives dans Timestream, le service doit être autorisé à les utiliser au nom de l'appelant. AWS KMS key Pour plus d'informations, voir Utilisation AWS des services AWS KMS.
Paramètres
Lorsque vous créez une AWS IoT règle avec cette action, vous devez spécifier les informations suivantes :
databaseName
-
Nom d'une base de données Amazon Timestream qui possède la table destinée à recevoir les enregistrements créés par cette action. Voir aussi
tableName
.Supporte les modèles de substitution : API et AWS CLI uniquement
dimensions
-
Attributs de métadonnées de la série chronologique qui sont écrits dans chaque enregistrement de mesure. Par exemple, le nom et la zone de disponibilité d'une EC2 instance ou le nom du fabricant d'une éolienne sont des dimensions.
name
-
Nom de la dimension de métadonnées. Il s'agit du nom de la colonne dans l'enregistrement de table de base de données.
Les dimensions ne peuvent pas être nommées :
measure_name
measure_value
, outime
. Ces alias sont réservés. Les noms de dimension ne peuvent pas commencer parts_
oumeasure_value
ne peuvent pas contenir le caractère deux-points (:
).Prend en charge les modèles de substitution : Non
value
-
Valeur à écrire dans cette colonne de l'enregistrement de base de données.
Prend en charge les modèles de substitution : Oui
roleArn
-
Nom de ressource Amazon (ARN) du rôle qui AWS IoT autorise l'écriture dans la table de base de données Timestream. Pour de plus amples informations, veuillez consulter Prérequis.
Prend en charge les modèles de substitution : Non
tableName
-
Nom de la table de la base de données dans laquelle les enregistrements de la mesure doivent être inscrits. Voir aussi
databaseName
.Supporte les modèles de substitution : API et AWS CLI uniquement
timestamp
-
Valeur à utiliser pour l'horodatage de l'entrée. Si le champ est vide, l'heure à laquelle l'entrée a été traitée est utilisée.
unit
-
Précision de la valeur d'horodatage résultant de l'expression décrite à la section
value
.Valeurs valides:
SECONDS
|MILLISECONDS
|MICROSECONDS
|NANOSECONDS
L’argument par défaut estMILLISECONDS
. value
-
Expression qui renvoie une valeur temporelle de longue époque.
Vous pouvez utiliser cette time_to_epoch (Chaîne, Chaîne) fonction pour créer un horodatage valide à partir d'une valeur de date ou d'heure transmise dans la charge utile du message.
Contenu d'un enregistrement Timestream
Les données écrites dans la table Amazon Timestream par cette action incluent un horodatage, les métadonnées de l'action de règle Timestream et le résultat de l'instruction de requête de la règle.
Pour chaque attribut (mesure) du résultat de l'instruction de requête, cette action de règle écrit un enregistrement dans la table Timestream spécifiée avec ces colonnes.
Nom de la colonne |
Type d’attribut |
Valeur |
Commentaires |
---|---|---|---|
|
DIMENSION |
La valeur spécifiée dans l'entrée d'action de la règle Timestream. |
Chaque dimension spécifiée dans l'entrée d'action de règle crée une colonne dans la base de données Timestream avec le nom de la dimension. |
nom_mesure |
MEASURE_NAME |
Le nom de l'attribut |
Nom de l'attribut figurant dans le résultat de l'instruction de requête dont la valeur est spécifiée dans la |
valeur_mesure : |
MEASURE_VALUE |
La valeur de l'attribut dans le résultat de l'instruction de requête. Le nom de l'attribut figure dans la |
La valeur est interprétée* et définie comme la correspondance la plus appropriée entre : |
time |
TIMESTAMP |
Date et heure de l'enregistrement dans la base de données. |
Cette valeur est attribuée par le moteur de règles ou par la |
* La valeur d'attribut lue à partir de la charge utile du message est interprétée comme suit. Voir le Exemples pour une illustration de chacun de ces cas.
-
Une valeur sans guillemets de
true
oufalse
est interprétée comme unboolean
type. -
Un nombre décimal est interprété comme un
double
type. -
Une valeur numérique sans point décimal est interprétée comme un
bigint
type. -
Une chaîne entre guillemets est interprétée comme un
varchar
type. -
Les objets et les valeurs des tableaux sont convertis en JSON chaînes et stockés sous forme de
varchar
type.
Exemples
L'JSONexemple suivant définit une action de règle Timestream avec un modèle de substitution dans une AWS IoT règle.
{ "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" } } ] } }
L'utilisation de l'action de règle de rubrique Timestream définie dans l'exemple précédent avec la charge utile des messages suivante entraîne l'écriture des enregistrements Amazon Timestream dans le tableau ci-dessous.
{ "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"] } }
Le tableau suivant affiche les colonnes et les enregistrements de base de données créés à l'aide de l'action de règle de rubrique spécifiée pour traiter la charge utile du message précédent. Les device_id
colonnes device_firmware_sku
et sont DIMENSIONS définies dans l'action de règle du sujet. L'action de règle de sujet Timestream crée la time
colonne et les measure_value::*
colonnes measure_name
et, qu'elle remplit avec les valeurs issues du résultat de l'instruction de requête de l'action de règle de sujet.
device_firmware_sku | device_id | nom_mesure | value_mesure : :bigint | valeur_mesure : varchar | valeur_mesure : double | value_mesure : :booléen | time |
---|---|---|---|---|---|---|---|
Mes métadonnées statiques | console IoT 159 -0 EXAMPLE738 | valeur_complexe | - | {"simple_element » :42, « array_of_integers » : [23,36,56,72], « tableau de chaînes » : ["rouge », « vert », « bleu"]} | - | - | 26-08-2020- 22:42:16.423000000 |
Mes métadonnées statiques | console IoT 159 -0 EXAMPLE738 | valeur_entière en tant que chaîne | - | 123456789012 | - | - | 26-08-2020- 22:42:16.423000000 |
Mes métadonnées statiques | console IoT 159 -0 EXAMPLE738 | valeur_booléenne | - | - | - | TRUE | 26-08-2020- 22:42:16.423000000 |
Mes métadonnées statiques | console IoT 159 -0 EXAMPLE738 | valeur_entière | 123456789012 | - | - | - | 26-08-2020- 22:42:16.423000000 |
Mes métadonnées statiques | console IoT 159 -0 EXAMPLE738 | valeur_chaîne | - | Valeur de chaîne | - | - | 26-08-2020- 22:42:16.423000000 |
Mes métadonnées statiques | console IoT 159 -0 EXAMPLE738 | tableau d'entiers | - | [23,36,56,72] | - | - | 26-08-2020- 22:42:16.423000000 |
Mes métadonnées statiques | console IoT 159 -0 EXAMPLE738 | tableau de chaînes | - | ["rouge », « vert », « bleu"] | - | - | 26-08-2020- 22:42:16.423000000 |
Mes métadonnées statiques | console IoT 159 -0 EXAMPLE738 | valeur_booléenne en tant que chaîne | - | TRUE | - | - | 26-08-2020- 22:42:16.423000000 |
Mes métadonnées statiques | console IoT 159 -0 EXAMPLE738 | valeur_double | - | - | 123,456789012 | - | 26-08-2020- 22:42:16.423000000 |
Mes métadonnées statiques | console IoT 159 -0 EXAMPLE738 | double_value_as_string | - | 123,45679 | - | - | 26-08-2020- 22:42:16.423000000 |