MENU

Soracom

Users

Transformation 機能

Transformation 機能では、SORACOM Harvest Data 上のデータを SORACOM Lagoon の Dashboard へ可視化する前にフィルタリングや四則演算などの加工をします。

たとえば外れ値の除去や摂氏温度から華氏温度の変換といったユースケースがあります。

注意
  • 可視化の種類として Graph を選択し Expression 機能を利用した場合、同 Panel 内で Alert は設定できません
  • SORACOM Harvest Data に格納する前にデータを演算するサービスとして SORACOM Orbit があります。こちらの利用も検討してください
注意
Transformation 機能はベータ機能です。今後予告なく仕様が変更される可能性があります。

Transformation の適用方法

Panel 編集画面にて メトリック (Query や Expression) を作成した後、 Transform タブを開きます。適用したい Transformation を選択し、設定できます。

複数の Transformation を設定した場合、上から順に適用されます。

Transformation の削除方法

Transformation が不要になった場合はゴミ箱アイコンで削除してください。

Transformation の利用例

Transformation には多くの種類がありますが、いくつかについて実際の利用例を交えて紹介します。

Filter data by values によるフィルタリング

例として、室温を計測しているセンサーにおいて稀に異常に高い外れ値が送信されてしまうシナリオを考えます。

このようなシナリオでは、 Filter data by values の Transformation を利用して値の範囲を指定することが有効です。

それぞれの設定値は以下のような意味を持ちます。

設定項目項目の意味
Filter typeフィルタリングの種類。Include では指定したフィルタの範囲内のデータを表示し、Exclude では 指定したフィルタの範囲のデータを除外する
Conditions条件。Match all では設定した条件すべてに該当したデータを表示・除外し、Match any では設定した条件のいずれかに該当したデータを表示・除外する
Fieldどのメトリックに対してフィルタリングを適用するか
Matchフィルタリングの詳細。is greater (より大きい), is lower (より小さい) など

Add field from calculation による四則演算

参考
演算は Transformation でもできますが、 Expression 機能の利用が推奨です。

温度データが摂氏で送信されており、華氏で表示したいシナリオを考えます。 Transformation タブより Add field from calculation を選択してください。

摂氏から華氏に変換するには 摂氏温度 * 1.8 + 32 の演算が必要です。* 1.8 の演算と、+ 32 の演算についてそれぞれ Add field from calculation の Transformation を適用します。

まずは * 1.8 の演算をします。

それぞれの設定値は以下のような意味を持ちます。

設定項目項目の意味
Mode計算の種類。Reduce row は最大・最小などを算出し、Binary operation は四則演算をする
Operation計算の詳細。Field or number 欄に計算対象のメトリックまたは数字を入れ、四則演算 (+, -, *, /) を選択する
Alias計算結果の系列名
Replace all fields有効にすると、計算元のメトリックを上書きする

+ 32 の計算をして、Alias で系列名を temperature_F に変更すると以下のような表示になります。

Organize fields による系列名の変更および表示 / 非表示の設定

参考
系列名の変更には Override 機能も利用できます。“Organize fields” による変更は複数の系列名をシンプルに変更したい場合に有効です。

データの英語の系列名を、閲覧者のために日本語に変換したいシナリオを考えます。

このように複数のメトリックが存在する場合は最初に Outer join Transformation を用いて結合することで、 Organize fields を適用できるようになります。 Field name には Time を選択します。

Outer join の Transformation を適用したら Organize filed の Transformation を追加します。テキストボックスに新しい系列名を記載することで上書きできます。

Rename by regex による複数系列名の一括変更

参考
系列名の変更には Override 機能も利用できます。“Rename by regex” による変更は正規表現を用いて複数の系列名を一括で変更したい場合に有効です。

デバイスから送信されたデータが [SIM 名].[データの種類] (例: sample-SIM-1.tempereture, sample-SIM-1.humidity) となっており、表示を一括して変換したいシナリオを考えます。

Rename by regex Transformation では、正規表現を用いて一括変換ができます。また Match にて () で囲った部分を Replace にて引数 ($1, $2…) にできます。この例では [文字列 1].[文字列 2] というパターンの文字列を [文字列 2] に変換しています。

設定項目項目の意味設定値の例
Match変換対象の文字列。正規表現で記載できる([^\.]+)\.(.+)
Replace変換後の文字列。$2

また、以下のようにシンプルな一括置換も可能です。この例では sample-SIM-1.[データの種類]raspberryPi_[データの種類] に変換しています。

設定項目項目の意味設定値の例
Match変換対象の文字列。正規表現で記載できるsample-SIM-1.
Replace変換後の文字列raspberryPi_

Transformation 機能で実現できない操作

現時点で、以下のような操作はできません。

累乗など四則演算以外の演算

このような操作が必要な場合は Expression を利用してください。

複数 SIM から送信された同名の系列に対する個別の系列名変更

たとえば複数の SIM から “temperature” という系列名のデータを送信する場合、 グラフ上は全てのデータが “temperature” と表示され、“temperature_A”, “temperature_B” といった区別ができません。

このような問題を解決したい場合は Override を利用してください。

Transformation を適用したデータに対する Alert の設定

Transformation は柔軟な可視化を目的に利用できます。アラート送信のためにデータの前処理が必要な場合は、 SORACOM Orbit を利用してください。なお、系列名の変更だけであれば Override 機能は Alert との併用が可能です。

数値以外のデータに対する処理

現時点の SORACOM Lagoon では、テキストデータは Table のみで利用でき、boolean データは利用できません。テキストマッピングなどを利用したい場合は Table の Value mappings で設定してください。