Azure Time Series Insights syntaxe d’expression de série chronologique Gen2
Vue d’ensemble
Time Series Expression (TSX) est un langage d’expression basé sur des chaînes avec un typage fort. TSX est utilisé pour représenter les entités suivantes dans une requête de série chronologique.
- Filtrer
- Valeur
- Agrégation
Expressions de filtre
Les expressions de filtre sont utilisées pour représenter des clauses booléennes. Le tableau suivant répertorie des exemples de filtres :
TSX | Description |
---|---|
$event.PointValue.Double = 3.14 |
true pour les événements avec la valeur double PointValue égale à 3.14 |
$event.PointValue > 3.14 AND $event.Status.String = 'Good' |
true pour les événements dont PointValue est supérieur 3.14 à et status Good |
$event.$ts > dt'2018-11-01T02:03:45Z' |
true pour les événements dont l’horodatage est supérieur à 2018-11-01T02:03:45Z |
$event.PointEval.Bool = true |
true pour les événements dont PointValue est égal à true |
Expressions de valeur
Les expressions de valeur sont utilisées pour représenter la valeur des variables numériques et catégorielles. Une expression de valeur peut être une expression de référence de propriété de type Double ou Long.
Par exemple :
TSX | Notes |
---|---|
$event.Temperature.Double |
Le dernier jeton d’une expression de valeur (dans ce cas Double ) est lu en tant que Type de la propriété . |
$event.Temperature |
Le type est supposé être Double pour une propriété accessible par un jeton unique. |
$event['Temperature-Celsius'] |
Utilisez [ et ] pour les jetons d’échappement qui ont des caractères spéciaux. En outre, utilisez \ entre crochets pour échapper aux caractères suivants : \ et ' . |
$event.Temperature.Celsius.Double |
Utilisez . pour accéder aux propriétés imbriquées. Lors de l’accès aux propriétés imbriquées, le type est obligatoire. |
$event.Temperature['Celsius-C'].Double |
Utilisez [ et ] pour les jetons d’échappement qui ont des caractères spéciaux lors de l’accès aux propriétés imbriquées. En outre, utilisez \ entre crochets pour échapper aux caractères suivants : \ et ' . Lors de l’accès aux propriétés imbriquées, le type est obligatoire. |
$event['Temperature']['Celsius'].Double |
L’utilisation de [ et ] pour les jetons d’échappement est autorisée sur n’importe quel jeton. |
Type de variable numérique
Le résultat de l’expression de valeur doit être de type Double ou Long .
Type de variable d’agrégation
Le résultat de l’expression de valeur peut être de n’importe quel type pris en charge.
Type de variable de catégorie
Le résultat de l’expression de valeur ne peut être que de type String ou Long .
Expressions d’agrégation
Les expressions d’agrégation sont utilisées pour représenter l’opération d’agrégation à utiliser sur la requête. Une expression d’agrégation génère une valeur unique pour chaque intervalle. Les expressions d’agrégation peuvent être appliquées sur des variables numériques et d’agrégation.
Expressions d’agrégation - type de variable numérique
Les variables numériques doivent faire référence à $value
.
Voici les fonctions d’agrégation prises en charge.
Fonction d'agrégation | Exemple | Description |
---|---|---|
min |
min($value) |
Calcule le minimum par $value intervalle. Évite les null valeurs. Impossible d’utiliser avec l’interpolation. |
max |
max($value) |
Calcule le maximum de par $value intervalle. Évite les null valeurs. Impossible d’utiliser avec l’interpolation. |
sum |
sum($value) |
Calcule la somme de $value sur tous les événements de l’intervalle. Évite les null valeurs. Impossible d’utiliser avec l’interpolation. |
avg |
avg($value) |
Calcule la moyenne de $value sur tous les événements de l’intervalle. Évite les null valeurs. Impossible d’utiliser avec l’interpolation. |
first |
first($value) |
Retourne $value le premier événement qui se produit dans l’intervalle par horodatage d’événement.
N’évite pas les null valeurs. Impossible d’utiliser avec l’interpolation. |
last |
last($value) |
Retourne $value le dernier événement qui se produit dans l’intervalle par horodatage d’événement.
N’évite pas les null valeurs. Impossible d’utiliser avec l’interpolation. |
median |
median($value) |
Retourne $value l’événement intermédiaire dans l’horodatage de l’intervalle par événement.
N’évite pas les null valeurs. Impossible d’utiliser avec l’interpolation. |
stdev |
stdev($value) |
Retourne $value l’écart type des événements dans l’intervalle. Évite les null valeurs. Impossible d’utiliser avec l’interpolation. |
twsum |
twsum($value) |
Retourne $value la somme pondérée dans le temps des événements dans l’intervalle. Nécessite une interpolation. |
twavg |
twavg($value) |
Retourne $value la moyenne pondérée dans le temps des événements dans l’intervalle. Nécessite une interpolation. |
left |
left($value) |
Retourne le $value au bord gauche de l’intervalle donné. Nécessite une interpolation. |
right |
right($value) |
Retourne le $value au bord droit de l’intervalle donné. Nécessite une interpolation. |
Expressions d’agrégation - type de variable d’agrégation
Les variables d’agrégation doivent faire référence à une propriété dans la charge utile de l’événement.
Voici les fonctions d’agrégation prises en charge.
Fonction d'agrégation | Exemple | Description |
---|---|---|
count |
count() |
Retourne le nombre d’événements par intervalle. |
min |
min($event.Temperature.Double) |
Calcule le minimum de la propriété Temperature par intervalle. Évite les null valeurs. |
max |
max($event.Temperature.Long) |
Calcule le maximum de la propriété Temperature par intervalle. Évite les null valeurs. |
sum |
sum($event.Temperature.Double) |
Calcule la somme de la propriété Temperature sur tous les événements de l’intervalle. Évite les null valeurs. |
avg |
avg($event.Temperature.Long) |
Calcule la moyenne de la propriété Temperature sur tous les événements de l’intervalle. Évite les null valeurs. |
first |
first($event.Temperature.String) |
Retourne la première valeur qui se produit (par horodatage d’événement) de la propriété Temperature de tous les événements de l’intervalle.
N’évite pas les null valeurs. |
last |
last($event.Temperature.String) |
Retourne la dernière valeur qui se produit (par horodatage d’événement) de la propriété Temperature de tous les événements de l’intervalle.
N’évitenull pas les valeurs. |
median |
median($event.Temperature.String) |
Retourne la valeur du milieu (par horodatage d’événement) de la propriété Temperature à partir de tous les événements de l’intervalle.
N’évitenull pas les valeurs. |
stdev |
stdev($event.Temperature.String) |
Calcule l’écart type de la propriété Temperature par intervalle. Évite les null valeurs. |
Pour un type de variable d’agrégation , ces fonctions peuvent être combinées dans l’expression d’agrégation. Par exemple : max($event.Temperature.Long) - min($event.Temperature.Long)
.
Syntaxe
Cette section décrit les principaux concepts de syntaxe et les opérateurs de requête concaténés pour former des expressions.
Littéraux pris en charge
Notes
Les littéraux ci-dessous sont utilisés pour former des expressions. Consultez l’article Types de données pris en charge pour obtenir la liste complète des types de données.
Type primitif | Littéraux |
---|---|
Bool |
TRUE , FALSE |
DateTime | dt'2016-10-08T03:22:55.3031599Z' |
Double |
1.23 , 1.0 |
Long |
1 , 6 |
Chaîne | 'abc' |
TimeSpan | ts'P1Y2M3DT4M5.67S' |
Null | NULL |
Types d’opérandes pris en charge
Opération | Types pris en charge | Notes |
---|---|---|
<, >, <, > | Double, Long, DateTime, TimeSpan | |
=, =, <> | Double, Long, String, Bool, DateTime, TimeSpan, NULL | <> équivaut à != |
+, -, *, / | Double, Long, DateTime, TimeSpan |
Pour les expressions de comparaison (<, >, <=, >=, =, !=), les opérandes peuvent être NULL ou être du même type. Dans chaque expression de prédicat, les types d’opérandes du côté gauche (LHS) et de droite (RHS) sont validés pour correspondre. Des erreurs se produisent lorsque les types LHS et RHS ne sont pas d’accord, ou lorsqu’une opération n’est pas autorisée sur des types particuliers.
Notes
Le type de chaîne ne peut pas avoir la valeur Null dans le magasin chaud :
- La comparaison entre String et null et la chaîne vide ('') se comporte de la même façon :
$event.p1.String = NULL
équivaut à$event.p1.String = ''
. - L’API peut retourner des valeurs NULL même si les événements d’origine contenaient des chaînes vides.
À l’avenir, le même comportement sera sur le magasin froid.
Ne dépendez pas des valeurs NULL dans les colonnes de chaîne et traitez-les de la même façon que des chaînes vides.
- Un type case activée est appliqué :
- Tout type de propriété est accepté par rapport à un
NULL
littéral. - Les types de LHS et RHS doivent correspondre.
- Tout type de propriété est accepté par rapport à un
Voici des exemples de propriétés p1 et p2 de type String, de propriété p3 de type Double et d’une propriété imbriquée stockée sous la forme p4.p5 de type Double :
Filtrer | Est valide ? | Notes |
---|---|---|
$event.p1.String = 'abc' |
Oui | |
$event.p1.String = $event.p2.String |
Oui | |
$event.p1.String = NULL |
Oui |
NULL correspond à n’importe quel type de gauche. |
$event.p3.Double = 'abc' |
Non | Incompatibilité de type. |
$event.p3.Double = $event.p1.String |
Non | Incompatibilité de type. |
$event.p1 = 'abc' |
Non | Incompatibilité de type. |
$event.p1 = 1 |
Non | Incompatibilité de type. |
$event.p1 = true |
Non | Incompatibilité de type. |
$event.p1 = NULL |
Oui |
p1 est le seul jeton utilisé. Interprété comme $event.p1.Double = NULL |
$event['p1'] != NULL |
Oui |
['p1'] est le seul jeton utilisé. Interprété comme $event['p1'].Double != NULL |
$event.p4.p5 = 0.0 |
Non | Syntaxe de référence de propriété non valide. Un type doit être spécifié sur LHS de comparaison. |
$event.p4.p5.Double = 0.0 |
Oui |
Fonctions scalaires prises en charge
Voici la liste des fonctions scalaires par catégories :
Fonctions de conversion
Nom de la fonction | Signature | Exemple | Notes |
---|---|---|---|
toDouble |
Double toDouble (value: String, Double, Long) |
toDouble($event.value.Long) |
Convertit les arguments en Double. |
toLong |
Long toLong (value: String, Double, Long) |
toLong($event.value.Double + 1.0) |
Convertit les arguments en long. |
toString |
String toString (value: String, Double, Long) |
toString($event.value.Double) |
Convertit les arguments en Chaîne. |
Fonctions mathématiques
Nom de la fonction | Signature | Exemple | Notes |
---|---|---|---|
round |
Double round(value:Double) |
round($event.value.Double) |
Arrondit un nombre flottant double précision à l’intégrale la plus proche. |
ceiling |
Double ceiling(value:Double) |
ceiling($event.value.Double) |
Retourne la plus petite valeur intégrale supérieure ou égale à un nombre à virgule flottante double précision. |
floor |
Double floor(value:Double) |
floor($event.value.Double) |
Retourne la plus grande valeur intégrale inférieure ou égale au nombre à virgule flottante double précision. |
Fonctions trigonométriques
Nom de la fonction | Signature | Exemple | Notes |
---|---|---|---|
cos |
Double cos(value:Double) |
cos($event.value.Double) |
Retourne le cosinus de l’angle spécifié en radians. |
sin |
Double sin(value:Double) |
sin($event.value.Double) |
Retourne le sinus de l’angle spécifié en radians. |
tan |
Double tan(value:Double) |
tan($event.value.Double) |
Retourne la tangente de l’angle spécifié en radians. |
acos |
Double acos(value:Double) |
acos($event.value.Double) |
Retourne l’angle en radians dont le cosinus est le nombre spécifié. |
asin |
Double asin(value:Double) |
asin($event.value.Double) |
Retourne l’angle en radians dont le sinus est le nombre spécifié. |
atan |
Double atan(value:Double) |
atan($event.value.Double) |
Retourne l’angle en radians dont tangente est le nombre spécifié. |
atan2 |
Double atan2(value1:Double, value2:Double) |
atan2($event.value1.Double, $event.value2.Double) |
Retourne l’angle en radians dont la tangente est le quotient de deux nombres spécifiés. |
Fonctions logarithmiques
Nom de la fonction | Signature | Exemple | Notes |
---|---|---|---|
log |
Double log(value:Double) |
log($event.value.Double) |
Retourne le logarithme naturel d’un nombre spécifié. |
log2 |
Double log2(value:Double) |
log2($event.value.Double) |
Retourne le logarithme de base 2 d’un nombre spécifié. |
log10 |
Double log10(value:Double) |
log10($event.value.Double) |
Retourne le logarithme de base 10 d'un nombre spécifié. |
Fonctions de date/heure
Nom de la fonction | Signature | Exemple | Notes |
---|---|---|---|
monthOfYear |
Long monthOfYear(value:DateTime) |
monthOfYear($event.$ts) |
Retourne le mois de l’année sous forme numérique pour le DateTime fourni. |
dayOfMonth |
Long dayOfMonth(value:DateTime) |
dayOfMonth($event.$ts) |
Retourne le jour du mois sous forme numérique pour le DateTime fourni. |
hourOfDay |
Long hourOfDay(value:DateTime) |
hourOfDay($event.$ts) |
Retourne l’heure de la journée sous forme numérique pour le DateTime fourni. |
utcNow |
DateTime utcNow() |
utcNow() |
Retourne l’heure actuelle au format UTC. |
Fonctions de chaînes
Nom de la fonction | Signature | Exemple | Notes |
---|---|---|---|
toUpper |
String toUpper(value:String) |
toUpper($event.value.String) |
Retourne la chaîne d’entrée convertie en majuscules. |
toLower |
String toLower(value:String) |
toLower($event.value.String) |
Retourne la chaîne d’entrée convertie en minuscules. |
strLen |
Long strLen(value:String) |
strLen($event.value.String) |
Retourne le nombre de caractères dans l’argument string. |
strCat |
Long strCat(value1:String, value2:String) |
strCat($event.value1.String, $event.value2.String) |
Concatène deux chaînes d’entrée spécifiées. |
subString |
String subString(value:String, startIndex:Double, length:Double) |
subString($event.value.String, 2.0, 4.0) |
Récupère une sous-chaîne de cette instance. |
trim |
String trim(value:String) |
trim($event.value.String) |
Retourne une nouvelle chaîne en supprimant tous les espaces blancs de début et de fin de la chaîne d’entrée. |
indexOf |
Long indexOf(value:String, subString:String) |
indexOf($event.value.String, 'abc') |
Retourne la première occurrence de la chaîne spécifiée dans la chaîne d’origine, en fonction de l’indexation zéro. |
replace |
String replace(value:String, searchString:String, replaceString:String) |
replace($event.value.String, 'abc', 'xyz') |
Retourne une chaîne dans laquelle toutes les occurrences de la chaîne de recherche sont remplacées par la chaîne de remplacement. |
Autres fonctions
Nom de la fonction | Signature | Exemple | Notes |
---|---|---|---|
coalesce |
String, Long, Double, Bool coalesce (value: String, Long, Double, Bool) |
coalesce(toLong($event.value.Double), $event.value.Long) |
Retourne la première valeur non null de la liste d’arguments. Accepte au minimum 2 arguments et au maximum 64 arguments, mais ils doivent tous être du même type de données. |
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') |
Retourne le deuxième ou le troisième argument selon que le prédicat a été résolu en true (retourne le deuxième argument) ou false (retourne le troisième argument). Le prédicat doit être une expression booléenne et les deuxième et troisième arguments doivent être du même type. |
Voir aussi
Pour plus d’informations sur l’inscription des applications et le modèle de programmation Azure Active Directory, consultez Azure Active Directory pour les développeurs.
Pour en savoir plus sur les paramètres de requête et d’authentification, consultez Authentification et autorisation.
Les outils qui aident à tester les requêtes et réponses HTTP sont les suivants :
Fiddler. Ce proxy de débogage web gratuit peut intercepter vos requêtes REST, ce qui vous permet de diagnostiquer les messages de requête et de réponse HTTP.
JWT.io. Vous pouvez utiliser cet outil pour vider rapidement les revendications dans votre jeton du porteur, puis valider leur contenu.
Postman. Il s’agit d’un outil de test de requête et de réponse HTTP gratuit pour le débogage des API REST.
Pour en savoir plus sur Azure Time Series Insights Gen2, consultez la documentation Gen2.