値変換ノードを使用して、解析タスクのフローメッセージ内のフィールド値を変換し、その結果を元のフィールドまたは新しいフィールドに割り当てます。変換されたデータは、ダウンストリームでの分析や出力に使用できます。
シナリオ
-
シナリオ 1:元のフィールドへの値の変換
温室では、センサーを使用して照度 (lux) を報告します。照度は負の値になることはありませんが、散発的な負の測定値が IoT Platform に到達し、分析結果を歪める可能性があります。値変換ノードを使用して、このような異常データをデフォルト値に置き換えることができます。たとえば、負の照度 (lux) の測定値を 0 に変換して、ダウンストリーム処理での論理エラーを防ぎます。
-
シナリオ 2:新しく定義されたフィールドへの値の変換
温度センサーは、温度 (temperature) データを IoT Platform に報告します。温度範囲を 正常、アラーム、危険 などのレベルに分類し、適切なアクションをトリガーするには、値変換ノードを使用して新しいフィールド alert_level を作成し、対応するレベルを示します。
前提条件
データコンピューティングの式またはデータフィルタリングのフィルターが設定されていることを確認してください。詳細については、「データコンピューティングとデータフィルタリングの設定」をご参照ください。
背景情報
データ解析機能の概要については、「使用上の注意」をご参照ください。
データ解析ワークスペースの操作方法については、「データ解析ワークスペースの操作手順」をご参照ください。
手順
中央のキャンバスで、現在のノードの後に追加
アイコンをクリックします。-
表示されたノードリストから、[値変換] ノードをシングルクリックします。
-
キャンバスで [値変換] ノードをシングルクリックし、右側の設定パネルで変換パラメーターを設定します。詳細は以下の表をご参照ください。
設定項目
説明
条件フィールド名
条件評価に使用されるフィールドで、通常は数値フィールドです。このフィールドは、前のノードの出力である必要があります。
利用可能なフィールドは、前のノードの出力フィールドです。
出力フィールド名
値変換ノードによって生成される出力フィールドの名前です。名前には、文字、数字、アンダースコア (_) を使用できます。数字で始めることはできず、30 文字を超えることはできません。
文字、数字、アンダースコア (_) のみがサポートされています。名前は数字で始めることはできず、30 文字を超えることはできません。
出力フィールドタイプ
出力フィールドのデータ型として、[BIGINT]、[DOUBLE]、または [VARCHAR] を選択します。
一致しない場合のデフォルト出力値
どの条件にも一致しない場合の出力フィールドのデフォルト値です。
生データを出力するには、
${Field Name}を使用します。条件分岐
各条件セットの出力値を設定します。複数の条件分岐を追加できます。各分岐には最大 3 つの AND 条件を設定でき、ノードあたり最大 10 の分岐が可能です。分岐は上から順に評価され、最初に一致したものが適用されます。
-
次のオプションから [条件演算子] を選択します:[= (等しい)]、[!= (等しくない)]、[> (より大きい)]、[>= (以上)]、[< (より小さい)]、[<= (以下)]、[isNull] (空)、または [isNotNull] (空ではない)。
-
条件評価のための [条件値] を入力します。
-
(オプション) [AND 条件の追加] をクリックして、追加の [条件演算子] と [条件値] を追加し、設定します。
説明-
条件分岐内のすべての条件は、AND 関係で結合されます。
-
1 つの条件分岐には、最大 3 つの AND 条件を含めることができます。
-
-
分岐条件が満たされたときの出力フィールドの値を設定します。
IoT Platform は、指定された [出力フィールドタイプ] に対してデータ型を検証します。
フィールドの生データを出力するには、構文
${Field Name}を使用します。
[条件分岐の追加] をクリックして、さらに条件分岐を追加します。
説明値変換ノード内では:
-
条件分岐は最大 10 個まで設定できます。
-
ノードは条件分岐を上から順に評価し、最初に一致したものを適用します。
次の例は、「シナリオ」セクションのシナリオ 2 に基づいています。
この設定では、デバイスの動作温度をチェックし、アラートレベルを割り当てます:
-
50<temperature<=80の場合、アラートレベル (alert_level) を アラーム に設定します。 -
temperature>80の場合、アラートレベル (alert_level) を 危険 に設定します。 -
その他すべての場合、アラートレベル (alert_level) を 正常 に設定します。
値変換ノードは、SQL の
case when文に相当します:select case when temperature>50 and temperature<=80 then 'alarm' when temperature>80 then 'danger' else 'normal' end as alert_level -
-
設定を保存するには、データ解析ワークスペースの右上隅にある [保存] をシングルクリックします。
このノードの出力には、前のノードのすべてのフィールドが含まれます。値変換の結果は、元のフィールドを上書きするか、新しいフィールドとして追加されます。
次のステップ
値変換ノードを設定した後、他の処理ノードまたは宛先ノードを設定して、解析タスクを完了します。詳細については、「データコンピューティングとデータフィルタリングの設定」をご参照ください。