

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# データを変換する (変換)
<a name="transforms"></a>

変換は、アセットプロパティのデータポイントを別のフォームにマッピングする数式です。変換式は、アセットプロパティ変数、リテラル、演算子、関数で構成されます。変換されたデータポイントは、入力データポイントと one-to-one の関係を保持します。 は、入力プロパティが新しいデータポイントを受信するたびに、新しい変換されたデータポイントを AWS IoT SiteWise 計算します。

**注記**  
同じタイムスタンプを持つプロパティ更新の場合、出力値は他の受信プロパティからの更新によって上書きされる可能性があります。

たとえば、アセットに単位が摂氏の名前 `Temperature_C` の温度測定ストリームがある場合、数式 `Temperature_F = 9/5 * Temperature_C + 32` を使用して各データポイントを華氏に変換できます。が`Temperature_C`測定ストリームでデータポイント AWS IoT SiteWise を受信するたびに、対応する`Temperature_F`値は数秒以内に計算され、 `Temperature_F`プロパティとして使用できます。

変換に複数の変数が含まれる場合、先に到着したデータポイントからすぐにコンピューティングが開始されます。例えば、ある部品メーカーが製品の品質をモニタリングするためにトランスを使用する場合を考えてみましょう。部品の種類によって異なる基準を用いて、メーカーは次のような測定値で工程を表現しています。
+ `Part_Number` - 部品のタイプを識別する文字列。
+ `Good_Count` - 部品が規格に適合している場合、1 だけ増加する整数。
+ `Bad_Count` - 部品が規格に適合しない場合、1 だけ増加する整数。

また、メーカーは `Quality_Monitor` に等しい変換 ` if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")` を作成します。

この変換は、特定の部品型で生産された不良部品の割合をモニタリングします。部品番号がBLT123で、不良部品の割合が10％ (0.1) を超える場合、変換は `"Caution"` を返します。そうでない場合は、変換は `"Normal"` を返します。

**注記**  
`Part_Number` が他の測定値より先に新しいデータポイントを受信した場合、N`Quality_Monitor`変換は新しい `Part_Number` 値と最新の `Good_Count` および `Bad_Count` 値を使用します。エラーを回避するため、次の製造の前に `Good_Count`、 `Bad_Count` をリセットしてください。
すべての変数が新しいデータポイントを受け取った後にのみ式を評価したい場合は、[[metrics]](metrics.md) (メトリクス) を使用します。

**Topics**
+ [変換を定義する (コンソール)](#define-transforms-console)
+ [変換を定義する (AWS CLI)](#define-transform-cli)

## 変換を定義する (コンソール)
<a name="define-transforms-console"></a>

 AWS IoT SiteWise コンソールでアセットモデルの変換を定義するときは、次のパラメータを指定します。
+ <a name="asset-property-name-console"></a>**[Name]** (名前) - プロパティの名前。
+ <a name="asset-property-unit-console"></a>**[Unit]** (単位) - プロパティの科学単位 (mm、摂氏など)。
+ **[Data type]** (データ型) - 変換のデータ型で、**[Double]** (倍) または **[String]** (文字列) です。
+ **外部 ID** – (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。
+ **[Formula]** (コンピューティング式) – 変換式。変換式では、集計関数や一時関数は使用できません。オートコンプリート機能を開くには、入力を開始するか、下矢印キーを押します。詳細については、「[数式を使用する](formula-expressions.md)」を参照してください。
**重要**  <a name="transform-input-rules"></a>
変換は、整数、倍、ブール値、文字列型のプロパティを入力することができます。ブール値は、`0` (false) 、`1` (true) に変換されます。  
変換には、属性でないプロパティを1つ以上、任意の数だけ入力する必要があります。 AWS IoT SiteWise は、属性でない入力プロパティが新しいデータポイントを受け取るたびに、新しい変換後のデータポイントをコンピューティングする。新しい属性値では、変換の更新は開始されません。アセットプロパティデータの API オペレーションのリクエストレートは、変換計算の結果にも適用されます。  
<a name="formula-output-rules"></a>数式では、倍値または文字列値のみを出力できます。入れ子になった式は、文字列など他のデータ型を出力することができますが、式全体としては、数値または文字列として評価されなければなりません。[[jp function]](expression-string-functions.md#jp-definition) (jp関数) を使うと、文字列を数値に変換することができます。ブール値は 1 (true) または 0 (false) でなければならない。詳細については、「[未定義の値、無限の値、およびオーバーフロー値](expression-tutorials.md#undefined-values)」を参照してください。

詳細については、「[アセットモデルを作成する (コンソール)](create-asset-models.md#create-asset-model-console)」を参照してください。

## 変換を定義する (AWS CLI)
<a name="define-transform-cli"></a>

 AWS IoT SiteWise API を使用してアセットモデルの変換を定義する場合は、次のパラメータを指定します。
+ <a name="asset-property-name-cli"></a>`name` - プロパティの名前。
+ <a name="asset-property-unit-cli"></a>`unit` –(オプション) プロパティの科学単位 (mm、摂氏など)。
+ `dataType` - 変換のデータ型は、`DOUBLE` または `STRING` である必要があります。
+ `externalId` – (オプション) これはユーザー定義 ID です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。
+ `expression` - 変換式。変換式では、集計関数や一時関数は使用できません。詳細については、「[数式を使用する](formula-expressions.md)」を参照してください。
+ `variables` - 式で使用するアセットの他のプロパティを定義する変数のリスト。各変数構造には、式で使用する単純な名前と、その変数にリンクされるプロパティを定義する `value` 構造が含まれます。`value` 構造体には、以下の情報が含まれています。
  + `propertyId` - 値を入力するプロパティの ID。ID の代わりにプロパティの名前を使用できます。
**重要**  <a name="transform-input-rules"></a>
変換は、整数、倍、ブール値、文字列型のプロパティを入力することができます。ブール値は、`0` (false) 、`1` (true) に変換されます。  
変換には、属性でないプロパティを1つ以上、任意の数だけ入力する必要があります。 AWS IoT SiteWise は、属性でない入力プロパティが新しいデータポイントを受け取るたびに、新しい変換後のデータポイントをコンピューティングする。新しい属性値では、変換の更新は開始されません。アセットプロパティデータの API オペレーションのリクエストレートは、変換計算の結果にも適用されます。  
<a name="formula-output-rules"></a>数式では、倍値または文字列値のみを出力できます。入れ子になった式は、文字列など他のデータ型を出力することができますが、式全体としては、数値または文字列として評価されなければなりません。[[jp function]](expression-string-functions.md#jp-definition) (jp関数) を使うと、文字列を数値に変換することができます。ブール値は 1 (true) または 0 (false) でなければならない。詳細については、「[未定義の値、無限の値、およびオーバーフロー値](expression-tutorials.md#undefined-values)」を参照してください。

**Example [Transform job definition] (変換定義)**  
次の例は、アセットの温度測定データを摂氏から華氏に変換する変換プロパティを示しています。このオブジェクトは、[[Transform]](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Transform.html) (変換) を含む [AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html) の例である。このオブジェクトを[CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) リクエストペイロードの一部として指定して、変換プロパティを作成できます。詳細については、「[アセットモデルを作成する (AWS CLI)](create-asset-models.md#create-asset-model-cli)」を参照してください。  

```
{
{{...}}
"assetModelProperties": [
{{...}}
{
  "name": "Temperature F",
  "dataType": "DOUBLE",
  "type": {
    "transform": {
      "expression": "9/5 * temp_c + 32",
      "variables": [
        {
          "name": "temp_c",
          "value": {
            "propertyId": "Temperature C"
          }
        }
      ]
    }
  },
  "unit": "Fahrenheit"
}
],
{{...}}
}
```

**Example 3つの変数を含む変換定義。**  
次の例では、BLT123の部品の10％以上が基準を満たしていない場合に警告メッセージ (`"Caution"`) を返す変換プロパティを示しています。それ以外の場合は、情報メッセージ (`"Normal"`) を返す。  

```
{
{{...}}
"assetModelProperties": [
{{...}}
{
"name": "Quality_Monitor",
"dataType": "STRING",
"type": {
    "transform": {
        "expression": "if(eq(Part_Number,"BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")",
        "variables": [
            {
                "name": "Part_Number",
                "value": {
                    "propertyId": "Part Number"
                }
            },
            {
                "name": "Good_Count",
                "value": {
                    "propertyId": "Good Count"
                }
            },
            {
                "name": "Bad_Count",
                "value": {
                    "propertyId": "Bad Count"
                }
            }
        ]
    }
}
}
{{...}}
}
```