Tutoriels d'expression de formules - AWS IoT SiteWise

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.

Tutoriels d'expression de formules

Vous pouvez suivre ces didacticiels pour utiliser des expressions de formule dans AWS IoT SiteWise.

Utilisation de chaînes dans les formules

Vous pouvez opérer sur des chaînes dans vos expressions de formule. Vous pouvez également saisir des chaînes à partir de variables qui font référence à des propriétés d'attribut et de mesure.

Important

Les expressions de formule ne peuvent générer que des valeurs doubles ou des valeurs de chaîne. Les expressions imbriquées peuvent générer d'autres types de données, tels que des chaînes, mais la formule dans son ensemble doit être évaluée à un nombre ou à une chaîne. Vous pouvez utiliser la fonction jp pour convertir une chaîne en nombre. La valeur booléenne doit être 1 (vrai) ou 0 (faux). Pour plus d’informations, consultez Valeurs non définies, infinies et en dépassement.

AWS IoT SiteWise fournit les fonctionnalités d'expression de formule suivantes que vous pouvez utiliser pour agir sur des chaînes :

Filtrer les points de données

Vous pouvez utiliser la fonction if pour filtrer les points de données qui ne répondent pas à une condition. La if fonction évalue une condition et renvoie des valeurs true et des false résultats différents. Vous pouvez utiliser la constante none comme sortie pour un cas de if fonction afin de supprimer le point de données correspondant à ce cas.

Pour filtrer les points de données qui correspondent à une condition
  • Créez une transformation qui utilise la if fonction pour définir une condition qui vérifie si une condition est remplie et renvoie none la result_if_false valeur result_if_true ou.

Exemple : filtrer les points de données où l'eau ne bout pas

Imaginons un scénario dans lequel vous avez une mesure qui fournit la température (en degrés Celsius) de l'eau dans une machine. temp_c Vous pouvez définir la transformation suivante pour filtrer les points de données où l'eau n'est pas en ébullition :

  • Transformation : boiling_temps = if(gte(temp_c, 100), temp_c, none) — Renvoie la température si elle est supérieure ou égale à 100 degrés Celsius, sinon elle ne renvoie aucun point de données.

Comptage des points de données correspondant à une condition

Vous pouvez utiliser les fonctions de comparaison et sum () pour compter le nombre de points de données pour lesquels une condition est vraie.

Pour compter les points de données qui correspondent à une condition
  1. Créez une transformation qui utilise une fonction de comparaison pour définir une condition de filtre sur une autre propriété.

  2. Créez une métrique qui additionne les points de données lorsque cette condition est remplie.

Exemple : Compter le nombre de points de données où l'eau bout

Imaginons un scénario dans lequel vous avez une mesure qui fournit la température (en degrés Celsius) de l'eau dans une machine. temp_c Vous pouvez définir les propriétés de transformation et de métrique suivantes pour compter le nombre de points de données où l'eau bout :

  • Transformation : is_boiling = gte(temp_c, 100) — Renvoie 1 si la température est supérieure ou égale à 100 degrés Celsius, sinon elle renvoie la valeur0.

  • Métrique : boiling_count = sum(is_boiling) — Renvoie le nombre de points de données où l'eau est en ébullition.

Données tardives dans les formules

AWS IoT SiteWise prend en charge l'ingestion tardive de données datant de moins de 7 jours. Lorsqu'il AWS IoT SiteWise reçoit des données tardives, il recalcule les valeurs existantes pour toute métrique qui saisit les données tardives dans une fenêtre précédente. Ces nouveaux calculs entraînent des frais de traitement des données.

Note

Lorsqu'il AWS IoT SiteWise calcule des propriétés qui entrent des données tardives, il utilise l'expression de formule actuelle de chaque propriété.

Après avoir AWS IoT SiteWise recalculé une fenêtre passée pour une métrique, elle remplace la valeur précédente pour cette fenêtre. Si vous avez activé les notifications pour cette métrique, émet AWS IoT SiteWise également une notification de valeur de propriété. Cela signifie que vous pouvez recevoir une nouvelle notification de mise à jour de valeur de propriété pour la même propriété et le même horodatage que ceux pour lesquels vous avez déjà reçu une notification. Si vos applications ou lacs de données utilisent des notifications de valeur de propriété, vous devez mettre à jour la valeur précédente avec la nouvelle valeur afin que leurs données soient exactes.

Qualité des données dans les formules

Dans AWS IoT SiteWise, chaque point de données possède un code de qualité, qui peut être l'un des suivants :

  • GOOD— Les données ne sont affectées par aucun problème.

  • BAD— Les données sont affectées par un problème tel qu'une défaillance du capteur.

  • UNCERTAIN— Les données sont affectées par un problème tel que l'imprécision du capteur.

AWS IoT SiteWise ne consomme que des données GOOD de qualité lorsqu'il calcule les transformations et les métriques. AWS IoT SiteWise ne produit que des données GOOD de qualité pour des calculs réussis. Si un calcul échoue, aucun point de données AWS IoT SiteWise n'est généré pour ce calcul. Cela peut se produire si un calcul aboutit à une valeur non définie, infinie ou en dépassement.

Pour de plus amples informations sur l'interrogation des données et les filtres par qualité de données, veuillez consulter Interrogez les données de AWS IoT SiteWise.

Valeurs non définies, infinies et en dépassement

Certaines expressions de formule (telles que x / 0sqrt(-1), oulog(0)) calculent des valeurs non définies dans un système de nombres réels, infinies ou situées en dehors de la plage prise en charge par AWS IoT SiteWise. Lorsque l'expression d'une propriété d'actif calcule une valeur indéfinie, infinie ou de dépassement, AWS IoT SiteWise elle ne produit aucun point de données pour ce calcul.

AWS IoT SiteWise ne produit pas non plus de point de données s'il calcule une valeur non numérique à la suite d'une expression de formule. Cela signifie que si vous définissez une formule qui calcule une chaîne, un tableau ou la constante none, elle AWS IoT SiteWise ne produit aucun point de données pour ce calcul.

Exemples

Chacune des expressions de formule suivantes génère une valeur qui ne AWS IoT SiteWise peut pas être représentée sous forme de nombre. AWS IoT SiteWise ne produit pas de point de données lorsqu'il calcule ces expressions de formule.

  • x / 0n'est pas défini.

  • log(0)n'est pas défini.

  • sqrt(-1)n'est pas défini dans un système de nombres réels.

  • "hello" + " world"est une chaîne.

  • jp('{"values":[3,6,7]}', '$.values')est un tableau.

  • if(gte(temp, 300), temp, none)c'est none quand temp est inférieur à300.