Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Omówienie
Time Series Expression (TSX) to język wyrażeń oparty na ciągach z silnym wpisywaniem. Język TSX służy do reprezentowania następujących jednostek w zapytaniu szeregów czasowych.
- Filtr
- Wartość
- Agregacja
Wyrażenia filtru
Wyrażenia filtru są używane do reprezentowania klauzul logicznych. W poniższej tabeli wymieniono przykłady filtrów:
| TSX | Opis |
|---|---|
$event.PointValue.Double = 3.14 |
true dla zdarzeń o podwójnej wartości PointValue równej 3.14 |
$event.PointValue > 3.14 AND $event.Status.String = 'Good' |
true dla zdarzeń o wartości PointValue większej niż 3.14 i stanu ciągu Good |
$event.$ts > dt'2018-11-01T02:03:45Z' |
true dla zdarzeń z sygnaturą czasową większą niż 2018-11-01T02:03:45Z |
$event.PointEval.Bool = true |
true dla zdarzeń o wartości PointValue równej true |
Wyrażenia wartości
Wyrażenia wartości są używane do przedstawiania wartości zmiennych liczbowych i kategorii. Wyrażenie wartości może być wyrażeniem odwołania do właściwości typu Double lub Long.
Przykład:
| TSX | Uwagi |
|---|---|
$event.Temperature.Double |
Ostatni token w dowolnym wyrażeniu wartości (w tym przypadku Double) jest odczytywany jako typ właściwości. |
$event.Temperature |
Przyjmuje się, że typ ma wartość Podwójna dla właściwości dostępnej przez pojedynczy token. |
$event['Temperature-Celsius'] |
Użyj znaków [ i ] do ucieczki tokenów, które mają znaki specjalne. Ponadto użyj \ w nawiasach kwadratowych znaków ucieczki od następujących znaków: \ i '. |
$event.Temperature.Celsius.Double |
Użyj polecenia . , aby uzyskać dostęp do właściwości zagnieżdżonych. Podczas uzyskiwania dostępu do właściwości zagnieżdżonych wymagany jest typ. |
$event.Temperature['Celsius-C'].Double |
Użyj poleceń [ i ] do ucieczki tokenów, które mają znaki specjalne podczas uzyskiwania dostępu do właściwości zagnieżdżonych. Ponadto użyj \ w nawiasach kwadratowych znaków ucieczki od następujących znaków: \ i '. Podczas uzyskiwania dostępu do właściwości zagnieżdżonych wymagany jest typ. |
$event['Temperature']['Celsius'].Double |
Korzystanie z tokenów [ i ] na potrzeby ucieczki tokenów jest dozwolone na dowolnym tokenie. |
Rodzaj zmiennej liczbowej
Wynik wyrażenia wartości powinien mieć typ Double lub Long .
Rodzaj zmiennej agregacji
Wynik wyrażenia wartości może być dowolnego obsługiwanego typu.
Rodzaj zmiennej podzielonej na kategorie
Wynikiem wyrażenia wartości może być tylko ciąg lub typ Długi .
Wyrażenia agregacji
Wyrażenia agregujące służą do przedstawiania operacji agregacji, która ma być używana w zapytaniu. Wyrażenie agregacji powoduje pojedynczą wartość dla każdego interwału. Wyrażenia agregacji można stosować w zmiennych liczbowych i agregowanych.
Wyrażenia agregacji — rodzaj zmiennej liczbowej
Zmienne liczbowe powinny odwoływać się do $value.
Oto obsługiwane funkcje agregujące.
| Funkcja agregacji | Przykład | Opis |
|---|---|---|
min |
min($value) |
Oblicza minimalną wartość interwału $value .
null Unika wartości. Nie można używać z interpolacją. |
max |
max($value) |
Oblicza maksymalną wartość interwału $value .
null Unika wartości. Nie można używać z interpolacją. |
sum |
sum($value) |
Oblicza sumę $value wszystkich zdarzeń w interwale.
null Unika wartości. Nie można używać z interpolacją. |
avg |
avg($value) |
Oblicza średnią $value dla wszystkich zdarzeń w interwale.
null Unika wartości. Nie można używać z interpolacją. |
first |
first($value) |
Zwraca $value pierwsze zdarzenie występujące w interwale według sygnatury czasowej zdarzenia.
Nie pozwala uniknąć null wartości. Nie można używać z interpolacją. |
last |
last($value) |
Zwraca $value ostatnie zdarzenie występujące w interwale według sygnatury czasowej zdarzenia.
Nie pozwala uniknąć null wartości. Nie można używać z interpolacją. |
median |
median($value) |
Zwraca $value średnie zdarzenie w interwale według sygnatury czasowej zdarzenia.
Nie pozwala uniknąć null wartości. Nie można używać z interpolacją. |
stdev |
stdev($value) |
Zwraca $value odchylenie standardowe zdarzeń w interwale.
null Unika wartości. Nie można używać z interpolacją. |
twsum |
twsum($value) |
Zwraca $value sumę ważoną czasu zdarzeń w interwale. Wymaga interpolacji. |
twavg |
twavg($value) |
Zwraca $value średnią ważoną czasu zdarzeń w interwale. Wymaga interpolacji. |
left |
left($value) |
Zwraca wartość z $value lewej krawędzi danego interwału. Wymaga interpolacji. |
right |
right($value) |
Zwraca wartość z $value prawej krawędzi danego interwału. Wymaga interpolacji. |
Wyrażenia agregacji — rodzaj zmiennej agregacji
Zmienne zagregowane powinny odwoływać się do właściwości w ładunku zdarzenia.
Oto obsługiwane funkcje agregujące.
| Funkcja agregacji | Przykład | Opis |
|---|---|---|
count |
count() |
Zwraca liczbę zdarzeń na interwał. |
min |
min($event.Temperature.Double) |
Oblicza minimalną wartość właściwości Temperature na interwał.
null Unika wartości. |
max |
max($event.Temperature.Long) |
Oblicza maksymalną wartość właściwości Temperature na interwał.
null Unika wartości. |
sum |
sum($event.Temperature.Double) |
Oblicza sumę właściwości Temperature dla wszystkich zdarzeń w interwale.
null Unika wartości. |
avg |
avg($event.Temperature.Long) |
Oblicza średnią właściwości Temperature dla wszystkich zdarzeń w interwale.
null Unika wartości. |
first |
first($event.Temperature.String) |
Zwraca wartość pierwszego wystąpienia (według sygnatury czasowej zdarzenia) właściwości Temperature ze wszystkich zdarzeń w interwale.
Nie pozwala uniknąć null wartości. |
last |
last($event.Temperature.String) |
Zwraca ostatnią wartość (według sygnatury czasowej zdarzenia) właściwości Temperature ze wszystkich zdarzeń w interwale.
Nie pozwala uniknąć null wartości. |
median |
median($event.Temperature.String) |
Zwraca wartość średniej wartości (według sygnatury czasowej zdarzenia) właściwości Temperature ze wszystkich zdarzeń w interwale.
Nie pozwala uniknąć null wartości. |
stdev |
stdev($event.Temperature.String) |
Oblicza odchylenie standardowe właściwości Temperature na interwał.
null Unika wartości. |
W przypadku rodzaju zmiennej agregującej te funkcje można połączyć w wyrażeniu agregacji. Na przykład: max($event.Temperature.Long) - min($event.Temperature.Long).
Składnia
W tej sekcji opisano podstawowe pojęcia składni i operatory zapytań, które są łączone z wyrażeniami formularzy.
Obsługiwane literały
Uwaga
Literały poniżej są używane do tworzenia wyrażeń. Zobacz artykuł Obsługiwane typy danych , aby uzyskać pełną listę typów danych.
| Typ pierwotny | Literały |
|---|---|
| Bool |
TRUE, FALSE |
| Data/godzina | dt'2016-10-08T03:22:55.3031599Z' |
| Double |
1.23, 1.0 |
| Długi |
1, 6 |
| Ciąg | 'abc' |
| przedział_czasu | ts'P1Y2M3DT4M5.67S' |
| Null | NULL |
Obsługiwane typy operandów
| Operacja | Obsługiwane typy | Uwagi |
|---|---|---|
| <, >, <=, >= | Double, Long, DateTime, TimeSpan | |
| =, !=, <> | Double, Long, String, Bool, DateTime, TimeSpan, NULL | <> jest odpowiednikiem != |
| +, -, *, / | Double, Long, DateTime, TimeSpan |
W przypadku wyrażeń porównania (<, >=<, =, >=, ! =) operandy mogą mieć wartość NULL lub mieć ten sam typ. W każdym wyrażeniu predykatu typy operandów po lewej stronie (LHS) i prawej stronie (RHS) są weryfikowane w celu dopasowania. Błędy występują, gdy typy LHS i RHS nie zgadzają się lub operacja nie jest dozwolona dla określonych typów.
Uwaga
Typ ciągu nie może zawierać wartości null w ciepłym magazynie:
- Porównanie ciągu względem wartości NULL i pustego ciągu ("") zachowuje się w taki sam sposób:
$event.p1.String = NULLjest równoważne .$event.p1.String = '' - Interfejs API może zwracać wartości NULL , nawet jeśli oryginalne zdarzenia zawierały puste ciągi.
W przyszłości to samo zachowanie będzie w zimnym sklepie.
Nie należy przyjmować zależności od wartości NULL w kolumnach Ciąg i traktować je tak samo jak puste ciągi.
- Zastosowano sprawdzanie typu:
- Każdy typ właściwości jest akceptowany
NULLwzględem literału. - Typy LHS i RHS powinny być zgodne.
- Każdy typ właściwości jest akceptowany
Oto przykłady właściwości p1 i p2 typu String, właściwość p3 typu Double i zagnieżdżona właściwość przechowywana jako p4.p5 typu Double:
| Filtr | Czy jest prawidłowy? | Uwagi |
|---|---|---|
$event.p1.String = 'abc' |
Tak | |
$event.p1.String = $event.p2.String |
Tak | |
$event.p1.String = NULL |
Tak |
NULL pasuje do dowolnego typu po lewej stronie. |
$event.p3.Double = 'abc' |
Nie | Niezgodność. |
$event.p3.Double = $event.p1.String |
Nie | Niezgodność. |
$event.p1 = 'abc' |
Nie | Niezgodność. |
$event.p1 = 1 |
Nie | Niezgodność. |
$event.p1 = true |
Nie | Niezgodność. |
$event.p1 = NULL |
Tak |
p1 jest jedynym używanym tokenem. Interpretowane jako $event.p1.Double = NULL |
$event['p1'] != NULL |
Tak |
['p1'] jest jedynym używanym tokenem. Interpretowane jako $event['p1'].Double != NULL |
$event.p4.p5 = 0.0 |
Nie | Nieprawidłowa składnia odwołania do właściwości. Typ musi być określony na LHS porównania. |
$event.p4.p5.Double = 0.0 |
Tak |
Obsługiwane funkcje skalarne
Poniżej znajduje się lista funkcji skalarnych według kategorii:
Funkcje konwersji
| Nazwa funkcji | Podpis | Przykład | Uwagi |
|---|---|---|---|
toDouble |
Double toDouble (value: String, Double, Long) |
toDouble($event.value.Long) |
Konwertuje argumenty na double. |
toLong |
Long toLong (value: String, Double, Long) |
toLong($event.value.Double + 1.0) |
Konwertuje argumenty na long. |
toString |
String toString (value: String, Double, Long) |
toString($event.value.Double) |
Konwertuje argumenty na ciąg. |
Funkcje matematyczne
| Nazwa funkcji | Podpis | Przykład | Uwagi |
|---|---|---|---|
round |
Double round(value:Double) |
round($event.value.Double) |
Zaokrągla liczbę zmiennoprzecinkową o podwójnej precyzji do najbliższej liczby całkowitej. |
ceiling |
Double ceiling(value:Double) |
ceiling($event.value.Double) |
Zwraca najmniejszą wartość całkowitą, która jest większa lub równa liczbie zmiennoprzecinkowej o podwójnej precyzji. |
floor |
Double floor(value:Double) |
floor($event.value.Double) |
Zwraca największą wartość całkowitą mniejszą lub równą liczbie zmiennoprzecinkowej o podwójnej precyzji. |
Trygonometrycznych
| Nazwa funkcji | Podpis | Przykład | Uwagi |
|---|---|---|---|
cos |
Double cos(value:Double) |
cos($event.value.Double) |
Zwraca cosinus określonego kąta w radianach. |
sin |
Double sin(value:Double) |
sin($event.value.Double) |
Zwraca sinus określonego kąta w radianach. |
tan |
Double tan(value:Double) |
tan($event.value.Double) |
Zwraca tangens określonego kąta w radianach. |
acos |
Double acos(value:Double) |
acos($event.value.Double) |
Zwraca kąt w radianach, którego Cosine jest określoną liczbą. |
asin |
Double asin(value:Double) |
asin($event.value.Double) |
Zwraca kąt w radianach, którego sinus jest określoną liczbą. |
atan |
Double atan(value:Double) |
atan($event.value.Double) |
Zwraca kąt w radianach, którego tangens jest określoną liczbą. |
atan2 |
Double atan2(value1:Double, value2:Double) |
atan2($event.value1.Double, $event.value2.Double) |
Zwraca kąt w radianach, którego tangens jest ilorazem dwóch określonych liczb. |
Funkcje logarytmyczne
| Nazwa funkcji | Podpis | Przykład | Uwagi |
|---|---|---|---|
log |
Double log(value:Double) |
log($event.value.Double) |
Zwraca logarytm naturalny określonej liczby. |
log2 |
Double log2(value:Double) |
log2($event.value.Double) |
Zwraca logarytm podstawowy 2 określonej liczby. |
log10 |
Double log10(value:Double) |
log10($event.value.Double) |
Zwraca logarytm podstawowy 10 określonej liczby. |
Funkcje datetime
| Nazwa funkcji | Podpis | Przykład | Uwagi |
|---|---|---|---|
monthOfYear |
Long monthOfYear(value:DateTime) |
monthOfYear($event.$ts) |
Zwraca miesiąc roku jako wartość liczbową dla podanej wartości DateTime. |
dayOfMonth |
Long dayOfMonth(value:DateTime) |
dayOfMonth($event.$ts) |
Zwraca dzień miesiąca jako wartość liczbową dla podanej wartości DateTime. |
hourOfDay |
Long hourOfDay(value:DateTime) |
hourOfDay($event.$ts) |
Zwraca godzinę dnia jako wartość liczbową dla podanej wartości DateTime. |
utcNow |
DateTime utcNow() |
utcNow() |
Zwraca bieżący czas w formacie UTC. |
Funkcje ciągów
| Nazwa funkcji | Podpis | Przykład | Uwagi |
|---|---|---|---|
toUpper |
String toUpper(value:String) |
toUpper($event.value.String) |
Zwraca ciąg wejściowy przekonwertowany na wielkie litery. |
toLower |
String toLower(value:String) |
toLower($event.value.String) |
Zwraca ciąg wejściowy przekonwertowany na małe litery. |
strLen |
Long strLen(value:String) |
strLen($event.value.String) |
Zwraca liczbę znaków w argumencie ciągu. |
strCat |
Long strCat(value1:String, value2:String) |
strCat($event.value1.String, $event.value2.String) |
Łączy dwa określone ciągi wejściowe. |
subString |
String subString(value:String, startIndex:Double, length:Double) |
subString($event.value.String, 2.0, 4.0) |
Pobiera podciąg z tego wystąpienia. |
trim |
String trim(value:String) |
trim($event.value.String) |
Zwraca nowy ciąg, usuwając wszystkie wiodące i końcowe znaki odstępu z ciągu wejściowego. |
indexOf |
Long indexOf(value:String, subString:String) |
indexOf($event.value.String, 'abc') |
Zwraca pierwsze wystąpienie określonego ciągu w oryginalnym ciągu na podstawie indeksowania zerowego. |
replace |
String replace(value:String, searchString:String, replaceString:String) |
replace($event.value.String, 'abc', 'xyz') |
Zwraca ciąg, w którym wszystkie wystąpienia ciągu wyszukiwania są zastępowane ciągiem zastępczym. |
Inne funkcje
| Nazwa funkcji | Podpis | Przykład | Uwagi |
|---|---|---|---|
coalesce |
String, Long, Double, Bool coalesce (value: String, Long, Double, Bool) |
coalesce(toLong($event.value.Double), $event.value.Long) |
Zwraca pierwszą wartość inną niż null na liście argumentów. Akceptuje co najmniej 2 i maksymalnie 64 argumenty, ale wszystkie muszą być tego samego typu danych. |
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') |
Zwraca drugi lub trzeci argument w zależności od tego, czy predykat został rozpoznany na wartość true (zwraca drugi argument) lub false (zwraca trzeci argument). Predykat musi być wyrażeniem logicznym, a drugi i trzeci argument musi być tego samego typu. |
Zobacz też
Aby uzyskać więcej informacji na temat rejestracji aplikacji i modelu programowania usługi Azure Active Directory, zobacz Azure Active Directory dla deweloperów.
Aby dowiedzieć się więcej o parametrach żądania i uwierzytelniania, przeczytaj Uwierzytelnianie i autoryzacja.
Narzędzia, które ułatwiają testowanie żądań i odpowiedzi HTTP, obejmują:
Fiddler. Ten bezpłatny internetowy serwer proxy debugowania może przechwytywać żądania REST, dzięki czemu można zdiagnozować żądania HTTP i komunikaty odpowiedzi.
JWT.io. Za pomocą tego narzędzia można szybko zrzucić oświadczenia w tokenie elementu nośnego, a następnie zweryfikować ich zawartość.
Postman. Jest to bezpłatne narzędzie do testowania żądań HTTP i odpowiedzi na potrzeby debugowania interfejsów API REST.
Dowiedz się więcej o usłudze Azure Time Series Insights Gen2, przeglądając dokumentację usługi Gen2.