Aggiungere una trasformazione a un tipo

Questa guida descrive come aggiungere una trasformazione a un determinato tipo in Manufacturing Data Engine (MDE).

Scegliere una trasformazione

In MDE sono disponibili diverse trasformazioni. Il pacchetto di configurazione predefinito fornisce due trasformazioni che possono essere associate a uno qualsiasi dei tipi disponibili in questo pacchetto di configurazione predefinito:

  • Trasformazione Modifica evento di gruppo: questa trasformazione monitora qualsiasi campo in un tag o in un gruppo di tag e genera un evento ogni volta che i valori monitorati cambiano in uno qualsiasi di questi tag. Questa trasformazione può essere associata a un tipo di qualsiasi archetipo.
  • Trasformazione Windowing: questa trasformazione applica una funzione Windowing a tutti i tag di un tipo. Il windowing si riferisce al riepilogo di più record in un periodo di tempo in un unico record. La trasformazione di finestratura può essere associata a qualsiasi tipo di qualsiasi archetipo. Può riassumere i record dei tag da 1 minuto a 60 minuti. Il risultato della Trasformazione è un messaggio non elaborato contenente i valori di riepilogo per l'espressione di valore durante il periodo di tempo selezionato.

Il pacchetto di configurazione predefinito fornisce le classi di messaggi, i parser e i tipi necessari per elaborare i messaggi non elaborati emessi da queste due trasformazioni. I due tipi forniti per elaborare i messaggi non elaborati generati da ogni trasformazione sono i seguenti:

  • group-event-change-records: il tipo di destinazione per i messaggi di output della trasformazione Modifica evento di gruppo.
  • window-transformation-records: il tipo di destinazione per i messaggi di output della trasformazione di finestre.

Per attivare una trasformazione, la trasformazione specificata deve essere selezionata nell'interfaccia web Type o associata al tipo utilizzando l'endpoint API Configuration.

Elenco delle trasformazioni disponibili

Per esplorare l'elenco delle trasformazioni disponibili in qualsiasi sistema MDE, segui questi passaggi:

REST

Esiste un endpoint API Configuration Manager dedicato per elencare le trasformazioni disponibili:

GET /configuration/v1/transformations

Restituisce il seguente JSON con le trasformazioni disponibili e le relative funzionalità:

{
  "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

Utilizzando l'interfaccia web, nella sezione "Tipi ", apri il menu Modifica versione tipo per un determinato tipo ed espandi la sezione Trasforma e connetti del riquadro.

Elenco delle trasformazioni

Associare una trasformazione a un tipo

L'associazione di un tipo esistente a una trasformazione disponibile trasforma tutti i tag di quel tipo. Il risultato della trasformazione viene importato come nuovi tag in MDE dei tipi trasformati. I nomi dei tag trasformati hanno un nuovo nome derivato dal nome del tag originale e dal nome della trasformazione.

Per associare un tipo a una trasformazione:

REST

Per associare una trasformazione a una determinata chiamata di tipo, chiama il metodo PATCH in questo endpoint dell'API Configuration Manager:

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

Il corpo della richiesta deve contenere l'elenco delle trasformazioni da allegare al tipo e il valore dei relativi parametri di configurazione:

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

Sostituisci i seguenti elementi nella chiamata di esempio precedente:

  • TYPE_NAME: il nome del tipo da modificare.
  • VERSION_NUMBER: la versione del tipo da modificare.

Sostituisci i seguenti elementi nel corpo per configurare una trasformazione finestra:

  • WINDOW_TRANSFORMATION_ID: un identificatore univoco della trasformazione che verrà allegato anche ai nomi dei tag originali dopo essere stato elaborato dalla trasformazione.
  • WINDOW_TRANSFORMATION_MINUTES: la durata, in minuti, della finestra da applicare
  • VALUE_EXPRESSION_VALUE: l'elemento del proto del tag che verrà monitorato come campo valore. Per un tag predefinito numerico è #message['data']['numeric'].

Sostituisci i seguenti elementi nel corpo per configurare una trasformazione di modifica dell'evento:

  • KEY_EXPRESSION_VALUE: l'elemento nel proto del tag utilizzato per raggruppare i tag da monitorare insieme. Per monitorare un singolo tag deve essere #message['tagName']
  • VALUE_EXPRESSION_VALUE: l'elemento nel proto del tag utilizzato per monitorare la modifica del valore. Deve essere risolto in un String. In un tag predefinito numerico è #message['data']['numeric'].toString().

Console

  1. Per associare una trasformazione a un tipo, apri la sezione dell'interfaccia web "Modifica versione tipo" nella scheda "Tipo".

  2. Espandi la sezione Trasforma e connetti:

    Elenco delle trasformazioni

  3. Per aggiungere una trasformazione, seleziona quella che ti serve dall'elenco e fai clic su "AGGIUNGI":

    Trasformazione ADD

  4. Quindi, fornisci i parametri richiesti e fai clic su "SALVA":

    Parametro di trasformazione

Per la Trasformazione finestra, i parametri sono:

  • WINDOW_TRANSFORMATION_ID: un identificatore univoco della trasformazione che verrà allegato anche ai nomi dei tag originali dopo essere stato elaborato dalla trasformazione.
  • WINDOW_TRANSFORMATION_MINUTES: la durata, in minuti, della finestra da applicare
  • VALUE_EXPRESSION_VALUE: l'elemento del proto del tag che verrà monitorato come campo valore. Per un tag predefinito numerico è #message['data']['numeric'].

Per la trasformazione della modifica dell'evento, i parametri sono:

  • KEY_EXPRESSION_VALUE: l'elemento nel proto del tag utilizzato per raggruppare i tag da monitorare insieme. Per monitorare un singolo tag deve essere #message['tagName']
  • VALUE_EXPRESSION_VALUE: l'elemento nel proto del tag utilizzato per monitorare la modifica del valore. Deve essere risolto in un String. In un tag predefinito numerico è #message['data']['numeric'].toString().