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.
Tutorials zu Formelausdrücken
Sie können diesen Anleitungen folgen, um Formelausdrücke in zu verwenden. AWS IoT SiteWise
Themen
Verwenden Sie Zeichenketten in Formeln
Sie können mit Zeichenketten in Ihren Formelausdrücken arbeiten. Sie können auch Zeichenketten aus Variablen eingeben, die auf Attribut- und Messeigenschaften verweisen.
Wichtig
Formelausdrücke können nur Doppel- 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 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.
AWS IoT SiteWise stellt die folgenden Funktionen für Formelausdrücke bereit, mit denen Sie Zeichenfolgen bearbeiten können:
-
Der Indexoperator ()
s[index]
-
Der Slice-Operator (
s[start:end:step]
) -
Vergleichsfunktionen, mit denen Sie Zeichenketten in lexikografischer
Reihenfolge vergleichen können -
Zeichenkettenfunktionen, zu denen auch die
jp
Funktion gehört, mit der serialisierte JSON Objekte analysiert und Zeichenketten in Zahlen konvertiert werden können
Datenpunkte filtern
Sie können die if-Funktion verwenden, um Datenpunkte herauszufiltern, die eine Bedingung nicht erfüllen. Die if
Funktion wertet eine Bedingung aus und gibt unterschiedliche Werte true
und false
Ergebnisse zurück. Sie können die Konstante none als Ausgabe für einen Fall einer if
Funktion verwenden, um den Datenpunkt für diesen Fall zu verwerfen.
Um Datenpunkte herauszufiltern, die einer Bedingung entsprechen
-
Erstellen Sie eine Transformation, die die
if
Funktion verwendet, um eine Bedingung zu definieren, die prüft, ob eine Bedingung erfüllt ist, und entweder denresult_if_false
Wertresult_if_true
oder zurückgibtnone
.
Beispiel: Filtert Datenpunkte heraus, an denen das Wasser nicht kocht
Stellen Sie sich ein Szenario vor, in dem Sie eine Messung durchführentemp_c
, die die Temperatur (in Celsius) des Wassers in einer Maschine angibt. Sie können die folgende Transformation definieren, um Datenpunkte herauszufiltern, an denen das Wasser nicht kocht:
-
Transformation:
boiling_temps = if(gte(temp_c, 100), temp_c, none)
— Gibt die Temperatur zurück, wenn sie größer oder gleich 100 Grad Celsius ist, andernfalls wird kein Datenpunkt zurückgegeben.
Zählen Sie Datenpunkte, die einer Bedingung entsprechen
Sie können Vergleichsfunktionen und sum () verwenden, um die Anzahl der Datenpunkte zu zählen, für die eine Bedingung zutrifft.
Um Datenpunkte zu zählen, die einer Bedingung entsprechen
-
Erstellen Sie eine Transformation, die eine Vergleichsfunktion verwendet, um eine Filterbedingung für eine andere Eigenschaft zu definieren.
-
Erstellen Sie eine Metrik, die die Datenpunkte summiert, für die diese Bedingung erfüllt ist.
Beispiel: Zählen Sie die Anzahl der Datenpunkte, bei denen Wasser kocht
Stellen Sie sich ein Szenario vor, in dem Sie über eine Messung verfügentemp_c
, die die Temperatur (in Celsius) des Wassers in einer Maschine angibt. Sie können die folgenden Transformations- und Metrikeigenschaften definieren, um die Anzahl der Datenpunkte zu zählen, bei denen das Wasser kocht:
-
Transformation:
is_boiling = gte(temp_c, 100)
— Gibt zurück,1
ob die Temperatur größer oder gleich 100 Grad Celsius ist, andernfalls wird zurückgegeben0
. -
Metrisch:
boiling_count = sum(is_boiling)
— Gibt die Anzahl der Datenpunkte zurück, an denen Wasser kocht.
Späte Daten in Formeln
AWS IoT SiteWise unterstützt die späte Datenaufnahme von Daten, die bis zu 7 Tage alt sind. Wenn verspätete Daten AWS IoT SiteWise empfangen werden, werden vorhandene Werte für jede Metrik neu berechnet, die die verspäteten Daten in einem vergangenen Fenster eingibt. Diese Neuberechnungen führen zu Gebühren für die Datenverarbeitung.
Anmerkung
Bei der AWS IoT SiteWise Berechnung von Eigenschaften, die verspätete Daten eingeben, wird der aktuelle Formelausdruck jeder Eigenschaft verwendet.
Nachdem ein vergangenes Fenster für eine Metrik AWS IoT SiteWise neu berechnet wurde, wird der vorherige Wert für dieses Fenster ersetzt. Wenn Sie Benachrichtigungen für diese Metrik aktiviert haben, wird AWS IoT SiteWise auch eine Benachrichtigung über den Eigenschaftswert ausgegeben. Dies bedeutet, dass Sie eine neue Benachrichtigung zum Aktualisieren von Eigenschaftswerten für dieselbe Eigenschaft und denselben Zeitstempel erhalten können, für die Sie zuvor bereits eine Benachrichtigung erhalten haben. Wenn Ihre Anwendungen oder Data Lakes Eigenschaftswertbenachrichtigungen verwenden, müssen Sie den vorherigen Wert mit dem neuen Wert aktualisieren, damit die Daten weiterhin korrekt sind.
Datenqualität in Formeln
AWS IoT SiteWise In hat jeder Datenpunkt einen Qualitätscode, der einer der folgenden sein kann:
-
GOOD
— Die Daten sind von keinen Problemen betroffen. -
BAD
— Die Daten sind von einem Problem wie einem Sensorausfall betroffen. -
UNCERTAIN
— Die Daten sind von einem Problem wie einer Sensorungenauigkeit betroffen.
AWS IoT SiteWise verbraucht bei der Berechnung von Transformationen und Metriken nur GOOD
hochwertige Daten. AWS IoT SiteWise gibt nur GOOD
Qualitätsdaten für erfolgreiche Berechnungen aus. Wenn eine Berechnung nicht erfolgreich ist, wird AWS IoT SiteWise kein Datenpunkt für diese Berechnung ausgegeben. Dies kann auftreten, wenn eine Berechnung zu einem undefinierten, unendlichen oder Überlaufwert führt.
Weitere Informationen zum Abfragen von Daten und zum Filtern nach Datenqualität finden Sie unter Daten abfragen von AWS IoT SiteWise.
Undefinierte, unendliche und Überlaufwerte
Einige Formelausdrücke (wie x / 0
sqrt(-1)
, oderlog(0)
) berechnen Werte, die in einem reellen Zahlensystem undefiniert, unendlich oder außerhalb des von unterstützten Bereichs liegen. AWS IoT SiteWise Wenn der Ausdruck einer Anlageneigenschaft einen undefinierten, unendlichen Wert oder einen Überlaufwert berechnet, wird AWS IoT SiteWise kein Datenpunkt für diese Berechnung ausgegeben.
AWS IoT SiteWise gibt auch keinen Datenpunkt aus, wenn ein nicht numerischer Wert als Ergebnis eines Formelausdrucks berechnet wird. Das bedeutet, dass, wenn Sie eine Formel definieren, die eine Zeichenfolge, ein Array oder die Konstante none berechnet, AWS IoT SiteWise kein Datenpunkt für diese Berechnung ausgegeben wird.
Beispiele
Jeder der folgenden Formelausdrücke führt zu einem Wert, der nicht als Zahl dargestellt AWS IoT SiteWise werden kann. AWS IoT SiteWise gibt bei der Berechnung dieser Formelausdrücke keinen Datenpunkt aus.
-
x / 0
ist undefiniert. -
log(0)
ist undefiniert. -
sqrt(-1)
ist in einem reellen Zahlensystem undefiniert. -
"hello" + " world"
ist eine Zeichenfolge. -
jp('{"values":[3,6,7]}', '$.values')
ist ein Array. -
if(gte(temp, 300), temp, none)
istnone
wanntemp
ist weniger als300
.