Transformations
Manufacturing Data Engine (MDE) permet de post-traiter facilement les messages lors de l'ingestion et de générer de nouveaux tags et enregistrements dérivés à partir des messages d'entrée. Ces post-processeurs sont appelés transformations. Elles peuvent être associées à un type donné et générer de nouveaux messages qui sont ensuite réingérés dans MDE. Les transformations sont des pipelines Dataflow intégrés et peuvent être configurées à l'aide de certains paramètres de transformation spécifiques.
MDE 1.3 et les versions ultérieures fournissent deux transformations par défaut :
- Modification d'un événement de groupe
- Fenêtrage
Les transformations sont activées au niveau du type. Cela signifie que tous les tags appartenant à ce type seront transformés. Un type peut être associé à aucune, une ou plusieurs transformations. L'association entre le type et une transformation spécifique peut être configurée dans l'interface Web et à l'aide de l'API de configuration. Un type peut être associé à une transformation à tout moment. Cette association peut également être supprimée si elle n'est plus nécessaire.
Une transformation peut nécessiter des paramètres de transformation pour définir son comportement spécifique. Les paramètres de transformation sont spécifiques à chaque type de transformation et peuvent varier d'une transformation à l'autre.
Les valeurs de paramètre de transformation spécifiques pour une transformation donnée sont également définies au niveau du type. Différents types peuvent utiliser différentes valeurs de paramètres et la même transformation différemment.
Les transformations reçoivent en entrée tous les messages mappés au type lorsque la transformation est active. Chaque message est traité par le processeur de transformation dans Dataflow.
La sortie de toute transformation est un message JSON brut ingéré dans le premier sujet de destination. MDE fournit un package de configuration unique avec chaque transformation. Ce package de configuration doit être appliqué à MDE si vous prévoyez d'utiliser la transformation. Le package de configuration crée un ensemble de collections message class, parser, type et metadata bucket. Ces entités de configuration permettent à MDE d'identifier et de traiter les messages de sortie de transformation dans un type spécifique. Les types spécifiques à la transformation stockent les informations émises par la transformation. Elles sont également associées à des buckets de métadonnées de transformation spécifiques qui stockent des informations de référence sur le tag ou l'enregistrement transformé d'origine.
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 des modifications d'événements de groupe.window-transformation-records: type de destination pour les messages de sortie de la transformation de fenêtrage.
Transformation de modification d'événement de groupe
Cette transformation surveille n'importe quel champ d'une balise ou d'un groupe de balises, et génère un événement chaque fois que les valeurs surveillées changent dans l'une de ces balises.
Cette transformation peut être associée à un type d'archétype. La transformation s'affiche dans l'interface Web sous la forme eventChange.
Cette transformation émet un message qui est analysé dans un type CONTINUOUS_DATA_SERIES spécifique nommé group-event-change-records fourni dans son package de configuration associé. Le type contient l'heure de début et l'heure de fin de la période entre les changements de valeur, ainsi que la valeur précédente, la valeur actuelle et le nom du tag qui a déclenché le changement.
Vous pouvez définir un groupe de tags du même type à surveiller ensemble. Vous pouvez choisir un critère clé pour définir la façon dont les balises sont regroupées. Toutes les balises dont la clé a la même valeur sont surveillées ensemble. La valeur de la clé peut être n'importe quel élément du proto de tag, y compris n'importe quel champ de données et n'importe quel élément des métadonnées.
Pour que la transformation fonctionne pour un tag individuel, la clé est définie sur TagName.
Paramètres
Les deux paramètres de transformation requis pour configurer cette transformation sont les suivants :
Expression clé : elle s'affiche dans l'interface Web sous la forme
keyExpression. Définit l'expression qui sera utilisée pour regrouper les tags. Toutes les balises dont l'expression de clé a la même valeur sont surveillées ensemble. La transformation émet un événement de changement de valeur chaque fois qu'une modification est détectée dans l'un de ces tags. Les valeurs sont comparées aux valeurs précédentes de la même balise, mais un événement est déclenché lorsque l'une des balises change. L'expression clé est définie comme une expression SpEL et peut utiliser l'un des champs disponibles dans le proto de balise. Par exemple, pour ne surveiller qu'un seul tag en fonction de son nom, l'expression SpEL serait définie comme suit :#message['tagName']Vous pouvez également regrouper les tags en fonction d'un champ de métadonnées commun, comme le nom de la machine (en supposant qu'un bucket
asset-hierarchyexiste avec un attribut appelémachine-name), l'expression peut être définie sur :#message['metadata']['asset-hierarchy']['machine-name']Expression de valeur : elle s'affiche dans l'interface Web sous la forme
valueExpression. Définit le champ de valeur que la transformation surveille pour émettre un nouvel événement de modification. Il est également défini comme une expression SpEL. L'expression peut utiliser n'importe quel champ de la structure proto du tag. Pour fonctionner correctement, le résultat de l'expression doit être de typeString.Par exemple, pour surveiller un champ
valuedans la sectionDatadu proto de balise, l'expression de valeur peut être définie sur :#message['data']['numeric'].toString()
Message de sortie
Le contenu du message de sortie généré par la transformation de modification d'événement de groupe fournit les détails de l'événement détecté. Voici les attributs spécifiques disponibles dans le message de sortie :
TagName: la transformation crée un événement sous un nom de tag qui correspond à la valeur de l'expression clé et au suffixe"_event_change". Si l'expression clé est définie comme un TagName individuel, le tag dérivé sera"TagName_event_change".- Objet d'horodatage continu de modification d'événement : contient les codes temporels de début (attribut
event_timestamp_start) et de fin (attributevent_timestamp_end) de l'événement. Il contient également la durée (attributduration) de l'événement sous la forme d'undouble. - Objet de données du message de modification d'événement : contient le nom des balises dont la valeur a changé pendant l'événement (attribut
changed_tags) et la liste des balises qui correspondent aux critères de regroupement au moment où l'événement est émis (attributcontributing_tags). Les deux peuvent contenir plusieurs tags par message. - Objet de modification de la valeur de balise : nom (attribut
tag_name), ancienne valeur (attributold_expression_value), nouvelle valeur (attributnew_expression_attribute) et message (attributmessage_id) qui ont déclenché l'événement de modification de l'état. - Objet de message de valeur modifiée (sur la version 1.3.6 et ultérieures) : contient le message qui a déclenché la modification de l'événement.
Consultez le schéma spécifique dans la section Référence.
Transformation de fenêtrage
Cette transformation applique une fonction Windowing à toutes les balises d'un type. Le fenêtrage consiste à résumer plusieurs enregistrements sur une période donnée dans un seul enregistrement. La transformation de fenêtrage peut être associée à n'importe quel type d'archétype. Il peut résumer les enregistrements des balises de 1 à 60 minutes. Le résultat de la transformation est un message brut contenant les valeurs récapitulatives de l'expression de valeur au cours de la période sélectionnée.
Cette transformation peut être appliquée plusieurs fois au même type, à condition que l'ID de chaque transformation de fenêtrage (tel que défini dans ses paramètres) soit unique au sein du type. Vous pouvez ajouter la transformation de fenêtrage à l'aide de l'interface Web, mais vous devez utiliser l'API pour ajouter plusieurs transformations de fenêtrage à un type donné.
La transformation génère un tag dérivé d'un type fourni (nommé window-transformation-records) contenant un récapitulatif de tous les enregistrements reçus au cours de cette période pour ce tag. Cette transformation s'applique au niveau des balises. Elle génère une balise récapitulative pour chaque balise du type auquel la transformation a été associée. Le nom du tag est composé du Tagname d'origine, du suffixe -window-stats et du id de la transformation de fenêtrage.
Paramètres
Cette transformation nécessite trois paramètres pour fonctionner :
- Durée de la période : disponible dans l'interface Web sous la forme
durationMinutes. Il s'agit de la durée de la fenêtre à appliquer, en minutes. Par exemple, une valeur de 1 générera une série temporelle dérivée avec une résolution d'une minute. - ID de la fenêtre : disponible dans l'interface Web sous la forme
id. Attribue un identifiant unique à chaque transformation de fenêtrage du type afin de permettre l'application de plusieurs transformations en parallèle. L'ID peut être n'importe quelle chaîne. Expression de valeur : disponible dans l'interface Web sous la forme
valueExpression. Il s'agit de l'expression SpEL appliquée au proto de tag pour générer une valeur numérique qui sera résumée par la transformation de fenêtrage. Par exemple, si vous devez utiliser le champ de valeur d'une balise numérique générique, l'expressionvalueExpressionpeut être définie comme suit :#message['data']['numeric']
Message de sortie
La transformation émet un message pour chaque période définie par le paramètre de transformation durationMinutes. Le message de sortie contient les attributs suivants :
- TagName : nom du tag de la série temporelle dérivée. Elle est générée automatiquement par la transformation de fenêtrage. Il est formé à partir du TagName d'origine et du suffixe
-window-statset deidde la transformation de fenêtrage. Par exemple, pour un TagName appeléTemperatureet un ID1, le tag dérivé sera nomméTemperature-window-stats-1. - TimeStamp : contient les codes temporels de début et de fin de la fenêtre (disponibles en tant qu'attributs
event_timestamp_startetevent_timestamp_end). - Statistiques récapitulatives de la période : contient toutes les données récapitulatives de la période, y compris :
- Moyenne : valeur moyenne de toutes les valeurs reçues au cours de la période.
- Min : valeur minimale de toutes les valeurs reçues au cours de la période.
- Max : valeur maximale de toutes les valeurs reçues au cours de la période.
- Écart type : écart type de toutes les valeurs reçues au cours de la période.
- p50 : niveau de confiance de 50 % pour les valeurs reçues au cours de la période.
- p90 : niveau de confiance de 90 % pour les valeurs reçues au cours de la période.
- Somme : récapitulatif de toutes les valeurs reçues au cours de la période.
- Nombre : nombre de valeurs reçues au cours de la période.
- Delta : différence entre la dernière et la première valeur reçues au cours de la période.
Pour en savoir plus, consultez le schéma spécifique dans la section Schémas de transformation.