View a markdown version of this page

Transformer les 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.

Transformer les données (transformations)

Les transformations sont des expressions mathématiques qui mappent les points de données des propriétés de ressource d’un formulaire vers un 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 relation biunivoque 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.

Note

Pour les mises à jour de propriétés avec le même horodatage, les valeurs de sortie peuvent être remplacées par des mises à jour provenant d'autres propriétés entrantes.

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 AWS IoT SiteWise qu'un point de données est reçu dans le flux de Temperature_C mesures, 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 qui utilise une transformation pour contrôler la qualité de ses produits. En utilisant une norme différente en fonction du 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 de 1 si la partie est conforme à la norme.

  • Bad_Count- Un entier qui augmente de 1 si la partie n'est pas conforme à 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 un nouveau point de données est Part_Number reçu avant les autres mesures, la Quality_Monitor transformation utilise la nouvelle Part_Number valeur et les dernières Good_Count Bad_Count valeurs. Pour éviter les erreurs, réinitialisez 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éfinir les 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) 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 String.

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

  • Formule  : 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 de plus amples informations, veuillez consulter Utiliser des 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 de mises à jour de transformation. Le même taux de demande pour les opérations d'API relatives aux données sur les 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 correspondre à 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 de plus amples informations, veuillez consulter Valeurs non définies, infinies et en dépassement.

Pour de plus amples informations, veuillez consulter Création d'un modèle d'actif (console).

Définissez les 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— 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 Objets de référence dotés d'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 de plus amples informations, veuillez consulter Utiliser des 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 de mises à jour de transformation. Le même taux de demande pour les opérations d'API relatives aux données sur les 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 correspondre à 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 de plus amples informations, veuillez consulter 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 AssetModelProperty contenant une transformation. Vous pouvez spécifier cet objet dans le cadre de la charge utile de la demande CreateAssetModel pour créer une propriété de transformation. Pour de plus amples informations, veuillez consulter Créez un modèle d'actif (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 composants 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" } } ] } } } ... }