הוספת טרנספורמציה לסוג
במדריך הזה מוסבר איך להוסיף טרנספורמציה לסוג נתון מסוים ב-Manufacturing Data Engine (MDE).
בחירת טרנספורמציה
יש כמה טרנספורמציות שזמינות ב-MDE. חבילת ההגדרות שמוגדרת כברירת מחדל מספקת שני שינויים שאפשר לשייך לכל אחד מהסוגים שזמינים בחבילת ההגדרות שמוגדרת כברירת מחדל:
- הטרנספורמציה Group Event Change: הטרנספורמציה הזו עוקבת אחרי כל שדה בתג או בקבוצת תגים, ויוצרת אירוע בכל פעם שהערכים שבמעקב משתנים באחד מהתגים האלה. אפשר לשייך את הטרנספורמציה הזו לכל סוג של ארכיטיפ.
- טרנספורמציה של חלון: הטרנספורמציה הזו מחילה פונקציית חלון על כל התגים מסוג מסוים. חלונות מתייחסים לסיכום של כמה רשומות לאורך תקופה מסוימת ברשומה אחת. אפשר לשייך את ההגדרה Windowing Transformation לכל סוג של ארכיטיפ. הוא יכול לסכם את הרשומות של התגים מ-1 דקה עד 60 דקות. התוצאה של ההמרה היא הודעה גולמית שמכילה את ערכי הסיכום של ביטוי הערך במהלך התקופה שנבחרה.
חבילת התצורה שמוגדרת כברירת מחדל מספקת את מחלקות ההודעות, מנתחי התוכן והסוגים שנדרשים לעיבוד ההודעות הגולמיות שנוצרות משני השינויים האלה. אלה שני הסוגים שזמינים לעיבוד ההודעות הגולמיות שנוצרות על ידי כל טרנספורמציה:
-
group-event-change-records: סוג היעד להודעות הפלט של Group Event Change Transformation (שינוי אירוע בקבוצה). -
window-transformation-records: סוג היעד להודעות הפלט של Windowing Transformation.
כדי להפעיל Transformation, צריך לבחור את Transformation שצוין בממשק האינטרנט Type או לשייך אותו ל-Type באמצעות נקודת קצה ל-API של Configuration.
הצגת הטרנספורמציות הזמינות
כדי לעיין ברשימת השינויים הזמינים בכל מערכת MDE, מבצעים את הפעולות הבאות:
REST
יש נקודת קצה ייעודית של Configuration Manager API שמאפשרת להציג את רשימת הטרנספורמציות הזמינות:
GET /configuration/v1/transformations
הפונקציה מחזירה את ה-JSON הבא עם ההמרות הזמינות והיכולות שלהן:
{
"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"
}
}
}
]
}
המסוף
בממשק האינטרנט, בקטע 'סוגים', פותחים את התפריט עריכת גרסת הסוג עבור סוג מסוים ומרחיבים את הקטע שינוי וחיבור בחלונית.

שיוך טרנספורמציה לסוג
שיוך של סוג קיים לטרנספורמציה זמינה, הופך את כל התגים מאותו סוג. תוצאת הטרנספורמציה מוזנת כתגים חדשים ב-MDE של סוגים שעברו טרנספורמציה. השם של התגים שעברו טרנספורמציה הוא שם חדש שנגזר מהשם המקורי של התג ומהשם של הטרנספורמציה.
כדי לשייך סוג לטרנספורמציה:
REST
כדי לשייך טרנספורמציה לסוג נתון מסוים, מפעילים את השיטה PATCH בנקודת הקצה הזו של Configuration Manager API:
PATCH /configuration/v1/types/TYPE_NAME/versions/VERSION_NUMBER
המאפיין Body של הבקשה צריך להכיל את רשימת הטרנספורמציות שיוגדרו לסוג ואת הערך של פרמטרי ההגדרה שלו:
{
"transformations": [
{
"window": {
"id": "WINDOW_TRANSFORMATION_IDE",
"durationMinutes": WINDOW_TRANSFORMATION_MINUTES,
"valueExpression": "VALUE_EXPRESSION_VALUE"
}
},
{
"eventChange": {
"keyExpression": "KEY_EXPRESSION_VALUE",
"valueExpression": "VALUE_EXPRESSION_VALUE"
}
}
]
}
מחליפים את הפריטים הבאים בדוגמה הקודמת של השיחה:
-
TYPE_NAME: השם של הסוג שרוצים לשנות. -
VERSION_NUMBER: הגרסה של הסוג שרוצים לשנות.
מחליפים את הפריטים הבאים בגוף כדי להגדיר WindowTransformation:
-
WINDOW_TRANSFORMATION_ID: מזהה ייחודי של הטרנספורמציה, שיצורף גם לשמות התגים המקוריים אחרי שהם יעברו עיבוד על ידי הטרנספורמציה. -
WINDOW_TRANSFORMATION_MINUTES: משך הזמן (בדקות) של חלון הזמן שבו חלים השינויים VALUE_EXPRESSION_VALUE: הרכיב של פרוטוקול התג שיעבור מעקב כשדה ערך. ערך ברירת המחדל של תג מספרי הוא#message['data']['numeric'].
מחליפים את הפריטים הבאים בגוף כדי להגדיר שינוי אירוע:
-
KEY_EXPRESSION_VALUE: הרכיב בפרוטוטייפ של התג שמשמש לקיבוץ תגים שצריך לעקוב אחריהם יחד. כדי לעקוב אחרי תג יחיד צריך#message['tagName'] -
VALUE_EXPRESSION_VALUE: הרכיב בפרוטוטייפ של התג שמשמש למעקב אחרי שינוי הערך. הערך צריך להיותString. תג ברירת המחדל המספרי הוא#message['data']['numeric'].toString().
המסוף
כדי לשייך Transformation לסוג, פותחים את הקטע 'Edit type version' בממשק האינטרנט בכרטיסייה 'Type'.
מרחיבים את הקטע 'שינוי וחיבור':

כדי להוסיף טרנספורמציה, בוחרים את הטרנספורמציה הרצויה מהרשימה ולוחצים על הוספה:

לאחר מכן ממשיכים לספק את הפרמטרים הנדרשים ולוחצים על שמירה:

בWindow Transformation הפרמטרים הם:
-
WINDOW_TRANSFORMATION_ID: מזהה ייחודי של הטרנספורמציה, שיצורף גם לשמות התגים המקוריים אחרי שהם יעברו עיבוד על ידי הטרנספורמציה. -
WINDOW_TRANSFORMATION_MINUTES: משך הזמן (בדקות) של חלון הזמן שבו חלים השינויים VALUE_EXPRESSION_VALUE: הרכיב של פרוטוקול התג שיעבור מעקב כשדה ערך. ערך ברירת המחדל של תג מספרי הוא#message['data']['numeric'].
בטרנספורמציה של שינוי אירוע הפרמטרים הם:
-
KEY_EXPRESSION_VALUE: הרכיב בפרוטוטייפ של התג שמשמש לקיבוץ תגים שצריך לעקוב אחריהם יחד. כדי לעקוב אחרי תג יחיד צריך#message['tagName'] -
VALUE_EXPRESSION_VALUE: הרכיב בפרוטוטייפ של התג שמשמש למעקב אחרי שינוי הערך. צריך לפתור את הבעיה כדי להגיע לערךString. תג ברירת המחדל המספרי הוא#message['data']['numeric'].toString().