Freigeben über


Syntax für Azure Time Series Insights Gen2 Time Series Expression

Überblick

Time Series Expression (TSX) ist eine zeichenfolgenbasierte Ausdruckssprache mit starker Typisierung. TSX wird verwendet, um die folgenden Entitäten in einer Zeitreihenabfrage darzustellen.

  • Filter
  • Wert
  • Aggregierung

Filtern von Ausdrücken

Filterausdrücke werden verwendet, um boolesche Klauseln darzustellen. In der folgenden Tabelle sind Beispiele für Filter aufgeführt:

TSX (TSX) BESCHREIBUNG
$event.PointValue.Double = 3.14 true für Ereignisse mit double PointValue gleich 3.14
$event.PointValue > 3.14 AND $event.Status.String = 'Good' true für Ereignisse mit PointValue größer als 3.14 und String-Status Good
$event.$ts > dt'2018-11-01T02:03:45Z' true für Ereignisse mit einem Zeitstempel größer als 2018-11-01T02:03:45Z
$event.PointEval.Bool = true true für Ereignisse mit PointValue gleich true

Wert-Ausdrücke

Wertausdrücke werden verwendet, um den Wert für numerische und kategoriale Variablen darzustellen. Bei einem Wertausdruck kann es sich um einen Eigenschaftsreferenzausdruck vom Typ Double oder Long handeln.

Beispiel:

TSX (TSX) Hinweise
$event.Temperature.Double Das letzte Token in einem beliebigen Wertausdruck (in diesem Fall Double) wird als Type der Eigenschaft gelesen.
$event.Temperature Es wird davon ausgegangen, dass der Typ für eine Eigenschaft, auf die über ein einzelnes Token zugegriffen wird, Double ist.
$event['Temperature-Celsius'] Verwenden Sie [ und ] zum Escapen von Token, die Sonderzeichen enthalten. Verwenden Sie \ außerdem in den eckigen Klammern die folgenden Zeichen, um sie mit Escapezeichen zu versehen: \ und '.
$event.Temperature.Celsius.Double Verwenden Sie diese Option . , um auf geschachtelte Eigenschaften zuzugreifen. Beim Zugriff auf geschachtelte Eigenschaften ist der Typ erforderlich.
$event.Temperature['Celsius-C'].Double Verwenden Sie [ und ] zum Escapen von Token, die Sonderzeichen enthalten, wenn auf geschachtelte Eigenschaften zugegriffen wird. Verwenden Sie \ außerdem in den eckigen Klammern die folgenden Zeichen, um sie mit Escapezeichen zu versehen: \ und '. Beim Zugriff auf geschachtelte Eigenschaften ist der Typ erforderlich.
$event['Temperature']['Celsius'].Double Die Verwendung von und ] zum Escapen von [ Token ist für jedes Token zulässig.

Art der numerischen Variablen

Das Ergebnis des Wertausdrucks sollte vom Typ Double oder Long sein.

Art der aggregierten Variablen

Das Ergebnis des Wertausdrucks kann von einem beliebigen unterstützten Typ sein.

Kategoriale Variablenart

Das Ergebnis des Wertausdrucks kann nur vom Typ String oder Long sein.

Aggregationsausdrücke

Aggregatausdrücke werden verwendet, um den Aggregationsvorgang darzustellen, der für die Abfrage verwendet werden soll. Ein Aggregatausdruck führt zu einem einzelnen Wert für jedes Intervall. Aggregatausdrücke können auf numerische und aggregierte Variablen angewendet werden.

Aggregationsausdrücke - Art numerischer Variablen

Numerische Variablen sollten sich auf $valuebeziehen.

Hier sind die unterstützten Aggregatfunktionen.

Aggregatfunktion Beispiel BESCHREIBUNG
min min($value) Berechnet das Minimum des Pro-Intervalls $value . Vermeidet null Werte. Kann nicht mit Interpolation verwendet werden.
max max($value) Berechnet das Maximum pro $value Intervall. Vermeidet null Werte. Kann nicht mit Interpolation verwendet werden.
sum sum($value) Berechnet die Summe aller $value Ereignisse in diesem Intervall. Vermeidet null Werte. Kann nicht mit Interpolation verwendet werden.
avg avg($value) Berechnet den Durchschnitt aller $value Ereignisse in diesem Intervall. Vermeidet null Werte. Kann nicht mit Interpolation verwendet werden.
first first($value) Gibt das erste auftretende Ereignis im Intervall nach Ereigniszeitstempel zurück $value . Vermeidet nullkeine Werte. Kann nicht mit Interpolation verwendet werden.
last last($value) Gibt das zuletzt auftretende Ereignis im Intervall nach Ereigniszeitstempel zurück $value . Vermeidet nullkeine Werte. Kann nicht mit Interpolation verwendet werden.
median median($value) Gibt das mittlere Ereignis im Intervall nach Ereignis-Zeitstempel zurück $value . Vermeidet nullkeine Werte. Kann nicht mit Interpolation verwendet werden.
stdev stdev($value) Gibt die Standardabweichung der Ereignisse im Intervall zurück $value . Vermeidet null Werte. Kann nicht mit Interpolation verwendet werden.
twsum twsum($value) Gibt die zeitgewichtete Summe der Ereignisse im Intervall zurück $value . Erfordert Interpolation.
twavg twavg($value) Gibt den zeitgewichteten Durchschnitt der Ereignisse im Intervall zurück $value . Erfordert Interpolation.
left left($value) Gibt den am $value linken Rand des angegebenen Intervalls zurück. Erfordert Interpolation.
right right($value) Gibt den am $value rechten Rand des angegebenen Intervalls zurück. Erfordert Interpolation.

Aggregationsausdrücke - Art der Aggregatvariablen

Aggregierte Variablen sollten sich auf eine Eigenschaft in der Ereignisnutzlast beziehen.

Hier sind die unterstützten Aggregatfunktionen.

Aggregatfunktion Beispiel BESCHREIBUNG
count count() Gibt die Anzahl der Ereignisse pro Intervall zurück.
min min($event.Temperature.Double) Berechnet das Minimum der Eigenschaft Temperatur pro Intervall. Vermeidet null Werte.
max max($event.Temperature.Long) Berechnet das Maximum der Eigenschaft Temperatur pro Intervall. Vermeidet null Werte.
sum sum($event.Temperature.Double) Berechnet die Summe der Eigenschaft Temperature über alle Ereignisse im Intervall. Vermeidet null Werte.
avg avg($event.Temperature.Long) Berechnet den Durchschnitt der Eigenschaft Temperatur über alle Ereignisse im Intervall. Vermeidet null Werte.
first first($event.Temperature.String) Gibt den ersten (nach Ereignis-Zeitstempel) auftretenden Wert der Eigenschaft Temperature aus allen Ereignissen im Intervall zurück. Vermeidet nullkeine Werte.
last last($event.Temperature.String) Gibt den zuletzt auftretenden Wert (nach Zeitstempel des Ereignisses) der Eigenschaft Temperature aus allen Ereignissen im Intervall zurück. Vermeidet nullkeine Werte.
median median($event.Temperature.String) Gibt den mittleren (nach Ereignis-Zeitstempel) auftretenden Wert der Eigenschaft Temperature aus allen Ereignissen im Intervall zurück. Vermeidet nullkeine Werte.
stdev stdev($event.Temperature.String) Berechnet die Standardabweichung der Eigenschaft Temperatur pro Intervall. Vermeidet null Werte.

Für eine Aggregatvariablenart können diese Funktionen im Aggregatausdruck kombiniert werden. Beispiel: max($event.Temperature.Long) - min($event.Temperature.Long).

Syntax

In diesem Abschnitt werden die wichtigsten Syntaxkonzepte und Abfrageoperatoren beschrieben, die zu Ausdrücken verkettet sind.

Unterstützte Literale

Hinweis

Die folgenden Literale werden verwendet, um Ausdrücke zu bilden. Eine vollständige Liste der Datentypen finden Sie im Artikel Unterstützte Datentypen .

Primitiver Typ Literale
Bool TRUE, FALSE
DateTime dt'2016-10-08T03:22:55.3031599Z'
Double 1.23, 1.0
Lang 1, 6
String 'abc'
TimeSpan ts'P1Y2M3DT4M5.67S'
NULL NULL

Unterstützte Operandentypen

Vorgang Unterstützte Typen Hinweise
<, >,< =, >= Double, Long, DateTime, TimeSpan
=, !=, <> Double, Long, String, Bool, DateTime, TimeSpan, NULL <> entspricht !=
+, -, *, / Double, Long, DateTime, TimeSpan

Bei Vergleichsausdrücken (<, >,< =, >=, =, !=) können die Operanden NULL sein oder vom gleichen Typ sein. In jedem Prädikatausdruck werden die Typen der Operanden für die linke Seite (LHS) und die rechte Seite (RHS) auf Übereinstimmung überprüft. Fehler treten auf, wenn die Typen von LHS und RHS nicht übereinstimmen oder ein Vorgang für bestimmte Typen nicht zulässig ist.

Hinweis

Der Zeichenfolgentyp lässt im warmen Speicher keine NULL-Werte zu:

  • Der Vergleich von String mit NULL und leerer Zeichenfolge ('') verhält sich auf die gleiche Weise: $event.p1.String = NULL ist äquivalent zu $event.p1.String = ''.
  • Die API kann NULL-Werte zurückgeben, auch wenn die ursprünglichen Ereignisse leere Zeichenfolgen enthielten.

In Zukunft wird das gleiche Verhalten bei Cold Store zu beobachten sein.

Nehmen Sie keine Abhängigkeit von NULL-Werten in Zeichenfolgenspalten an, und behandeln Sie sie auf die gleiche Weise wie leere Zeichenfolgen.

  • Es wird eine Typprüfung durchgeführt:
    • Jeder Eigenschaftstyp wird für ein NULL Literal akzeptiert.
    • Die Arten von LHS und RHS sollten übereinstimmen.

Im Folgenden finden Sie Beispiele für die Eigenschaften p1 und p2 des Typs String, die Eigenschaft p3 des Typs Double und eine geschachtelte Eigenschaft, die als p4.p5 des Typs Double gespeichert ist:

Filter Ist gültig? Hinweise
$event.p1.String = 'abc' Ja
$event.p1.String = $event.p2.String Ja
$event.p1.String = NULL Ja NULL Passt zu jedem Typ auf der linken Seite.
$event.p3.Double = 'abc' Nein Typkonflikt.
$event.p3.Double = $event.p1.String Nein Typkonflikt.
$event.p1 = 'abc' Nein Typkonflikt.
$event.p1 = 1 Nein Typkonflikt.
$event.p1 = true Nein Typkonflikt.
$event.p1 = NULL Ja p1 ist das einzige verwendete Token. Interpretiert als $event.p1.Double = NULL
$event['p1'] != NULL Ja ['p1'] ist das einzige verwendete Token. Interpretiert als $event['p1'].Double != NULL
$event.p4.p5 = 0.0 Nein Ungültige Syntax für den Eigenschaftsverweis. Auf der Vergleichslinken muss ein Typ angegeben werden.
$event.p4.p5.Double = 0.0 Ja

Unterstützte Skalarfunktionen

Nachfolgend finden Sie eine Liste der Skalarfunktionen nach Kategorien:

Konvertierungsfunktionen

Funktionsname Unterschrift Beispiel Hinweise
toDouble Double toDouble (value: String, Double, Long) toDouble($event.value.Long) Konvertiert die Argumente in Double.
toLong Long toLong (value: String, Double, Long) toLong($event.value.Double + 1.0) Konvertiert die Argumente in Long.
toString String toString (value: String, Double, Long) toString($event.value.Double) Konvertiert Argumente in Zeichenfolge.

Mathematische Funktionen

Funktionsname Unterschrift Beispiel Hinweise
round Double round(value:Double) round($event.value.Double) Rundet eine Gleitzahl mit doppelter Genauigkeit auf das nächste Integral.
ceiling Double ceiling(value:Double) ceiling($event.value.Double) Gibt den kleinsten ganzzahligen Wert zurück, der größer oder gleich der Gleitkommazahl mit doppelter Genauigkeit ist.
floor Double floor(value:Double) floor($event.value.Double) Gibt den größten ganzzahligen Wert zurück, der kleiner oder gleich der Gleitkommazahl mit doppelter Genauigkeit ist.

Trigonometrische Funktionen

Funktionsname Unterschrift Beispiel Hinweise
cos Double cos(value:Double) cos($event.value.Double) Gibt den Kosinus des angegebenen Winkels im Bogenmaß zurück.
sin Double sin(value:Double) sin($event.value.Double) Gibt den Sinus des angegebenen Winkels im Bogenmaß zurück.
tan Double tan(value:Double) tan($event.value.Double) Gibt den Tangente des angegebenen Winkels im Bogenmaß zurück.
acos Double acos(value:Double) acos($event.value.Double) Gibt den Winkel im Bogenmaß zurück, dessen Kosinus die angegebene Zahl ist.
asin Double asin(value:Double) asin($event.value.Double) Gibt den Winkel im Bogenmaß zurück, dessen Sinus die angegebene Zahl ist.
atan Double atan(value:Double) atan($event.value.Double) Gibt den Winkel im Bogenmaß zurück, dessen Tangente die angegebene Zahl ist.
atan2 Double atan2(value1:Double, value2:Double) atan2($event.value1.Double, $event.value2.Double) Gibt den Winkel im Bogenmaß zurück, dessen Tangente der Quotient aus zwei angegebenen Zahlen ist.

Logarithmische Funktionen

Funktionsname Unterschrift Beispiel Hinweise
log Double log(value:Double) log($event.value.Double) Gibt den natürlichen Logarithmus einer angegebenen Zahl zurück.
log2 Double log2(value:Double) log2($event.value.Double) Gibt den Logarithmus der Basis 2 einer angegebenen Zahl zurück.
log10 Double log10(value:Double) log10($event.value.Double) Gibt den Logarithmus der Basis 10 einer angegebenen Zahl zurück.

DateTime-Funktionen

Funktionsname Unterschrift Beispiel Hinweise
monthOfYear Long monthOfYear(value:DateTime) monthOfYear($event.$ts) Gibt den Monat des Jahres als numerischen Wert für die angegebene DateTime zurück.
dayOfMonth Long dayOfMonth(value:DateTime) dayOfMonth($event.$ts) Gibt den Tag des Monats als numerischen Wert für die angegebene DateTime zurück.
hourOfDay Long hourOfDay(value:DateTime) hourOfDay($event.$ts) Gibt die Stunde des Tages als numerische Angabe für das angegebene DateTime zurück.
utcNow DateTime utcNow() utcNow() Gibt die aktuelle Uhrzeit im UTC-Format zurück.

Zeichenfolgenfunktionen

Funktionsname Unterschrift Beispiel Hinweise
toUpper String toUpper(value:String) toUpper($event.value.String) Gibt eine Eingabezeichenfolge zurück, die in Großbuchstaben konvertiert wurde.
toLower String toLower(value:String) toLower($event.value.String) Gibt eine in Kleinbuchstaben konvertierte Eingabezeichenfolge zurück.
strLen Long strLen(value:String) strLen($event.value.String) Gibt die Anzahl der Zeichen im Zeichenfolgenargument zurück.
strCat Long strCat(value1:String, value2:String) strCat($event.value1.String, $event.value2.String) Verkettet zwei angegebene Eingabezeichenfolgen.
subString String subString(value:String, startIndex:Double, length:Double) subString($event.value.String, 2.0, 4.0) Ruft eine Teilzeichenfolge aus dieser Instanz ab.
trim String trim(value:String) trim($event.value.String) Gibt eine neue Zeichenfolge zurück, indem alle führenden und nachfolgenden Leerzeichen aus der Eingabezeichenfolge entfernt werden.
indexOf Long indexOf(value:String, subString:String) indexOf($event.value.String, 'abc') Gibt das erste Vorkommen der angegebenen Zeichenfolge innerhalb der ursprünglichen Zeichenfolge zurück, basierend auf der Nullindizierung.
replace String replace(value:String, searchString:String, replaceString:String) replace($event.value.String, 'abc', 'xyz') Gibt eine Zeichenfolge zurück, bei der alle Vorkommen der Suchzeichenfolge durch die Ersetzungszeichenfolge ersetzt werden.

Andere Funktionen

Funktionsname Unterschrift Beispiel Hinweise
coalesce String, Long, Double, Bool coalesce (value: String, Long, Double, Bool) coalesce(toLong($event.value.Double), $event.value.Long) Gibt den ersten Wert ungleich NULL in der Argumentliste zurück. Akzeptiert mindestens 2 und maximal 64 Argumente, aber sie müssen alle vom gleichen Datentyp sein.
iff String, Long, Double, Bool iff (predicate: bool, ifTrue: String, Long, Double, Bool, ifFalse: String, Long, Double, Bool) iff ($event.value.Double > 100, 'Good', 'Bad') Gibt das zweite oder dritte Argument zurück, je nachdem, ob das Prädikat in true aufgelöst wurde (gibt das zweite Argument zurück) oder false (gibt das dritte Argument zurück). Das Prädikat muss ein boolescher Ausdruck sein, und das zweite und dritte Argument müssen vom gleichen Typ sein.

Siehe auch

  • Weitere Informationen zur Anwendungsregistrierung und zum Azure Active Directory-Programmiermodell finden Sie unter Azure Active Directory für Entwickler.

  • Weitere Informationen zu Anforderungs- und Authentifizierungsparametern finden Sie unter Authentifizierung und Autorisierung.

  • Zu den Tools, die beim Testen von HTTP-Anforderungen und -Antworten hilfreich sind, gehören:

  • Geiger. Dieser kostenlose Web-Debugging-Proxy kann Ihre REST-Anforderungen abfangen, sodass Sie die HTTP-Anforderungs- und Antwortnachrichten diagnostizieren können.

  • JWT.io. Sie können dieses Tool verwenden, um die Ansprüche schnell in Ihrem Bearertoken zu speichern und dann ihren Inhalt zu überprüfen.

  • Postbote. Hierbei handelt es sich um ein kostenloses Tool zum Testen von HTTP-Anfragen und -Antworten zum Debuggen von REST-APIs.

  • Weitere Informationen zu Azure Time Series Insights Gen2 finden Sie in der Gen2-Dokumentation.