Azure Time Series Insights Gen2 Idősor kifejezés szintaxisa

Áttekintés

A Time Series Expression (TSX) egy erős gépelésű sztringalapú kifejezésnyelv. A TSX a következő entitások ábrázolására szolgál egy idősoros lekérdezésben.

  • Szűrő
  • Érték
  • Összesítés

Kifejezések szűrése

A szűrőkifejezések logikai záradékokat jelölnek. Az alábbi táblázat példákat sorol fel a szűrőkre:

TSX Description
$event.PointValue.Double = 3.14 true olyan eseményekhez, amikor a PointValue értéke megegyezik a következővel: 3.14
$event.PointValue > 3.14 AND $event.Status.String = 'Good' true a PointValue-nál3.14 nagyobb értékű és sztringállapotú eseményekhez Good
$event.$ts > dt'2018-11-01T02:03:45Z' true olyan események esetén, amelynek időbélyege nagyobb, mint 2018-11-01T02:03:45Z
$event.PointEval.Bool = true true olyan eseményekhez, amikor a PointValue értéke true

Értékkifejezések

Az értékkifejezések numerikus és kategorikus változók értékének ábrázolására szolgálnak. Az értékkifejezés lehet dupla vagy hosszú típusú tulajdonsághivatkozási kifejezés.

Például:

TSX Jegyzetek
$event.Temperature.Double Bármely értékkifejezés utolsó tokenje (ebben az esetben Double) a tulajdonság típusaként lesz beolvasva.
$event.Temperature A típust a rendszer dupla értékűnek feltételezi egy egyetlen jogkivonattal elért tulajdonság esetében.
$event['Temperature-Celsius'] Speciális karakterekkel rendelkező jogkivonatok meneküléséhez használja [ a és ] a parancsot. A \ szögletes zárójelek között a következő karaktereket is feloldhatja: \ és '.
$event.Temperature.Celsius.Double Beágyazott tulajdonságok elérésére használható . . Beágyazott tulajdonságok elérésekor a típus megadása kötelező.
$event.Temperature['Celsius-C'].Double A és ] a függvény [ speciális karakterekkel rendelkező jogkivonatok beágyazási tulajdonságainak elérésekor használható. A \ szögletes zárójelek között a következő karaktereket is feloldhatja: \ és '. Beágyazott tulajdonságok elérésekor a típus megadása kötelező.
$event['Temperature']['Celsius'].Double [ A és ] a használata a tokenek meneküléséhez bármely jogkivonaton engedélyezett.

Numerikus változó típusa

Az értékkifejezés eredményének dupla vagy hosszú típusúnak kell lennie.

Aggregátumváltozó típusa

Az értékkifejezés eredménye bármilyen támogatott típus lehet.

Kategorikus változó típusa

Az értékkifejezés eredménye csak Sztring vagy Hosszú típus lehet.

Összesítő kifejezések

Az összesítő kifejezések a lekérdezésben használni kívánt összesítési műveletet ábrázolják. Az aggregátumkifejezések minden intervallumhoz egyetlen értéket adnak. Az aggregátumkifejezések numerikus és összesítő változókra is alkalmazhatók.

Aggregációs kifejezések – numerikus változó típusa

A numerikus változóknak a következőre kell hivatkoznia: $value.

Íme a támogatott összesítő függvények.

Összesítő függvény Példa Leírás
min min($value) Kiszámítja az intervallumonkénti $value minimális értéket. Elkerüli az null értékeket. Interpolációval nem használható.
max max($value) Kiszámítja az intervallumonkénti $value maximális értéket. Elkerüli az null értékeket. Interpolációval nem használható.
sum sum($value) Kiszámítja az összes esemény összegét $value az intervallumban. Elkerüli az null értékeket. Interpolációval nem használható.
avg avg($value) Az intervallum összes eseményének átlagát $value számítja ki. Elkerüli az null értékeket. Interpolációval nem használható.
first first($value) $value Az első előforduló esemény visszaadása az intervallumban eseményidőbélyeggel. Nem kerüli el null az értékeket. Interpolációval nem használható.
last last($value) $value Az utolsó esemény értékét adja vissza az intervallumban az esemény időbélyege szerint. Nem kerüli el null az értékeket. Interpolációval nem használható.
median median($value) $value A középső esemény értékét adja vissza az intervallumban az esemény időbélyege szerint. Nem kerüli el null az értékeket. Interpolációval nem használható.
stdev stdev($value) $value Az események szórását adja vissza az intervallumban. Elkerüli az null értékeket. Interpolációval nem használható.
twsum twsum($value) $value Az események idő súlyozott összegét adja vissza az intervallumban. Interpolációt igényel.
twavg twavg($value) $value Az események súlyozott átlagának időértékét adja vissza az intervallumban. Interpolációt igényel.
left left($value) $value A megadott intervallum bal szélén lévő értéket adja vissza. Interpolációt igényel.
right right($value) $value A megadott intervallum jobb szélén lévő értéket adja vissza. Interpolációt igényel.

Aggregációs kifejezések – aggregátumváltozó típusa

Az összesített változóknak egy tulajdonságra kell hivatkoznia az esemény hasznos adataiban.

Íme a támogatott összesítő függvények.

Aggregátumfüggvény Példa Leírás
count count() Az események intervallumonkénti számát adja vissza.
min min($event.Temperature.Double) Kiszámítja az intervallumonkénti Hőmérséklet tulajdonság minimális értékét. Elkerüli az null értékeket.
max max($event.Temperature.Long) Kiszámítja az intervallumonkénti Hőmérséklet tulajdonság maximumát. Elkerüli az null értékeket.
sum sum($event.Temperature.Double) Kiszámítja a Temperature tulajdonság összegét az intervallum összes eseményéhez képest. Elkerüli az null értékeket.
avg avg($event.Temperature.Long) Kiszámítja a Hőmérséklet tulajdonság átlagát az intervallum összes eseményére. Elkerüli az null értékeket.
first first($event.Temperature.String) A Temperature tulajdonság első (eseményidőbélyeggel történő) értékét adja vissza az intervallum összes eseményéből. Nem kerüli el null az értékeket.
last last($event.Temperature.String) A Temperature tulajdonság utolsó (eseményidőbélyeggel történő) értékét adja vissza az intervallum összes eseményéből. Nem kerüli el null az értékeket.
median median($event.Temperature.String) A Hőmérséklet tulajdonság középértékét adja vissza (eseményidőbélyeggel) az intervallum összes eseményéből. Nem kerüli el null az értékeket.
stdev stdev($event.Temperature.String) Kiszámítja a Hőmérséklet intervallumonként tulajdonság szórását. Elkerüli az null értékeket.

Aggregátumváltozók esetében ezek a függvények kombinálhatók az összesítő kifejezésben. Példa: max($event.Temperature.Long) - min($event.Temperature.Long).

Syntax

Ez a szakasz a kifejezésekkel összefűzött alapvető szintaxisfogalmakat és lekérdezési operátorokat ismerteti.

Támogatott literálok

Megjegyzés

Az alábbi literálok kifejezéseket alkotnak. Az adattípusok teljes listáját a Támogatott adattípusok című cikkben találja.

Primitív típus Literálok
Bool TRUE, FALSE
Dátum/idő dt'2016-10-08T03:22:55.3031599Z'
Dupla 1.23, 1.0
Hosszú 1, 6
Sztring 'abc'
Időtartomány ts'P1Y2M3DT4M5.67S'
Null NULL

Támogatott operandustípusok

Művelet Támogatott típusok Jegyzetek
<, >, <=, >= Double, Long, DateTime, TimeSpan
=, !=, <> Double, Long, String, Bool, DateTime, TimeSpan, NULL <>egyenértékű a != értékkel
+, -, *, / Double, Long, DateTime, TimeSpan

Összehasonlító kifejezések (<, , ><=, >=, =, !=) esetén az operandusok NULL értékűek vagy azonos típusúak lehetnek. Minden predikátumkifejezésben a rendszer ellenőrzi, hogy a bal oldali (LHS) és a jobb oldali (RHS) operandusok típusai egyeznek-e. Hibák akkor fordulnak elő, ha az LHS és az RHS típusai nem egyeznek meg, vagy egy művelet nem engedélyezett bizonyos típusok esetében.

Megjegyzés

A meleg tárolóban a sztringtípus nem null értékű:

  • A Sztringés az üres karakterlánc (') összehasonlítása ugyanúgy viselkedik: egyenértékű a következővel$event.p1.String = '': $event.p1.String = NULL .
  • Az API null értékeket adhat vissza akkor is, ha az eredeti események üres sztringeket tartalmaztak.

A jövőben ugyanez a viselkedés lesz a Cold Store-ban is.

Ne függjenek a NULL értékekről a Sztringoszlopokban , és ugyanúgy kezeljék őket, mint az üres sztringeket.

  • A rendszer típusellenőrzést alkalmaz:
    • Bármilyen tulajdonságtípust elfogad a konstans NULL .
    • Az LHS és az RHS típusának egyeznie kell.

Íme néhány példa a Sztring típusú p1 és p2 tulajdonságokra, a Dupla típusú p3 tulajdonságra, valamint a Double típusú p4.p5 fájlként tárolt beágyazott tulajdonságra:

Szűrő Érvényes? Jegyzetek
$event.p1.String = 'abc' Igen
$event.p1.String = $event.p2.String Igen
$event.p1.String = NULL Yes NULL bármely bal oldali típusra illeszkedik.
$event.p3.Double = 'abc' No Típuseltérés.
$event.p3.Double = $event.p1.String No Típuseltérés.
$event.p1 = 'abc' No Típuseltérés.
$event.p1 = 1 No Típuseltérés.
$event.p1 = true No Típuseltérés.
$event.p1 = NULL Yes p1 az egyetlen használt jogkivonat. Értelmezve: $event.p1.Double = NULL
$event['p1'] != NULL Yes ['p1'] az egyetlen használt jogkivonat. Értelmezve: $event['p1'].Double != NULL
$event.p4.p5 = 0.0 No Érvénytelen tulajdonsághivatkozási szintaxis. Az összehasonlítás LHS-ében meg kell adni egy típust.
$event.p4.p5.Double = 0.0 Yes

Támogatott skaláris függvények

Alább a skaláris függvények kategóriánkénti listája látható:

Konverziós függvények

Függvény neve Aláírás Példa Megjegyzések
toDouble Double toDouble (value: String, Double, Long) toDouble($event.value.Long) Az argumentumokat Dupla értékké alakítja.
toLong Long toLong (value: String, Double, Long) toLong($event.value.Double + 1.0) Az argumentumokat Hosszú értékké alakítja.
toString String toString (value: String, Double, Long) toString($event.value.Double) Az argumentumokat sztringgé alakítja.

Matematikai függvények

Függvény neve Aláírás Példa Megjegyzések
round Double round(value:Double) round($event.value.Double) Dupla pontosságú lebegő számot kerekített a legközelebbi integrálra.
ceiling Double ceiling(value:Double) ceiling($event.value.Double) A legkisebb integrálértéket adja vissza, amely nagyobb vagy egyenlő a dupla pontosságú lebegőpontos számmal.
floor Double floor(value:Double) floor($event.value.Double) A legnagyobb integrálértéket adja vissza, amely kisebb vagy egyenlő a dupla pontosságú lebegőpontos számmal.

Trigonometrikus függvények

Függvény neve Aláírás Példa Megjegyzések
cos Double cos(value:Double) cos($event.value.Double) A megadott szög koszinuszát adja vissza radiánban.
sin Double sin(value:Double) sin($event.value.Double) A megadott szög szinuszát adja vissza radiánban.
tan Double tan(value:Double) tan($event.value.Double) A megadott szög tangensét adja vissza radiánban.
acos Double acos(value:Double) acos($event.value.Double) A radiánban megadott szöget adja vissza, amelynek koszinusza a megadott szám.
asin Double asin(value:Double) asin($event.value.Double) A radiánban megadott szöget adja vissza, amelynek szinusza a megadott szám.
atan Double atan(value:Double) atan($event.value.Double) A radiánban megadott szöget adja vissza, amelynek Tangens értéke a megadott szám.
atan2 Double atan2(value1:Double, value2:Double) atan2($event.value1.Double, $event.value2.Double) A radiánban megadott szöget adja vissza, amelynek Tangense két megadott szám hányadosa.

Logaritmikus függvények

Függvény neve Aláírás Példa Megjegyzések
log Double log(value:Double) log($event.value.Double) Egy megadott szám természetes logaritmusát adja eredményül.
log2 Double log2(value:Double) log2($event.value.Double) Egy megadott szám 2. alap logaritmusát adja eredményül.
log10 Double log10(value:Double) log10($event.value.Double) Egy megadott szám 10-es alapú logaritmusát adja eredményül.

DateTime függvények

Függvény neve Aláírás Példa Megjegyzések
monthOfYear Long monthOfYear(value:DateTime) monthOfYear($event.$ts) Az év hónapját adja eredményül számként a megadott DateTime értékhez.
dayOfMonth Long dayOfMonth(value:DateTime) dayOfMonth($event.$ts) A megadott DateTime számként adja vissza a hónap napját.
hourOfDay Long hourOfDay(value:DateTime) hourOfDay($event.$ts) A megadott DateTime számként adja vissza a nap óráját.
utcNow DateTime utcNow() utcNow() Az aktuális időt UTC formátumban adja vissza.

Sztringfüggvények

Függvény neve Aláírás Példa Megjegyzések
toUpper String toUpper(value:String) toUpper($event.value.String) Nagybetűssé konvertált bemeneti sztringet ad vissza.
toLower String toLower(value:String) toLower($event.value.String) Kisbetűssé konvertált bemeneti sztringet ad vissza.
strLen Long strLen(value:String) strLen($event.value.String) A karakterlánc argumentumban szereplő karakterek számát adja eredményül.
strCat Long strCat(value1:String, value2:String) strCat($event.value1.String, $event.value2.String) Összefűz két megadott bemeneti sztringet.
subString String subString(value:String, startIndex:Double, length:Double) subString($event.value.String, 2.0, 4.0) Lekéri az alsztringet ebből a példányból.
trim String trim(value:String) trim($event.value.String) Új sztringet ad vissza úgy, hogy eltávolítja az összes kezdő és záró szóköz karaktert a bemeneti sztringből.
indexOf Long indexOf(value:String, subString:String) indexOf($event.value.String, 'abc') A megadott sztring első előfordulását adja vissza az eredeti sztringben, nulla indexelés alapján.
replace String replace(value:String, searchString:String, replaceString:String) replace($event.value.String, 'abc', 'xyz') Egy sztringet ad vissza, amelyben a keresési sztring összes előfordulását lecseréli a helyettesítő sztringre.

Egyéb függvények

Függvény neve Aláírás Példa Megjegyzések
coalesce String, Long, Double, Bool coalesce (value: String, Long, Double, Bool) coalesce(toLong($event.value.Double), $event.value.Long) Az argumentumlista első nem null értékű értékét adja eredményül. Legalább 2 és legfeljebb 64 argumentumot fogad el, de mindegyiknek azonos adattípusúnak kell lennie.
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') A második vagy a harmadik argumentumot adja vissza attól függően, hogy a predikátum igaz (második argumentumot ad vissza) vagy hamis (a harmadik argumentumot adja vissza). A predikátumnak logikai kifejezésnek kell lennie, a második és a harmadik argumentumnak pedig azonos típusúnak kell lennie.

Lásd még

  • További információ az alkalmazásregisztrációról és az Azure Active Directory programozási modellről: Azure Active Directory fejlesztőknek.

  • A kérelem- és hitelesítési paraméterekkel kapcsolatos további információkért olvassa el a Hitelesítés és engedélyezés című témakört.

  • A HTTP-kérések és -válaszok tesztelését segítő eszközök a következők:

  • Fiddler. Ez az ingyenes webes hibakeresési proxy elfoghatja a REST-kéréseket, így diagnosztizálhatja a HTTP-kéréseket és a válaszüzeneteket.

  • JWT.io. Ezzel az eszközzel gyorsan lerakhatja a jogcímeket a tulajdonosi jogkivonatban, majd ellenőrizheti azok tartalmát.

  • Postás. Ez egy ingyenes HTTP-kérés- és választesztelési eszköz a REST API-k hibakereséséhez.

  • A Gen2 dokumentációjának áttekintésével további információt Azure Time Series Insights Gen2-ről.