変換

Manufacturing Data Engine(MDE)は、取り込み中にメッセージの後処理を行い、入力メッセージから新しい派生タグとレコードを生成する簡単な方法を提供します。これらの後処理は変換と呼ばれます。特定のタイプに関連付け、新しいメッセージを生成して MDE に再取り込みできます。変換は組み込みの Dataflow パイプラインであり、特定の変換パラメータを使用して構成できます。

MDE 1.3 以降のバージョンには、次の 2 つのデフォルト変換が用意されています。

  • グループ イベントの変更
  • ウィンドウ処理

変換タイプ レベルで有効になります。つまり、そのタイプに属するすべてのタグが変換されます。型は、0、1、または複数の変換に関連付けることができます。型と特定の変換の関連付けは、ウェブ インターフェースと構成 API を使用して設定できます。型はいつでも変換に関連付けることができ、その関連付けは不要になったときにいつでも削除できます。

変換では、特定の動作を定義するために変換パラメータが必要になることがあります。変換パラメータは、各変換タイプに固有のものであり、変換ごとに異なる場合があります。

特定の 変換の特定の変換パラメータ値も、型レベルで設定されます。異なるタイプは、異なるパラメータ値を使用し、同じ変換を異なる方法で使用できます。

変換は、変換がアクティブな場合、タイプにマッピングされたすべてのメッセージを入力として受け取ります。各メッセージは、Dataflow の変換プロセッサによって処理されます。

変換の出力は、初期ランディング トピックに取り込まれる未加工の JSON メッセージです。MDE は、各変換で一意の構成パッケージを提供します。変換を使用する場合は、この構成パッケージを MDE に適用する必要があります。構成パッケージは、メッセージ クラスパーサーメタデータ バケットのコレクションを作成します。これらの構成エンティティにより、MDE は変換出力メッセージを特定のタイプに識別して処理できます。変換固有のタイプには、変換によって出力された情報が保存されます。また、元の変換済みタグまたはレコードに関する参照情報を保存する特定の変換 メタデータ バケットにも関連付けられます。

変換によって生成された未加工のメッセージを処理するために提供される 2 つのタイプは次のとおりです。

  • group-event-change-records: グループ イベント変更変換の出力メッセージの宛先タイプ。
  • window-transformation-records: ウィンドウ変換の出力メッセージの宛先タイプ。

グループ イベント変更の変換

この変換は、タグまたはタグのグループ内の任意のフィールドをモニタリングし、モニタリング対象の値がこれらのタグのいずれかで変更されるたびにイベントを生成します。この変換は、任意のアーキタイプのタイプに関連付けることができます。変換は、ウェブ インターフェースで eventChange として表示されます。

この変換は、関連付けられた構成パッケージで提供される group-event-change-records という名前の特定の CONTINUOUS_DATA_SERIES 型に解析されるメッセージを出力します。この型には、値の変化の間の期間の開始時間終了時間、前の値、現在の値、変更をトリガーしたタグの名前が含まれます。

同じタイプのタグのグループを定義して、まとめてモニタリングできます。キー条件を選択して、タグをグループ化する方法を定義できます。キーの値が同じすべてのタグがまとめてモニタリングされます。キーの値には、タグ proto の任意の要素(任意のデータ フィールドやメタデータの任意の要素など)を指定できます。

個々のタグで変換を機能させるには、キーTagName に設定します。

パラメータ

この変換を構成するために必要な 2 つの変換パラメータは次のとおりです。

  1. キー式: ウェブ インターフェースでは keyExpression として表示されます。タグのグループ化に使用する式を定義します。キー式の値が同じすべてのタグがまとめてモニタリングされます。変換は、これらのタグのいずれかで変更が検出されるたびに、値変更イベントを発行します。値は同じタグの以前の値と比較されますが、いずれかのタグが変更されるとイベントがトリガーされます。キー式SpEL 式として定義され、タグ proto で使用可能な任意のフィールドを使用できます。たとえば、タグ名に基づいて単一のタグのみをモニタリングする場合、SpEL 式は次のように定義されます。

    #message['tagName']
    

    または、マシン名などの共通のメタデータ フィールドに基づいてタグをグループ化するには(machine-name という属性を持つ asset-hierarchy バケットが存在すると仮定)、式を次のように設定します。

    #message['metadata']['asset-hierarchy']['machine-name']
    
  2. 値式: ウェブ インターフェースでは valueExpression として表示されます。変換が新しい変更イベントを生成するためにモニタリングする値フィールドを定義します。SpEL 式としても定義されます。式では、タグ proto 構造体の任意のフィールドを使用できます。式が正しく機能するためには、式の出力が String 型である必要があります。

    たとえば、タグ プロトの Data セクションの value フィールドをモニタリングするには、[値の式] を次のように設定します。

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

出力メッセージ

グループ イベント変更変換によって生成された出力メッセージの内容には、検出されたイベントの詳細が記載されています。出力メッセージで使用できる特定の属性は次のとおりです。

  1. TagName: 変換により、キー式の値と接尾辞 "_event_change" に対応するタグ名でイベントが作成されます。キー式が個々の TagName として定義されている場合、派生タグは "TagName_event_change" になります。
  2. Event Change Continuous Timestamp Object: イベントの開始(event_timestamp_start 属性)と終了(event_timestamp_end 属性)のタイムスタンプが含まれます。また、イベントの期間(duration 属性)が double として含まれています。
  3. イベント変更メッセージ データ オブジェクト: イベント中に値が変更されたタグの名前(changed_tags 属性)と、イベントが発行された時点でグループ化条件に一致するタグのリスト(contributing_tags 属性)が含まれます。どちらも、メッセージごとに複数のタグを含めることができます。
  4. タグ値変更オブジェクト: 状態変更イベントをトリガーした名前(tag_name 属性)、古い値(old_expression_value 属性)、新しい値(new_expression_attribute 属性)、メッセージ(message_id 属性)。
  5. 変更された値のメッセージ オブジェクト(v1.3.6 以降): イベントの変更をトリガーしたメッセージが含まれます。

具体的なスキーマについては、リファレンス セクションをご覧ください。

ウィンドウ処理変換

この変換は、ある型のすべてのタグにウィンドウ関数を適用します。ウィンドウ処理とは、一定期間にわたる複数のレコードを 1 つのレコードに要約することです。ウィンドウ変換は、任意のアーキタイプの任意のタイプに関連付けることができます。タグの記録を 1 分から 60 分まで要約できます。変換の結果は、選択した期間の値式の要約値を含む未加工のメッセージです。

この変換は、各ウィンドウ変換Id(パラメータで定義)が型内で一意である限り、同じ型に複数回適用できます。ウェブ インターフェースを使用して Windowing 変換を追加できますが、API を使用して、特定の型に複数のウィンドウ変換を追加する必要があります。

変換は、そのタグのその時間枠で受信したすべてのレコードの概要を含む、指定されたタイプ(window-transformation-records という名前)の派生タグを生成します。この変換はタグレベルで動作します。変換が関連付けられているタイプのタグごとに、要約されたタグが生成されます。タグの名前は、元の Tagname とサフィックス -window-statsウィンドウ変換id で構成されます。

パラメータ

この変換には、次の 3 つのパラメータが必要です。

  1. 期間時間枠: ウェブ インターフェースでは durationMinutes として使用できます。これは、適用するウィンドウの期間を分単位で示します。たとえば、値が 1 の場合、1 分の解像度の派生時系列が生成されます。
  2. ウィンドウの ID: ウェブ インターフェースで id として使用できます。同じ型の複数のウィンドウ変換を並行して適用できるように、各ウィンドウ変換に一意の識別子を割り当てます。ID には任意の文字列を指定できます。
  3. 値式: ウェブ インターフェースで valueExpression として使用できます。これは、タグ プロトに適用され、ウィンドウ変換によって集計される数値値を生成する SpEL 式です。たとえば、汎用数値タグの値フィールドを使用する必要がある場合、valueExpression の式は次のように定義できます。

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

出力メッセージ

変換は、変換パラメータ durationMinutes で定義された期間ごとに 1 つのメッセージを生成します。出力メッセージには次の属性が含まれます。

  1. TagName: 派生時系列のタグの名前。これは、ウィンドウ変換によって自動的に生成されます。これは、元の TagName と接尾辞 -window-statsウィンドウ変換id を使用して形成されます。たとえば、TagName が Temperature で ID が 1 の場合、派生タグの名前は Temperature-window-stats-1 になります。
  2. TimeStamp: ウィンドウの開始タイムスタンプと終了タイムスタンプが含まれます(event_timestamp_start 属性と event_timestamp_end 属性として使用可能)。
  3. Window Summary Stats: 期間のすべての集計データが含まれます。内容は次のとおりです。
    1. 平均: 時間枠内に受信したすべての値の平均値。
    2. 最小値: 期間中に受信したすべての値の最小値。
    3. 最大値: 期間中に受信したすべての値の最大値。
    4. 標準偏差: 時間枠内に受信したすべての値の標準偏差。
    5. p50: 時間枠内に受信した値が超過しない確率が 50% である信頼水準。
    6. p90: 時間枠内に受信した値が超えない 90% の信頼水準。
    7. 合計: 時間枠内に受信したすべての値の合計。
    8. Count: 期間内に受信した値の数。
    9. Delta: 時間枠内に受信した最後の値と最初の値の差。

詳細については、変換スキーマ セクションの特定のスキーマをご覧ください。