Transformation des données (transformations) - 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.

Transformation des données (transformations)

Les transformations sont des expressions mathématiques qui mappent les points de données des propriétés des actifs d'un formulaire à l'autre. Une expression de transformation comprend des variables de propriété d'actif, des littéraux, des opérateurs et des fonctions. Les points de données transformés entretiennent une one-to-one relation avec les points de données d'entrée. AWS IoT SiteWise calcule un nouveau point de données transformé chaque fois que l'une des propriétés d'entrée reçoit un nouveau point de données.

Par exemple, si votre ressource a un flux de mesure de température nommé Temperature_C avec des unités en Celsius, vous pouvez convertir chaque point de données en Fahrenheit avec la formule Temperature_F = 9/5 * Temperature_C + 32. Chaque fois qu'un point de données est AWS IoT SiteWise reçu dans le flux de Temperature_C mesure, la Temperature_F valeur correspondante est calculée en quelques secondes et disponible en tant que Temperature_F propriété.

Si votre transformation contient plusieurs variables, le point de données qui arrive le plus tôt lance immédiatement le calcul. Prenons l'exemple d'un fabricant de pièces utilisant une transformation pour contrôler la qualité de ses produits. En utilisant une norme différente basée sur le type de pièce, le fabricant utilise les mesures suivantes pour représenter le processus :

  • Part_Number‐ Chaîne identifiant le type de pièce.

  • Good_Count‐ Un entier qui augmente d'un si la pièce répond à la norme.

  • Bad_Count‐ Un entier qui augmente d'un si la pièce ne répond pas à la norme.

Le fabricant crée également une transformationQuality_Monitor, qui équivaut à if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal").

Cette transformation surveille le pourcentage de pièces défectueuses produites pour un type de pièce spécifique. Si le numéro de pièce est BLT123 et que le pourcentage de pièces défectueuses dépasse 10 % (0,1), la transformation est renvoyée. "Caution" Dans le cas contraire, la transformation est renvoyée"Normal".

Note
  • Si Part_Number elle reçoit un nouveau point de données avant les autres mesures, la Quality_Monitor transformation utilise la nouvelle Part_Number valeur et les dernières Bad_Count valeurs Good_Count et. Pour éviter les erreurs, effectuez une réinitialisation Good_Count et Bad_Count avant le prochain cycle de fabrication.

  • Utilisez des métriques si vous souhaitez évaluer les expressions uniquement une fois que toutes les variables ont reçu de nouveaux points de données.

Définition des transformations (console)

Lorsque vous définissez une transformation pour un modèle d'actif dans la AWS IoT SiteWise console, vous spécifiez les paramètres suivants :

  • Nom : nom de la propriété.

  • Unité — (Facultatif) L'unité scientifique de la propriété, telle que mm ou Celsius.

  • Type de données : type de données de la transformation, qui peut être double ou chaîne.

  • ID externe — (Facultatif) Il s'agit d'un identifiant défini par l'utilisateur. Pour plus d’informations, consultez Référencement d'objets avec des identifiants externes dans le Guide de l’utilisateur AWS IoT SiteWise .

  • Formule — L'expression de transformation. Les expressions de transformation ne peuvent pas utiliser de fonctions d'agrégation ou de fonctions temporelles. Pour ouvrir la fonction de saisie automatique, commencez à taper ou appuyez sur la flèche vers le bas. Pour plus d’informations, consultez Utilisation d'expressions de formule.

    Important

    Les transformations peuvent saisir des propriétés de type entier, double, booléen ou chaîne. Les booléens sont convertis en 0 (faux) et 1 (vrai).

    Les transformations doivent saisir une ou plusieurs propriétés qui ne sont pas des attributs et un certain nombre de propriétés d'attribut. AWS IoT SiteWise calcule un nouveau point de données transformé chaque fois que la propriété d'entrée qui n'est pas un attribut reçoit un nouveau point de données. Les nouvelles valeurs d'attribut ne lancent pas les mises à jour de transformation. Le même taux de demande pour les opérations de l'API de données relatives aux propriétés des actifs s'applique aux résultats des calculs de transformation.

    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.

Pour plus d’informations, consultez Création d'un modèle de ressource (console).

Définition des transformations (AWS CLI)

Lorsque vous définissez une transformation pour un modèle d'actif à l'aide de l' AWS IoT SiteWise API, vous spécifiez les paramètres suivants :

  • name— Le nom de la propriété.

  • unit— (Facultatif) L'unité scientifique de la propriété, telle que mm ou Celsius.

  • dataType— Le type de données de la transformation, qui doit être DOUBLE ouSTRING.

  • externalId— (Facultatif) Il s'agit d'un identifiant défini par l'utilisateur. Pour plus d’informations, consultez Référencement d'objets avec des identifiants externes dans le Guide de l’utilisateur AWS IoT SiteWise .

  • expression— L'expression de transformation. Les expressions de transformation ne peuvent pas utiliser de fonctions d'agrégation ou de fonctions temporelles. Pour plus d’informations, consultez Utilisation d'expressions de formule.

  • variables— La liste des variables qui définit les autres propriétés de votre actif à utiliser dans l'expression. Chaque structure de variable contient un nom simple à utiliser dans l'expression et une structure value qui identifie la propriété à lier à cette variable. La structure value contient les informations suivantes :

    • propertyId— L'ID de la propriété à partir de laquelle les valeurs doivent être saisies. Vous pouvez utiliser le nom de la propriété au lieu de son ID.

    Important

    Les transformations peuvent saisir des propriétés de type entier, double, booléen ou chaîne. Les booléens sont convertis en 0 (faux) et 1 (vrai).

    Les transformations doivent saisir une ou plusieurs propriétés qui ne sont pas des attributs et un certain nombre de propriétés d'attribut. AWS IoT SiteWise calcule un nouveau point de données transformé chaque fois que la propriété d'entrée qui n'est pas un attribut reçoit un nouveau point de données. Les nouvelles valeurs d'attribut ne lancent pas les mises à jour de transformation. Le même taux de demande pour les opérations de l'API de données relatives aux propriétés des actifs s'applique aux résultats des calculs de transformation.

    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.

Exemple définition de la transformation

L'exemple suivant illustre une propriété de transformation qui convertit les données de mesure de température d'une ressource de Celsius en Fahrenheit. Cet objet est un exemple d'objet AssetModelPropertycontenant une transformation. Vous pouvez spécifier cet objet dans le cadre de la charge utile de la CreateAssetModeldemande pour créer une propriété de transformation. Pour plus d’informations, consultez Création d'un modèle d'actifs (AWS CLI).

{ ... "assetModelProperties": [ ... { "name": "Temperature F", "dataType": "DOUBLE", "type": { "transform": { "expression": "9/5 * temp_c + 32", "variables": [ { "name": "temp_c", "value": { "propertyId": "Temperature C" } } ] } }, "unit": "Fahrenheit" } ], ... }
Exemple définition de transformation contenant trois variables

L'exemple suivant illustre une propriété de transformation qui renvoie un message d'avertissement ("Caution") si plus de 10 % des pièces du BLT123 ne répondent pas à la norme. Dans le cas contraire, il renvoie un message d'information ("Normal").

{ ... "assetModelProperties": [ ... { "name": "Quality_Monitor", "dataType": "STRING", "type": { "transform": { "expression": "if(eq(Part_Number,"BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")", "variables": [ { "name": "Part_Number", "value": { "propertyId": "Part Number" } }, { "name": "Good_Count", "value": { "propertyId": "Good Count" } }, { "name": "Bad_Count", "value": { "propertyId": "Bad Count" } } ] } } } ... }