Transformationen
Die Manufacturing Data Engine (MDE) bietet eine einfache Möglichkeit, Nachrichten während der Aufnahme nachzubearbeiten und neue abgeleitete Tags und Datensätze aus den Eingabenachrichten zu generieren. Diese Postprozessoren werden als Transformationen bezeichnet. Sie können einem bestimmten Typ zugeordnet werden und neue Nachrichten generieren, die dann wieder in MDE aufgenommen werden. Transformationen sind integrierte Dataflow-Pipelines, die mit bestimmten Transformationsparametern konfiguriert werden können.
MDE 1.3 und höher bieten zwei Standardtransformationen:
- Änderung des Gruppenereignisses
- Fensterung
Transformationen werden auf Typ-Ebene aktiviert. Das bedeutet, dass alle Tags dieses Typs transformiert werden. Ein Typ kann keiner, einer oder mehreren Transformationen zugeordnet sein. Die Zuordnung zwischen dem Typ und einer bestimmten Transformation kann über die Weboberfläche und die Konfigurations-API eingerichtet werden. Ein Typ kann jederzeit mit einer Transformation verknüpft werden. Diese Verknüpfung kann auch wieder entfernt werden, wenn sie nicht mehr benötigt wird.
Für eine Transformation sind möglicherweise Transformationsparameter erforderlich, um ihr spezifisches Verhalten zu definieren. Die Transformationsparameter sind für jeden Transformationstyp spezifisch und können sich von einer Transformation zur nächsten unterscheiden.
Die spezifischen Transformationsparameterwerte für eine bestimmte Transformation werden ebenfalls auf Typenebene festgelegt. Für verschiedene Typen können unterschiedliche Parameterwerte verwendet werden und dieselbe Transformation kann unterschiedlich angewendet werden.
Transformationen erhalten alle Nachrichten, die dem Typ zugeordnet sind, als Eingabe, sofern die Transformation aktiv ist. Jede Nachricht wird vom Transformationsprozessor in Dataflow verarbeitet.
Die Ausgabe einer Transformation ist eine Roh-JSON-Nachricht, die in das ursprüngliche Landing-Thema aufgenommen wird. MDE stellt mit jeder Transformation ein eindeutiges Konfigurationspaket bereit. Dieses Konfigurationspaket muss auf MDE angewendet werden, wenn Sie die Transformation verwenden möchten. Das Konfigurationspaket erstellt eine Sammlung aus einer Nachrichtenklasse, einem Parser, einem Typ und einem Metadaten-Bucket. Mit diesen Konfigurationsentitäten kann MDE die Ausgabemeldungen der Transformation in einen bestimmten Typ einordnen und verarbeiten. In transformationsspezifischen Typen werden die von der Transformation ausgegebenen Informationen gespeichert. Sie sind auch mit bestimmten Metadaten-Buckets für Transformationen verknüpft, in denen Referenzinformationen zum ursprünglichen transformierten Tag oder Datensatz gespeichert werden.
Die beiden Typen, die zum Verarbeiten der Rohmitteilungen verwendet werden, die von jeder Transformation generiert werden, sind die folgenden:
group-event-change-records: Zieltyp für die Ausgabenachrichten der Transformation für Gruppenereignisänderungen.window-transformation-records: Zieltyp für die Ausgabemeldungen der Fensterungstransformation.
Transformation von Gruppenereignisänderungen
Mit dieser Transformation wird ein beliebiges Feld in einem Tag oder einer Gruppe von Tags überwacht. Immer wenn sich die überwachten Werte in einem dieser Tags ändern, wird ein Ereignis generiert.
Diese Transformation kann einem beliebigen Archetyp zugeordnet werden. Die Transformation wird in der Weboberfläche als eventChange angezeigt.
Bei dieser Transformation wird eine Nachricht ausgegeben, die in einen bestimmten CONTINUOUS_DATA_SERIES-Typ mit dem Namen group-event-change-records geparst wird, der im zugehörigen Konfigurationspaket enthalten ist. Der Typ enthält die Startzeit und Endzeit des Zeitraums zwischen Wertänderungen sowie den vorherigen Wert, den aktuellen Wert und den Namen des Tags, der die Änderung ausgelöst hat.
Sie können eine Gruppe von Tags desselben Typs definieren, die gemeinsam überwacht werden sollen. Sie können Schlüsselkriterien auswählen, um festzulegen, wie Tags gruppiert werden sollen. Alle Tags, bei denen der Schlüssel denselben Wert hat, werden gemeinsam überwacht. Der Wert von key kann ein beliebiges Element des Tags proto sein, einschließlich eines beliebigen Datenfelds und eines beliebigen Elements der Metadaten.
Damit die Transformation für ein einzelnes Tag funktioniert, wird der Schlüssel auf TagName festgelegt.
Parameter
Die beiden Transformationsparameter, die zum Konfigurieren dieser Transformation erforderlich sind, sind:
Schlüsselausdruck: Er wird in der Weboberfläche als
keyExpressionangezeigt. Definiert den Ausdruck, der zum Gruppieren von Tags verwendet wird. Alle Tags, bei denen der Schlüsselausdruck denselben Wert hat, werden gemeinsam überwacht. Die Transformation gibt jedes Mal ein Wertänderungsereignis aus, wenn eine Änderung in einem dieser Tags erkannt wird. Die Werte werden mit den vorherigen Werten desselben Tags verglichen. Ein Ereignis wird jedoch ausgelöst, wenn sich eines der Tags ändert. Der Schlüsselausdruck wird als SpEL-Ausdruck definiert und kann alle verfügbaren Felder im Tag-Proto verwenden. Wenn Sie beispielsweise nur ein einzelnes Tag anhand des Tag-Namens überwachen möchten, würde der SpEL-Ausdruck so definiert:#message['tagName']Alternativ können Sie Tags anhand eines gemeinsamen Metadatenfelds wie dem Maschinennamen gruppieren. Dazu muss ein
asset-hierarchy-Bucket mit einem Attribut namensmachine-namevorhanden sein. Der Ausdruck kann dann so festgelegt werden:#message['metadata']['asset-hierarchy']['machine-name']Wertausdruck: Er wird in der Weboberfläche als
valueExpressionangezeigt. Definiert das Wertfeld, das von der Transformation überwacht wird, um ein neues Änderungsereignis auszugeben. Sie wird auch als SpEL-Ausdruck definiert. Im Ausdruck kann ein beliebiges Feld der Tag-Proto-Struktur verwendet werden. Die Ausgabe des Ausdrucks muss vom TypStringsein, damit er richtig funktioniert.Wenn Sie beispielsweise ein
value-Feld imData-Abschnitt des Tag-Protokolls überwachen möchten, kann der Wertausdruck so festgelegt werden:#message['data']['numeric'].toString()
Ausgabenachricht
Der Inhalt der von der Transformation für Gruppenereignisänderungen generierten Ausgabemeldung enthält die Details des erkannten Ereignisses. Die spezifischen Attribute, die in der Ausgabenachricht verfügbar sind, sind:
TagName: Mit der Transformation wird ein Ereignis unter einem Tagname erstellt, der dem Wert des Schlüsselausdrucks und dem Suffix"_event_change"entspricht. Wenn der Schlüsselausdruck als einzelner TagName definiert ist, lautet das abgeleitete Tag"TagName_event_change".- Event Change Continuous Timestamp Object (Kontinuierliches Zeitstempelobjekt für Ereignisänderung): Enthält die ursprünglichen (
event_timestamp_start-Attribut) und endgültigen (event_timestamp_end-Attribut) Zeitstempel des Ereignisses. Es enthält auch die Dauer (Attributduration) des Ereignisses alsdouble. - Event Change Message Data Object: Enthält den Namen der Tags, deren Wert sich während des Ereignisses geändert hat (
changed_tags-Attribut), und die Liste der Tags, die den Gruppierungskriterien zum Zeitpunkt der Ereignisausgabe entsprechen (contributing_tags-Attribut). Beide können mehrere Tags pro Nachricht enthalten. - Tag Value Change Object: Der Name (Attribut
tag_name), der alte Wert (Attributold_expression_value), der neue Wert (Attributnew_expression_attribute) und die Nachricht (Attributmessage_id), die das Ereignis für die Statusänderung ausgelöst hat. - Changed Value Message Object (ab Version 1.3.6): Enthält die Nachricht, die die Ereignisänderung ausgelöst hat.
Das spezifische Schema finden Sie im Referenzabschnitt.
Windowing-Transformation
Bei dieser Transformation wird eine Windowing-Funktion auf alle Tags eines Typs angewendet. Windowing bezieht sich auf die Zusammenfassung mehrerer Datensätze über einen Zeitraum hinweg in einem einzigen Datensatz. Die Windowing-Transformation kann jedem Typ eines beliebigen Archetyps zugeordnet werden. Es kann die Aufzeichnungen von Tags für einen Zeitraum von 1 Minute bis zu 60 Minuten zusammenfassen. Das Ergebnis der Transformation ist eine Rohdaten-Nachricht mit den Zusammenfassungswerten für den Werteausdruck im ausgewählten Zeitraum.
Diese Transformation kann mehrmals auf denselben Typ angewendet werden, sofern die ID jeder Fensterungstransformation (wie in den zugehörigen Parametern definiert) innerhalb des Typs eindeutig ist. Sie können die Windowing-Transformation über die Weboberfläche hinzufügen. Wenn Sie einem bestimmten Typ mehrere Windowing-Transformationen hinzufügen möchten, müssen Sie die API verwenden.
Bei der Transformation wird ein abgeleitetes Tag des angegebenen Typs (mit dem Namen window-transformation-records) generiert, das eine Zusammenfassung aller Datensätze enthält, die während dieses Zeitraums für dieses Tag empfangen wurden. Diese Transformation wird auf Tag-Ebene ausgeführt: Für jedes Tag des Typs, dem die Transformation zugeordnet wurde, wird ein zusammengefasstes Tag generiert. Der Name des Tags setzt sich aus dem ursprünglichen Tagname, dem Suffix -window-stats und dem id der Windowing-Transformation zusammen.
Parameter
Für diese Transformation sind drei Parameter erforderlich:
- Dauer des Fensters: In der Weboberfläche als
durationMinutesverfügbar. Sie bezieht sich auf die Dauer des anzuwendenden Zeitfensters in Minuten. Bei einem Wert von 1 wird beispielsweise eine abgeleitete Zeitreihe mit einer Auflösung von 1 Minute generiert. - ID des Fensters: In der Weboberfläche als
idverfügbar. Weist jeder Windowing-Transformation des Typs eine eindeutige ID zu, damit mehrere parallel angewendet werden können. Die ID kann ein beliebiger String sein. Wertausdruck: In der Weboberfläche als
valueExpressionverfügbar. Dies ist der SpEL-Ausdruck, der auf das Tag-Proto angewendet wird, um einen numerischen Wert zu generieren, der durch die Windowing-Transformation zusammengefasst wird. Wenn Sie beispielsweise das Wertfeld eines generischen numerischen Tags verwenden möchten, kann der AusdruckvalueExpressionso definiert werden:#message['data']['numeric']
Ausgabemeldung
Bei der Transformation wird für jeden Zeitraum, der durch den Transformationsparameter durationMinutes definiert ist, eine Nachricht ausgegeben. Die Ausgabenachricht enthält die folgenden Attribute:
- TagName: Name des Tags der abgeleiteten Zeitreihe. Sie wird automatisch durch die Windowing-Transformation generiert. Er wird aus dem ursprünglichen TagName und dem Suffix
-window-statssowie demidder Windowing-Transformation gebildet. Wenn ein TagName beispielsweiseTemperatureund eine ID1ist, lautet der abgeleitete TagTemperature-window-stats-1. - TimeStamp: Enthält die Start- und Endzeitstempel des Zeitfensters (verfügbar als
event_timestamp_start- undevent_timestamp_end-Attribute). - Zusammenfassungsstatistiken für den Zeitraum: Enthält alle zusammengefassten Daten für den Zeitraum, einschließlich:
- Mittelwert: Der Mittelwert aller Werte, die im Zeitfenster empfangen wurden.
- Min: Der kleinste Wert aller Werte, die während des Zeitfensters empfangen wurden.
- Max: Der Maximalwert aller Werte, die im Zeitraum empfangen wurden.
- Standardabweichung: Die Standardabweichung aller Werte, die im Zeitfenster empfangen wurden.
- p50: Das Konfidenzniveau von 50 %, das für die Werte, die während des Zeitfensters empfangen wurden, nicht überschritten wird.
- p90: Das Konfidenzniveau von 90 %, das für die Werte, die während des Zeitfensters empfangen wurden, nicht überschritten wird.
- Summe: Die Summe aller Werte, die im Zeitfenster empfangen wurden.
- Anzahl: Die Anzahl der Werte, die im Zeitfenster empfangen wurden.
- Delta: Die Differenz zwischen dem letzten und dem ersten Wert, der im Zeitfenster empfangen wurde.
Weitere Informationen finden Sie im Abschnitt Transformationsschemata für das jeweilige Schema.