

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Daten transformieren (transformiert)
<a name="transforms"></a>

*Transformationen* sind mathematische Ausdrücke, die die Datenpunkte von Asset-Eigenschaften einem Formular einem anderen zuordnen. Ein Transformationsausdruck besteht aus Variablen, Literalen, Operatoren und Funktionen für Asset-Eigenschaften. Die transformierten Datenpunkte stehen in einer one-to-one Beziehung zu den Eingabedatenpunkten. AWS IoT SiteWise berechnet jedes Mal, wenn eine der Eingabeeigenschaften einen neuen Datenpunkt erhält, einen neuen transformierten Datenpunkt.

**Anmerkung**  
Bei Eigenschaftenaktualisierungen mit demselben Zeitstempel können Ausgabewerte durch Aktualisierungen anderer eingehender Eigenschaften überschrieben werden.

Wenn Ihre Komponente beispielsweise über einen Temperaturmessungs-Stream namens `Temperature_C` mit Einheiten in Celsius verfügt, können Sie jeden Datenpunkt mit der Formel `Temperature_F = 9/5 * Temperature_C + 32` in Fahrenheit konvertieren. Jedes Mal, wenn ein Datenpunkt im `Temperature_C` Messstream AWS IoT SiteWise empfangen wird, wird der entsprechende `Temperature_F` Wert innerhalb weniger Sekunden berechnet und ist als Eigenschaft verfügbar. `Temperature_F`

Wenn Ihre Transformation mehr als eine Variable enthält, leitet der Datenpunkt, der früher eintrifft, die Berechnung sofort ein. Stellen Sie sich ein Beispiel vor, bei dem ein Teilehersteller eine Transformation verwendet, um die Produktqualität zu überwachen. Der Hersteller verwendet je nach Bauteiltyp eine andere Norm und verwendet die folgenden Maße, um den Prozess darzustellen:
+ `Part_Number`- Eine Zeichenfolge, die den Teiletyp identifiziert.
+ `Good_Count`- Eine Ganzzahl, die um eins erhöht wird, wenn das Teil der Norm entspricht.
+ `Bad_Count`- Eine Ganzzahl, die um eins erhöht wird, wenn das Teil nicht der Norm entspricht.

Der Hersteller erstellt auch eine Transformation,`Quality_Monitor`, die entspricht. ` if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")`

Diese Transformation überwacht den Prozentsatz fehlerhafter Teile, die für einen bestimmten Teiletyp hergestellt wurden. Wenn die Bauteilnummer den Wert 10 Prozent (0,1) übersteigt BLT123 und der Prozentsatz der fehlerhaften Teile 10 Prozent (0,1) übersteigt, kehrt die Transformation zurück`"Caution"`. Andernfalls kehrt die Transformation zurück`"Normal"`.

**Anmerkung**  
Wenn vor anderen Messungen ein neuer Datenpunkt `Part_Number` empfangen wird, verwendet die `Quality_Monitor` Transformation den neuen `Part_Number` Wert und die neuesten `Good_Count` `Bad_Count` UND-Werte. Um Fehler zu vermeiden, setzen `Good_Count` Sie das `Bad_Count` Gerät vor dem nächsten Fertigungslauf zurück.
Verwenden Sie [Metriken](metrics.md), wenn Sie Ausdrücke erst auswerten möchten, nachdem alle Variablen neue Datenpunkte erhalten haben.

**Topics**
+ [Transformationen definieren (Konsole)](#define-transforms-console)
+ [Definieren Sie Transformationen ()AWS CLI](#define-transform-cli)

## Transformationen definieren (Konsole)
<a name="define-transforms-console"></a>

Wenn Sie in der AWS IoT SiteWise Konsole eine Transformation für ein Asset-Modell definieren, geben Sie die folgenden Parameter an:
+ <a name="asset-property-name-console"></a>**Name** — Der Name der Immobilie.
+ <a name="asset-property-unit-console"></a>**Einheit** — (Optional) Die wissenschaftliche Einheit für die Eigenschaft, z. B. mm oder Celsius.
+ **Datentyp** — Der Datentyp der Transformation, der **Double** oder **String** sein kann.
+ **Externe ID** — (Optional) Dies ist eine benutzerdefinierte ID. Weitere Informationen finden Sie unter [Referenzobjekte mit externen IDs](object-ids.md#external-id-references) im *AWS IoT SiteWise -Benutzerhandbuch*.
+ **Formel** — Der Transformationsausdruck. Transformationsausdrücke können keine Aggregationsfunktionen oder Temporalfunktionen verwenden. Um die Funktion zur auto Vervollständigung zu öffnen, beginnen Sie mit der Eingabe oder drücken Sie die NACH-UNTEN-TASTE. Weitere Informationen finden Sie unter [Verwenden Sie Formelausdrücke](formula-expressions.md).
**Wichtig**  <a name="transform-input-rules"></a>
Transformationen können Eigenschaften vom Typ Integer, Double, Boolean oder Zeichenfolge eingeben. Boolesche Werte werden in `0` (falsch) und (wahr) konvertiert. `1`  
Transformationen müssen eine oder mehrere Eigenschaften, die keine Attribute sind, und eine beliebige Anzahl von Attributeigenschaften eingeben. AWS IoT SiteWise berechnet jedes Mal einen neuen transformierten Datenpunkt, wenn die Eingabeeigenschaft, bei der es sich nicht um ein Attribut handelt, einen neuen Datenpunkt erhält. Neue Attributwerte starten keine Transformationsaktualisierungen. Für Ergebnisse der Transformationsberechnung gilt dieselbe Anforderungsrate für API-Operationen mit Objektdaten.  
<a name="formula-output-rules"></a>Formelausdrücke können nur Doppelwerte oder Zeichenkettenwerte ausgeben. Verschachtelte Ausdrücke können andere Datentypen ausgeben, z. B. Zeichenfolgen, aber die Formel als Ganzes muss eine Zahl oder Zeichenfolge ergeben. Sie können die [Funktion jp](expression-string-functions.md#jp-definition) verwenden, um eine Zeichenfolge in eine Zahl umzuwandeln. Der boolesche Wert muss 1 (wahr) oder 0 (falsch) sein. Weitere Informationen finden Sie unter [Undefinierte, unendliche und Überlaufwerte](expression-tutorials.md#undefined-values).

Weitere Informationen finden Sie unter [Erstellen Sie ein Asset-Modell (Konsole)](create-asset-models.md#create-asset-model-console).

## Definieren Sie Transformationen ()AWS CLI
<a name="define-transform-cli"></a>

Wenn Sie mit der AWS IoT SiteWise API eine Transformation für ein Asset-Modell definieren, geben Sie die folgenden Parameter an:
+ <a name="asset-property-name-cli"></a>`name`— Der Name der Immobilie.
+ <a name="asset-property-unit-cli"></a>`unit`— (Optional) Die wissenschaftliche Einheit für die Eigenschaft, z. B. mm oder Celsius.
+ `dataType`— Der Datentyp der Transformation, der `DOUBLE` oder sein muss`STRING`.
+ `externalId`— (Optional) Dies ist eine benutzerdefinierte ID. Weitere Informationen finden Sie unter [Referenzobjekte mit externen IDs](object-ids.md#external-id-references) im *AWS IoT SiteWise -Benutzerhandbuch*.
+ `expression`— Der Transformationsausdruck. Transformationsausdrücke können keine Aggregationsfunktionen oder Temporalfunktionen verwenden. Weitere Informationen finden Sie unter [Verwenden Sie Formelausdrücke](formula-expressions.md).
+ `variables`— Die Liste der Variablen, die die anderen Eigenschaften Ihres Assets definiert, die im Ausdruck verwendet werden sollen. Jede Variablenstruktur enthält einen einfachen Namen, der in dem Ausdruck verwendet werden soll, sowie eine `value`-Struktur zur Identifizierung der mit dieser Variablen zu verknüpfenden Eigenschaft. Die `value`-Struktur enthält folgende Informationen:
  + `propertyId`— Die ID der Eigenschaft, aus der Werte eingegeben werden sollen. Sie können den Namen der Eigenschaft anstelle der ID verwenden.
**Wichtig**  <a name="transform-input-rules"></a>
Transformationen können Eigenschaften vom Typ Integer, Double, Boolean oder Zeichenfolge eingeben. Boolesche Werte werden in `0` (falsch) und (wahr) konvertiert. `1`  
Transformationen müssen eine oder mehrere Eigenschaften, die keine Attribute sind, und eine beliebige Anzahl von Attributeigenschaften eingeben. AWS IoT SiteWise berechnet jedes Mal einen neuen transformierten Datenpunkt, wenn die Eingabeeigenschaft, bei der es sich nicht um ein Attribut handelt, einen neuen Datenpunkt erhält. Neue Attributwerte starten keine Transformationsaktualisierungen. Für Ergebnisse der Transformationsberechnung gilt dieselbe Anforderungsrate für API-Operationen mit Objektdaten.  
<a name="formula-output-rules"></a>Formelausdrücke können nur Doppelwerte oder Zeichenkettenwerte ausgeben. Verschachtelte Ausdrücke können andere Datentypen ausgeben, z. B. Zeichenfolgen, aber die Formel als Ganzes muss eine Zahl oder Zeichenfolge ergeben. Sie können die [Funktion jp](expression-string-functions.md#jp-definition) verwenden, um eine Zeichenfolge in eine Zahl umzuwandeln. Der boolesche Wert muss 1 (wahr) oder 0 (falsch) sein. Weitere Informationen finden Sie unter [Undefinierte, unendliche und Überlaufwerte](expression-tutorials.md#undefined-values).

**Example Definition transformieren**  
Das folgende Beispiel zeigt eine Transformationseigenschaft, die die Temperaturmessdaten einer Komponente von Celsius in Fahrenheit konvertiert. Dieses Objekt ist ein Beispiel für ein [AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html), das eine [Transformation](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Transform.html) enthält. Sie können dieses Objekt als Teil der [CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html)-Anforderungs-Nutzlast angeben, um eine Transformationseigenschaft zu erstellen. Weitere Informationen finden Sie unter [Erstellen Sie ein Asset-Modell (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 Transformationsdefinition, die drei Variablen enthält**  
Das folgende Beispiel zeigt eine Transformationseigenschaft, die eine Warnmeldung (`"Caution"`) zurückgibt, wenn mehr als 10 Prozent der BLT123 Teile nicht der Norm entsprechen. Andernfalls wird eine Informationsmeldung (`"Normal"`) zurückgegeben.  

```
{
...
"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"
                }
            }
        ]
    }
}
}
...
}
```