Ajouter une transformation à un type

Ce guide explique comment ajouter une transformation à un type donné dans Manufacturing Data Engine (MDE).

Choisir une transformation

Plusieurs transformations sont disponibles dans MDE. Le package de configuration par défaut fournit deux transformations qui peuvent être associées à n'importe quel type disponible dans ce package de configuration par défaut :

  • Transformation Group Event Change : cette transformation surveille n'importe quel champ dans un tag ou un groupe de tags, et génère un événement chaque fois que les valeurs surveillées changent dans l'un de ces tags. Cette transformation peut être associée à un type de n'importe quel archétype.
  • Transformation Windowing : cette transformation applique une fonction Windowing à tous les tags d'un type. Windowing fait référence au résumé de plusieurs enregistrements sur une période donnée dans un seul enregistrement. La transformation Windowing peut être associée à n'importe quel type de n'importe quel archétype. Elle peut résumer les enregistrements de tags de 1 à 60 minutes. Le résultat de la transformation est un message brut contenant les valeurs récapitulatives de l'expression de valeur pendant la période sélectionnée.

Le package de configuration par défaut fournit les classes de messages, les analyseurs et les types requis pour traiter les messages bruts émis par ces deux transformations. Les deux types fournis pour traiter les messages bruts générés par chaque transformation sont les suivants :

  • group-event-change-records: type de destination pour les messages de sortie de la transformation Group Event Change.
  • window-transformation-records: type de destination pour les messages de sortie de la transformation Fenêtrage.

Pour activer une transformation, la transformation spécifiée doit être sélectionnée dans l'interface Web de type ou associée au type à l'aide du point de terminaison de l'API de configuration.

Répertorier les transformations disponibles

Pour explorer la liste des transformations disponibles dans n'importe quel système MDE, procédez comme suit :

REST

Il existe un point de terminaison API Configuration Manager dédié pour répertorier les transformations disponibles :

GET /configuration/v1/transformations

Il renvoie le JSON suivant avec les transformations disponibles et leurs fonctionnalités :

{
  "transformations": [
    {
      "name": "eventChange",
      "displayName": "MDE Event Change",
      "description": "Monitors the value of one or more tag that has a common group key. Fires an event whenever any of the contributing tags changes its value",
      "disabled": false,
      "sample": {
        "keyExpression": {
          "displayName": "Key Expression",
          "description": "A SpEL expression that extracts the group key from the MDE message.proto which groups one or more tags as one unit whose values will be monitored for a change. The key must evaluate to a string",
          "value": "#message['tagName']"
        },
        "valueExpression": {
          "displayName": "Value Expression",
          "description": "A SpEL expression that extracts the value from the MDE message.proto to be monitored for a change. The value must evaluate to a string",
          "value": "#message['data']['numeric'].toString()"
        }
      }
    },
    {
      "name": "window",
      "displayName": "MDE Numeric Value Windowing",
      "description": "Create a periodic stats event that provides values such as average, min, and max for an expression that extracts a numeric value from the tag messages",
      "disabled": false,
      "sample": {
        "durationMinutes": {
          "displayName": "Window Duration in Minutes",
          "description": "A positive integer that represents how long the window will summarize events before producing the summary tag, this is in the granularity of minutes and it cannot be higher than 2 hours",
          "value": "1"
        },
        "valueExpression": {
          "displayName": "Value Expression",
          "description": "A SpEL expression that extracts the value from the MDE message.proto to be used as the numeric value of the tags that will be summarized. The value must evaluate to a number, and it's internally out",
          "value": "#message['data']['numeric']"
        },
        "id": {
          "displayName": "Window Unique ID",
          "description": "A unique ID that represents this instance of the window transformation, this should be unique if you are adding multiple instances of the window transformation to the same type",
          "value": "1-min-window"
        }
      }
    }
  ]
}

Console

Dans l'interface Web, sous la section Types, ouvrez le menu Modifier la version du type pour un type donné et développez la section Transformer et connecter du panneau.

Liste des transformations

Associer une transformation à un type

L'association d'un type existant à une transformation disponible transforme tous les tags de ce type. Le résultat de la transformation est ingéré en tant que nouveaux tags dans MDE des types transformés. Les noms de tags transformés ont un nouveau nom dérivé du nom de tag d'origine et du nom de la transformation.

Voici les étapes à suivre pour associer un type à une transformation :

REST

Pour associer une transformation à un type donné, appelez la PATCH méthode dans ce point de terminaison de l'API Configuration Manager:

PATCH /configuration/v1/types/TYPE_NAME/versions/VERSION_NUMBER

Le corps de la requête doit contenir la liste des transformations à associer au type et la valeur de ses paramètres de configuration :

{
    "transformations": [
        {
            "window": {
                "id": "WINDOW_TRANSFORMATION_IDE",
                "durationMinutes": WINDOW_TRANSFORMATION_MINUTES,
                "valueExpression": "VALUE_EXPRESSION_VALUE"
            }
        },
        {
            "eventChange": {
                "keyExpression": "KEY_EXPRESSION_VALUE",
                "valueExpression": "VALUE_EXPRESSION_VALUE"
            }
        }
    ]
}

Remplacez les éléments suivants dans l'exemple d'appel précédent :

  • TYPE_NAME : nom du type à modifier.
  • VERSION_NUMBER : version du type à modifier.

Remplacez les éléments suivants dans le corps pour configurer une transformation Window :

  • WINDOW_TRANSFORMATION_ID: identifiant unique de la transformation qui sera également associé aux noms de tags d'origine après avoir été traité par la transformation.
  • WINDOW_TRANSFORMATION_MINUTES: durée, en minutes, de la fenêtre à appliquer.
  • VALUE_EXPRESSION_VALUE: élément du proto de tag qui sera surveillé en tant que champ de valeur. Pour un tag par défaut numérique, il s'agit de #message['data']['numeric'].

Remplacez les éléments suivants dans le corps pour configurer une transformation Event Change :

  • KEY_EXPRESSION_VALUE: élément du proto de tag utilisé pour regrouper les tags à surveiller ensemble. Pour surveiller un seul tag , il doit s'agir de #message['tagName']
  • VALUE_EXPRESSION_VALUE: élément du proto de tag utilisé pour surveiller le changement de valeur. Doit être résolu en String. Dans un tag par défaut numérique, il s'agit de #message['data']['numeric'].toString().

Console

  1. Pour associer une transformation à un type, ouvrez la section de l'interface Web « Modifier la version du type » dans l'onglet « Type ».

  2. Développez la section Transformer et connecter :

    Liste des transformations

  3. Pour ajouter une transformation , sélectionnez la transformation requise dans la liste puis cliquez sur AJOUTER :

    Transformation ADD

  4. Ensuite, fournissez les paramètres requis, puis cliquez sur ENREGISTRER :

    Paramètre de transformation

Pour la transformation Window , les paramètres sont les suivants :

  • WINDOW_TRANSFORMATION_ID: identifiant unique de la transformation qui sera également associé aux noms de tags d'origine après avoir été traité par la transformation.
  • WINDOW_TRANSFORMATION_MINUTES: durée, en minutes, de la fenêtre à appliquer.
  • VALUE_EXPRESSION_VALUE: élément du proto de tag qui sera surveillé en tant que champ de valeur. Pour un tag par défaut numérique, il s'agit de #message['data']['numeric'].

Pour la transformation Event Change , les paramètres sont les suivants :

  • KEY_EXPRESSION_VALUE: élément du proto de tag utilisé pour regrouper les tags à surveiller ensemble. Pour surveiller un seul tag , il doit s'agir de #message['tagName']
  • VALUE_EXPRESSION_VALUE: élément du proto de tag utilisé pour surveiller le changement de valeur. Doit être résolu en String. Dans un tag par défaut numérique, il s'agit de #message['data']['numeric'].toString().