syntaxis voor tijdreeksexpressies Azure Time Series Insights Gen2

Overzicht

Time Series Expression (TSX) is een expressietaal op basis van tekenreeksen met veel typen. TSX wordt gebruikt om de volgende entiteiten in een Time Series-query weer te geven.

  • Filter
  • Waarde
  • Aggregatie

Filterexpressies

Filterexpressies worden gebruikt om booleaanse componenten weer te geven. De volgende tabel bevat voorbeelden van filters:

TSX Beschrijving
$event.PointValue.Double = 3.14 true voor gebeurtenissen met dubbele puntwaarde gelijk aan 3.14
$event.PointValue > 3.14 AND $event.Status.String = 'Good' true voor gebeurtenissen met de status PointValue groter dan 3.14 en tekenreeks Good
$event.$ts > dt'2018-11-01T02:03:45Z' true voor gebeurtenissen met een tijdstempel groter dan 2018-11-01T02:03:45Z
$event.PointEval.Bool = true true voor gebeurtenissen met puntwaarde gelijk aan true

Waarde-expressies

Waarde-expressies worden gebruikt om de waarde voor numerieke en categorische variabelen weer te geven. Een waarde-expressie kan een eigenschapsverwijzingsexpressie van het type Double of Long zijn.

Bijvoorbeeld:

TSX Notities
$event.Temperature.Double Het laatste token in een waarde-expressie (in dit geval Double) wordt gelezen als het type van de eigenschap.
$event.Temperature Het type wordt verondersteld dubbel te zijn voor een eigenschap die wordt geopend door één token.
$event['Temperature-Celsius'] Gebruik [ en ] voor escapetokens met speciale tekens. Gebruik bovendien \ tussen de haken om de volgende tekens te laten ontsnappen: \ en '.
$event.Temperature.Celsius.Double Gebruik . voor toegang tot geneste eigenschappen. Bij het openen van geneste eigenschappen is het type vereist.
$event.Temperature['Celsius-C'].Double Gebruik [ en ] voor escapetokens met speciale tekens bij het openen van geneste eigenschappen. Gebruik bovendien \ tussen de haken om de volgende tekens te laten ontsnappen: \ en '. Bij het openen van geneste eigenschappen is het type vereist.
$event['Temperature']['Celsius'].Double Het gebruik van [ en ] voor escapetokens is toegestaan voor elk token.

Soort numerieke variabele

Het resultaat van de waarde-expressie moet van het type Double of Long zijn.

Soort statistische variabele

Het resultaat van de waarde-expressie kan van alle ondersteunde typen zijn.

Soort categorische variabele

Het resultaat van de waardeexpressie kan alleen het type Tekenreeks of Lang zijn.

Expressies voor samenvoegen

Aggregatie-expressies worden gebruikt om de aggregatiebewerking weer te geven die voor de query moet worden gebruikt. Een statistische expressie resulteert in één waarde voor elk interval. Aggregatie-expressies kunnen worden toegepast op numerieke en aggregatievariabelen.

Aggregatie-expressies - soort numerieke variabele

Numerieke variabelen moeten verwijzen naar $value.

Dit zijn de ondersteunde statistische functies.

Statistische functie Voorbeeld Beschrijving
min min($value) Berekent het minimum van de $value per interval. Vermijdt null waarden. Kan niet worden gebruikt met interpolatie.
max max($value) Berekent het maximum van de $value per interval. Vermijdt null waarden. Kan niet worden gebruikt met interpolatie.
sum sum($value) Berekent de som van $value alle gebeurtenissen in het interval. Vermijdt null waarden. Kan niet worden gebruikt met interpolatie.
avg avg($value) Berekent het gemiddelde van $value alle gebeurtenissen in het interval. Vermijdt null waarden. Kan niet worden gebruikt met interpolatie.
first first($value) Retourneert de eerste gebeurtenis in het interval per gebeurtenistijdstempel $value . Vermijdt geennull waarden. Kan niet worden gebruikt met interpolatie.
last last($value) Retourneert de laatste gebeurtenis in het interval op tijdstempel $value van de gebeurtenis. Vermijdt geennull waarden. Kan niet worden gebruikt met interpolatie.
median median($value) Retourneert de middelste gebeurtenis in het interval per gebeurtenistijdstempel $value . Vermijdt geennull waarden. Kan niet worden gebruikt met interpolatie.
stdev stdev($value) Retourneert $value de standaarddeviatie van de gebeurtenissen in het interval. Vermijdt null waarden. Kan niet worden gebruikt met interpolatie.
twsum twsum($value) Retourneert $value de tijdgewogen som van de gebeurtenissen in het interval. Interpolatie is vereist.
twavg twavg($value) Retourneert $value het tijdgewogen gemiddelde van de gebeurtenissen in het interval. Interpolatie is vereist.
left left($value) Retourneert de $value aan de linkerkant van het opgegeven interval. Interpolatie is vereist.
right right($value) Retourneert de $value aan de rechterkant van het opgegeven interval. Interpolatie is vereist.

Aggregatie-expressies - soort statistische variabele

Statistische variabelen moeten verwijzen naar een eigenschap in de nettolading van de gebeurtenis.

Dit zijn de ondersteunde statistische functies.

Statistische functie Voorbeeld Beschrijving
count count() Retourneert het aantal gebeurtenissen per interval.
min min($event.Temperature.Double) Berekent het minimum van de eigenschap Temperatuur per interval. Vermijdt null waarden.
max max($event.Temperature.Long) Berekent het maximum van de eigenschap Temperatuur per interval. Vermijdt null waarden.
sum sum($event.Temperature.Double) Berekent de som van de eigenschap Temperatuur voor alle gebeurtenissen in het interval. Vermijdt null waarden.
avg avg($event.Temperature.Long) Berekent het gemiddelde van de eigenschap Temperatuur voor alle gebeurtenissen in het interval. Vermijdt null waarden.
first first($event.Temperature.String) Retourneert de eerste opgetreden waarde (op gebeurtenistijdstempel) van de eigenschap Temperatuur van alle gebeurtenissen in het interval. Vermijdt geennull waarden.
last last($event.Temperature.String) Retourneert de laatst voorkomende waarde (op gebeurtenistijdstempel) van de eigenschap Temperatuur van alle gebeurtenissen in het interval. Vermijdt geennull waarden.
median median($event.Temperature.String) Retourneert de middelste opgetreden waarde (op gebeurtenistijdstempel) van de eigenschap Temperatuur van alle gebeurtenissen in het interval. Vermijdt geennull waarden.
stdev stdev($event.Temperature.String) Berekent de standaarddeviatie van de eigenschap Temperatuur per interval. Vermijdt null waarden.

Voor een soort statistische variabele kunnen deze functies worden gecombineerd in de statistische expressie. Bijvoorbeeld: max($event.Temperature.Long) - min($event.Temperature.Long).

Syntax

In deze sectie worden de belangrijkste syntaxisconcepten en queryoperators beschreven die worden samengevoegd tot formulierexpressies.

Ondersteunde letterlijke waarden

Notitie

De letterlijke waarden hieronder worden gebruikt om expressies te vormen. Zie het artikel Ondersteunde gegevenstypen voor de volledige lijst met gegevenstypen.

Primitief type Literals
Bool TRUE, FALSE
Datum/tijd dt'2016-10-08T03:22:55.3031599Z'
Dubbele 1.23, 1.0
Lange 1, 6
Tekenreeks 'abc'
Tijdspanne ts'P1Y2M3DT4M5.67S'
Null NULL

Ondersteunde operandtypen

Bewerking Ondersteunde typen Notities
<, >, <=, >= Double, Long, DateTime, TimeSpan
=, !=, <> Double, Long, String, Bool, DateTime, TimeSpan, NULL <> is gelijk aan !=
+, -, *, / Double, Long, DateTime, TimeSpan

Voor vergelijkingsexpressies (<, >, =<, >=, =, !=) kunnen de operanden NULL zijn of van hetzelfde type zijn. In elke predicaatexpressie worden typen linkszijdige (LHS) en RHS-operanden (right side) gevalideerd om overeen te komen. Fouten treden op wanneer de typen LHS en RHS niet overeenkomen, of wanneer een bewerking niet is toegestaan op bepaalde typen.

Notitie

Tekenreekstype is niet nullable in Warm Store:

  • Vergelijking van Tekenreeks met NULL en lege tekenreeks ('') gedraagt zich op dezelfde manier: $event.p1.String = NULL is gelijk aan $event.p1.String = ''.
  • API kan NULL-waarden retourneren, zelfs als de oorspronkelijke gebeurtenissen lege tekenreeksen bevatten.

In de toekomst zal hetzelfde gedrag zijn op Cold Store.

Neem geen afhankelijkheid van NULL-waarden in tekenreekskolommen en behandel deze op dezelfde manier als lege tekenreeksen.

  • Er wordt een typecontrole toegepast:
    • Elk eigenschapstype wordt geaccepteerd op basis van een NULL letterlijke waarde.
    • De typen LHS en RHS moeten overeenkomen.

Hier volgen voorbeelden van eigenschappen p1 en p2 van het type String, eigenschap p3 van het type Double en een geneste eigenschap die is opgeslagen als p4.p5 van het type Double:

Filter Is geldig? Notities
$event.p1.String = 'abc' Ja
$event.p1.String = $event.p2.String Ja
$event.p1.String = NULL Ja NULL komt overeen met elk type aan de linkerkant.
$event.p3.Double = 'abc' Nee Het type komt niet overeen.
$event.p3.Double = $event.p1.String Nee Het type komt niet overeen.
$event.p1 = 'abc' Nee Het type komt niet overeen.
$event.p1 = 1 Nee Het type komt niet overeen.
$event.p1 = true Nee Het type komt niet overeen.
$event.p1 = NULL Ja p1 is het enige gebruikte token. Geïnterpreteerd als $event.p1.Double = NULL
$event['p1'] != NULL Ja ['p1'] is het enige gebruikte token. Geïnterpreteerd als $event['p1'].Double != NULL
$event.p4.p5 = 0.0 Nee Ongeldige verwijzingssyntaxis van eigenschap. Een type moet worden opgegeven op LHS van vergelijking.
$event.p4.p5.Double = 0.0 Ja

Ondersteunde scalaire functies

Hieronder vindt u de lijst met scalaire functies per categorie:

Conversiefuncties

Functienaam Handtekening Voorbeeld Opmerkingen
toDouble Double toDouble (value: String, Double, Long) toDouble($event.value.Long) Converteert de argumenten naar Dubbel.
toLong Long toLong (value: String, Double, Long) toLong($event.value.Double + 1.0) Converteert de argumenten naar Lang.
toString String toString (value: String, Double, Long) toString($event.value.Double) Converteert argumenten naar tekenreeks.

Wiskundige functies

Functienaam Handtekening Voorbeeld Opmerkingen
round Double round(value:Double) round($event.value.Double) Rondt een zwevend getal met dubbele precisie af op de dichtstbijzijnde integraal.
ceiling Double ceiling(value:Double) ceiling($event.value.Double) Retourneert de kleinste integrale waarde die groter is dan of gelijk is aan een drijvendekommagetal met dubbele precisie.
floor Double floor(value:Double) floor($event.value.Double) Geeft als resultaat de grootste integrale waarde die kleiner is dan of gelijk is aan een drijvendekommagetal met dubbele precisie.

Trigonometrische functies

Functienaam Handtekening Voorbeeld Opmerkingen
cos Double cos(value:Double) cos($event.value.Double) Retourneert de cosinus van de opgegeven hoek in radialen.
sin Double sin(value:Double) sin($event.value.Double) Retourneert de sinus van de opgegeven hoek in radialen.
tan Double tan(value:Double) tan($event.value.Double) Retourneert de tangens van de opgegeven hoek in radialen.
acos Double acos(value:Double) acos($event.value.Double) Berekent de hoek in radialen waarvan de cosinus het opgegeven getal is.
asin Double asin(value:Double) asin($event.value.Double) Retourneert de hoek in radialen waarvan sinus het opgegeven getal is.
atan Double atan(value:Double) atan($event.value.Double) Berekent de hoek in radialen waarvan de tangens het opgegeven getal is.
atan2 Double atan2(value1:Double, value2:Double) atan2($event.value1.Double, $event.value2.Double) Retourneert de hoek in radialen waarvan Tangens het quotiënt is van twee opgegeven getallen.

Logaritmische functies

Functienaam Handtekening Voorbeeld Opmerkingen
log Double log(value:Double) log($event.value.Double) Retourneert de natuurlijke logaritme van een opgegeven getal.
log2 Double log2(value:Double) log2($event.value.Double) Retourneert de logaritme met grondtal 2 van een opgegeven getal.
log10 Double log10(value:Double) log10($event.value.Double) Retourneert de logaritme met grondtal 10 van een opgegeven getal.

DateTime-functies

Functienaam Handtekening Voorbeeld Opmerkingen
monthOfYear Long monthOfYear(value:DateTime) monthOfYear($event.$ts) Retourneert de maand van het jaar als een numerieke waarde voor de opgegeven datum/tijd.
dayOfMonth Long dayOfMonth(value:DateTime) dayOfMonth($event.$ts) Retourneert de dag van de maand als een numerieke waarde voor de opgegeven datum/tijd.
hourOfDay Long hourOfDay(value:DateTime) hourOfDay($event.$ts) Retourneert het uur van de dag als een numerieke waarde voor de opgegeven datum/tijd.
utcNow DateTime utcNow() utcNow() Retourneert de huidige tijd in UTC-indeling.

Tekenreeksfuncties

Functienaam Handtekening Voorbeeld Opmerkingen
toUpper String toUpper(value:String) toUpper($event.value.String) Retourneert invoertekenreeks geconverteerd naar hoofdletters.
toLower String toLower(value:String) toLower($event.value.String) Retourneert invoertekenreeks die is geconverteerd naar kleine letters.
strLen Long strLen(value:String) strLen($event.value.String) Retourneert het aantal tekens in het tekenreeksargument.
strCat Long strCat(value1:String, value2:String) strCat($event.value1.String, $event.value2.String) Voegt twee opgegeven invoerreeksen samen.
subString String subString(value:String, startIndex:Double, length:Double) subString($event.value.String, 2.0, 4.0) Haalt een subtekenreeks op uit dit exemplaar.
trim String trim(value:String) trim($event.value.String) Retourneert een nieuwe tekenreeks door alle voorloop- en volgspaties uit de invoertekenreeks te verwijderen.
indexOf Long indexOf(value:String, subString:String) indexOf($event.value.String, 'abc') Retourneert het eerste exemplaar van de opgegeven tekenreeks in de oorspronkelijke tekenreeks, op basis van nul indexering.
replace String replace(value:String, searchString:String, replaceString:String) replace($event.value.String, 'abc', 'xyz') Retourneert een tekenreeks waarbij alle exemplaren van de zoekreeks worden vervangen door de vervangende tekenreeks.

Overige functies

Functienaam Handtekening Voorbeeld Opmerkingen
coalesce String, Long, Double, Bool coalesce (value: String, Long, Double, Bool) coalesce(toLong($event.value.Double), $event.value.Long) Retourneert de eerste niet-null-waarde in de argumentenlijst. Accepteert minimaal 2 en maximaal 64 argumenten, maar ze moeten allemaal van hetzelfde gegevenstype zijn.
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') Retourneert het tweede of derde argument, afhankelijk van of het predicaat is omgezet in waar (retourneert het tweede argument) of onwaar (retourneert het derde argument). Het predicaat moet een Booleaanse expressie zijn en het tweede en derde argument moeten van hetzelfde type zijn.

Zie ook

  • Zie Azure Active Directory voor ontwikkelaars voor meer informatie over toepassingsregistratie en het Azure Active Directory-programmeermodel.

  • Lees Verificatie en autorisatie voor meer informatie over aanvraag - en verificatieparameters.

  • Hulpprogramma's die helpen bij het testen van HTTP-aanvragen en -antwoorden zijn onder andere:

  • Fiddler. Met deze gratis webopsporingsproxy kunt u uw REST-aanvragen onderscheppen, zodat u de HTTP-aanvraag- en antwoordberichten kunt diagnosticeren.

  • JWT.io. U kunt dit hulpprogramma gebruiken om snel de claims in uw Bearer-token te dumpen en vervolgens de inhoud ervan te valideren.

  • Postman. Dit is een gratis hulpprogramma voor het testen van HTTP-aanvragen en -antwoorden voor het opsporen van fouten in REST API's.

  • Meer informatie over Azure Time Series Insights Gen2 vindt u in de Gen2-documentatie.