隣接メッセージ計算 ノードは、現在のメッセージと前のメッセージ間の数値フィールド (BIGINT または DOUBLE) を比較し、定義された式を使用して結果を計算し、その結果を指定された出力フィールドに書き込んで、さらなる分析に利用します。
ユースケース
スマートメーターは、1 時間ごとに累積電力使用量を報告します。隣接メッセージ計算 ノードを使用すると、現在の使用量の値から前の使用量の値を減算し、直近 1 時間の増分使用量 (単位:kWh) を特定できます。
前提条件
データ計算式またはデータフィルタリングフィルターが設定されていることを確認します。詳細については、「データ計算とデータフィルタリングを構成する」をご参照ください。
背景情報
データ解析機能の概要については、「使用上の注意」をご参照ください。
データ解析ワークスペースの操作方法については、「データ解析ワークスペースの操作手順」をご参照ください。
手順
中央のキャンバスで、現在のノードの後に追加
アイコンをクリックします。-
表示されるノードリストで、[隣接メッセージ計算] ノードをクリックします。
-
キャンバス上で、[隣接メッセージ計算] ノードをクリックします。右側の設定ペインで、次の表に示すようにノードを設定します。
パラメーター
パラメーター
説明
例
基本設定
[前の変数フィールド]
計算に使用する数値フィールドを、前のメッセージから選択します。
式では、
${pre_var}変数がこのフィールドの値を表します。重要このフィールドは、前のノードが出力する数値フィールド (BIGINT または DOUBLE) のみをサポートします。
スマートメーターのユースケースでは、kWh などの電力使用量フィールドを選択します。
[現在の変数フィールド]
計算に使用する数値フィールドを、現在のメッセージから選択します。
式では、
${current_var}変数がこのフィールドの値を表します。重要このフィールドは、前のノードが出力する数値フィールド (BIGINT または DOUBLE) のみをサポートします。
スマートメーターのユースケースでは、kWh などの電力使用量フィールドを選択します。
[結果フィールド名]
計算結果を格納するフィールドの名前を入力します。
名前は一意にする必要があり、長さは最大 30 文字で、英字、数字、アンダースコア (_) のみ使用できます。数字で始めることはできません。
スマートメーターのユースケースでは、フィールドに kwh_diff と名前を付けて、1 時間ごとの増分電力消費量を表すことができます。
[式]
[前の変数フィールド] と [現在の変数フィールド] から値を計算する式を定義します。
[現在の変数フィールド] の値は
${current_var}で、[前の変数フィールド] の値は${pre_var}で表す必要があります。基本的な算術演算と、式ノードがサポートするすべての関数を使用できます。詳細については、「式の構成」をご参照ください。
スマートメーターのユースケースでは、1 時間ごとの増分電力消費量を計算するために、現在の使用量の値から前の使用量の値を減算します。
式は
${current_var} - ${pre_var}です。詳細設定
[メッセージパーティションキー]
オプション。同じトピック内のメッセージをパーティション分割し、隣接計算を行うためのキーです。同じパーティションキーを持つメッセージは順次処理されます。
キーを指定しない場合、IoT Platform は ProductKey と DeviceName の組み合わせをデフォルトのメッセージパーティションキーとして使用します。
スマートメーターのユースケースの場合:
同じメーターからの電力消費量 (kWh) メッセージに対して隣接計算を実行するには、パーティションキーはメーターの ProductKey と DeviceName である必要があります。この場合、このフィールドは空のままにして、デフォルト値を使用できます。
ただし、複数のメーターが単一のゲートウェイを介してデータを報告し、メッセージペイロード内の deviceId フィールドが各メーターを識別する場合、[メッセージパーティションキー] を deviceId に設定する必要があります。これにより、同じ物理メーターからのメッセージが順次処理されることが保証されます。
[メッセージ TTL]
単位:秒。デフォルト:86,400 (1 日)。最小:1。最大:2,592,000 (30 日)。
-
この期間内に新しいメッセージが受信されない場合、前の変数の値はクリアされます。ノードは、新しいメッセージを受信するたびにメッセージ TTL をリセットします。
-
[メッセージ TTL] が期限切れになり、前の変数の値がクリアされた場合、システムは次に受信するメッセージをシーケンスの最初のメッセージとして扱います。この最初のメッセージでは隣接計算は実行されず、結果フィールドは空になります。
スマートメーターのユースケースでは、デフォルト値の 86400 を使用できます。
-
-
データ解析コンソールの右上隅にある[保存]をクリックして、ノードの設定を保存します。
重要このノードの出力には、指定された結果フィールドと、前のノードのすべての出力フィールドが含まれます。
次のステップ
処理ノードを追加するか、ターゲットノード を設定して、データ解析 パイプラインの構築を続行します。