Transformaciones

Manufacturing Data Engine (MDE) proporciona una forma sencilla de realizar el procesamiento posterior de los mensajes durante la transferencia y generar nuevas etiquetas y registros derivados a partir de los mensajes de entrada. Estos posprocesadores se denominan transformaciones. Se pueden asociar a un tipo determinado y generar mensajes nuevos que luego se vuelven a incorporar en MDE. Las transformaciones son canalizaciones integradas de Dataflow y se pueden configurar con ciertos parámetros de transformación específicos.

MDE 1.3 y las versiones posteriores proporcionan dos transformaciones predeterminadas:

  • Cambio de evento de grupo
  • Ventanas

Las transformaciones se activan a nivel del tipo. Esto implica que se transformarán todas las etiquetas que pertenezcan a ese tipo. Un tipo se puede asociar a ninguna, una o más de una transformación. La asociación entre el tipo y una transformación específica se puede configurar en la interfaz web y con la API de configuración. Un tipo se puede asociar a una transformación en cualquier momento, y esa asociación también se puede quitar cuando ya no sea necesaria.

Es posible que una transformación necesite parámetros de transformación para definir su comportamiento específico. Los parámetros de transformación son específicos de cada tipo de transformación y pueden variar de una transformación a otra.

Los valores de los parámetros de transformación específicos para una transformación determinada también se establecen a nivel del tipo. Los diferentes tipos pueden usar valores de parámetros diferentes y la misma transformación de manera diferente.

Las transformaciones reciben como entrada todos los mensajes asignados al tipo en el que la transformación está activa. Cada mensaje se procesa con el procesador de transformación en Dataflow.

El resultado de cualquier transformación es un mensaje JSON sin procesar que se incorpora en el tema de destino inicial. MDE proporciona un paquete de configuración único con cada transformación. Este paquete de configuración se debe aplicar a MDE si planeas usar la transformación. El paquete de configuración crea un conjunto de una clase de mensaje, un analizador, un tipo y una colección de buckets de metadatos. Estas entidades de configuración permiten que MDE identifique y procese los mensajes de salida de transformación en un tipo específico. Los tipos específicos de transformación almacenan la información que emite la transformación. También se asocian a buckets de metadatos de transformación específicos que almacenan información de referencia sobre el registro o la etiqueta transformados originales.

Los dos tipos proporcionados para procesar los mensajes sin procesar que genera cada transformación son los siguientes:

  • group-event-change-records: Es el tipo de destino para los mensajes de salida de la transformación de cambio de evento de grupo.
  • window-transformation-records: Tipo de destino para los mensajes de salida de la transformación de ventana.

Transformación del cambio de eventos grupales

Esta transformación supervisa cualquier campo de una etiqueta o un grupo de etiquetas, y genera un evento cada vez que cambian los valores supervisados en cualquiera de esas etiquetas. Esta transformación se puede asociar a un tipo de cualquier arquetipo. La transformación aparece en la interfaz web como eventChange.

Esta transformación emite un mensaje que se analiza en un tipo CONTINUOUS_DATA_SERIES específico llamado group-event-change-records que se proporciona en su paquete de configuración asociado. El tipo contiene la hora de inicio y la hora de finalización del período entre los cambios de valor, así como el valor anterior, el valor actual y el nombre de la etiqueta que activó el cambio.

Puedes definir un grupo de etiquetas del mismo tipo para supervisarlas juntas. Puedes elegir un criterio clave para definir cómo agrupar las etiquetas. Todas las etiquetas en las que la clave tiene el mismo valor se supervisan juntas. El valor de la clave puede ser cualquier elemento del proto de la etiqueta, incluido cualquier campo de datos y cualquier elemento de los metadatos.

Para que la transformación funcione para una etiqueta individual, la clave se establece en TagName.

Parámetros

Los dos parámetros de transformación necesarios para configurar esta transformación son los siguientes:

  1. Expresión de clave: Se muestra en la interfaz web como keyExpression. Define la expresión que se usará para agrupar etiquetas. Todas las etiquetas en las que la expresión de clave tiene el mismo valor se supervisan juntas. La transformación emite un evento de cambio de valor cada vez que se detecta un cambio en cualquiera de esas etiquetas. Los valores se comparan con los valores anteriores de la misma etiqueta, pero se activa un evento cuando cambia alguna de las etiquetas. La expresión de clave se define como una expresión SpEL y puede usar cualquiera de los campos disponibles en el proto de la etiqueta. Por ejemplo, para supervisar solo una etiqueta según su nombre, la expresión SpEL se definiría de la siguiente manera:

    #message['tagName']
    

    Como alternativa, para agrupar etiquetas según un campo de metadatos común, como el nombre de la máquina (suponiendo que existe un bucket asset-hierarchy con un atributo llamado machine-name), la expresión se puede establecer de la siguiente manera:

    #message['metadata']['asset-hierarchy']['machine-name']
    
  2. Expresión de valor: Se muestra en la interfaz web como valueExpression. Define el campo de valor que la transformación supervisa para emitir un nuevo evento de cambio. También se define como una expresión de SpEL. La expresión puede usar cualquier campo de la estructura .proto de la etiqueta. El resultado de la expresión debe ser del tipo String para que funcione correctamente.

    Por ejemplo, para supervisar un campo value en la sección Data del prototipo de etiqueta, la expresión de valor se puede establecer de la siguiente manera:

    #message['data']['numeric'].toString()
    

Mensaje de salida

El contenido del mensaje de salida generado por la transformación de cambio de evento de grupo proporciona los detalles del evento detectado. Los atributos específicos disponibles en el mensaje de salida son los siguientes:

  1. TagName: La transformación crea un evento en un nombre de etiqueta que corresponde al valor de la expresión de clave y el sufijo "_event_change". Si la expresión de clave se define como un TagName individual, la etiqueta derivada será "TagName_event_change".
  2. Objeto de marca de tiempo continua de cambio de evento: Contiene las marcas de tiempo inicial (atributo event_timestamp_start) y final (atributo event_timestamp_end) del evento. También contiene la duración (atributo duration) del evento como un double.
  3. Objeto de datos del mensaje de cambio de evento: Contiene el nombre de las etiquetas cuyo valor cambió durante el evento (atributo changed_tags) y la lista de etiquetas que coinciden con los criterios de agrupación en el momento en que se emite el evento (atributo contributing_tags). Ambos pueden contener más de una etiqueta por mensaje.
  4. Objeto de cambio de valor de la etiqueta: El nombre (atributo tag_name), el valor anterior (atributo old_expression_value), el valor nuevo (atributo new_expression_attribute) y el mensaje (atributo message_id) que activaron el evento de cambio de estado.
  5. Objeto de mensaje de valor cambiado (en la versión 1.3.6 y versiones posteriores): Contiene el mensaje que activó el cambio de evento.

Consulta el esquema específico en la sección de referencia.

Transformación de ventana

Esta transformación aplica una función de Windowing a todas las etiquetas de un tipo. El agrupamiento en ventanas hace referencia al resumen de varios registros durante un período en un solo registro. La transformación de ventana se puede asociar a cualquier tipo de cualquier arquetipo. Puede resumir los registros de etiquetas desde 1 minuto hasta 60 minutos. El resultado de la transformación es un mensaje sin procesar que contiene los valores de resumen de la expresión de valor durante el período seleccionado.

Esta transformación se puede aplicar varias veces al mismo tipo, siempre y cuando el Id de cada transformación de ventana (según se define en sus parámetros) sea único dentro del tipo. Puedes agregar la transformación de ventana con la interfaz web, pero debes usar la API para agregar varias transformaciones de ventana a un tipo determinado.

La transformación genera una etiqueta derivada de un tipo proporcionado (llamado window-transformation-records) que contiene un resumen de todos los registros recibidos durante ese período para esa etiqueta. Esta transformación opera a nivel de la etiqueta: generará una etiqueta resumida para cada etiqueta del tipo al que se asoció la transformación. El nombre de la etiqueta se compone del Tagname original, el sufijo -window-stats y el id de la transformación de discretización.

Parámetros

Esta transformación requiere tres parámetros para operar:

  1. Duración de la ventana: Disponible en la interfaz web como durationMinutes. Se refiere a la duración de la ventana que se aplicará en minutos. Por ejemplo, un valor de 1 generará una serie temporal derivada con una resolución de 1 minuto.
  2. ID de la ventana: Disponible en la interfaz web como id. Asigna un identificador único a cada transformación de ventana del tipo para permitir que se aplique más de una en paralelo. El ID puede ser cualquier cadena.
  3. Expresión de valor: Disponible en la interfaz web como valueExpression. Es la expresión SpEL que se aplica al arquetipo de etiqueta para generar un valor numérico que se resumirá con la transformación de ventana. Por ejemplo, si necesitas usar el campo de valor de una etiqueta numérica genérica, la expresión de valueExpression se puede definir de la siguiente manera:

    #message['data']['numeric']
    

Mensaje de salida

La transformación emite un mensaje para cada período definido por el parámetro de transformación durationMinutes. El mensaje de salida contiene los siguientes atributos:

  1. TagName: Es el nombre de la etiqueta de la serie temporal derivada. La transformación de ventana la genera automáticamente. Se forma con el TagName original y el sufijo -window-stats y el id de la transformación de discretización. Por ejemplo, para un TagName llamado Temperature y un ID 1, la etiqueta derivada se llamará Temperature-window-stats-1.
  2. TimeStamp: Contiene las marcas de tiempo de inicio y finalización de la ventana (disponibles como atributos event_timestamp_start y event_timestamp_end).
  3. Estadísticas de resumen de la ventana: Contiene todos los datos resumidos del período, incluidos los siguientes:
    1. Media: Es el valor medio de todos los valores recibidos durante el período.
    2. Min: Es el valor mínimo de todos los valores recibidos durante el período.
    3. Máx.: Es el valor máximo de todos los valores recibidos durante el período.
    4. Desviación estándar: Es la desviación estándar de todos los valores recibidos durante el período.
    5. p50: Es el nivel de confianza del 50% de no superarse para los valores recibidos durante el período.
    6. p90: Es el nivel de confianza del 90% de no superarse para los valores recibidos durante el período.
    7. Suma: Es el resumen de todos los valores recibidos durante el período.
    8. Recuento: Es la cantidad de valores recibidos durante el período.
    9. Delta: Es la diferencia entre el último y el primer valor recibido durante el período.

Para obtener más información, consulta el esquema específico en la sección Esquemas de transformación.