개요
TSX(Time Series Expression)는 강력한 타이핑을 사용하는 문자열 기반 식 언어입니다. TSX는 시계열 쿼리에서 다음 엔터티를 나타내는 데 사용됩니다.
- 필터
- 가치
- 집계
필터 표현식
필터 식 은 부울 절을 나타내는 데 사용됩니다. 다음 표에는 필터의 예가 나열되어 있습니다.
| TSX | 설명 |
|---|---|
$event.PointValue.Double = 3.14 |
true double PointValue 가 3.14 |
$event.PointValue > 3.14 AND $event.Status.String = 'Good' |
true
PointValue가 보다 3.14 크고 문자열 상태가 있는 이벤트의 경우Good |
$event.$ts > dt'2018-11-01T02:03:45Z' |
true 타임스탬프가 보다 큰 이벤트의 경우 2018-11-01T02:03:45Z |
$event.PointEval.Bool = true |
true
PointValue가true |
값 표현식
값 표현식 은 숫자 및 범주형 변수의 값을 나타내는 데 사용됩니다. 값 식은 Double 또는 Long 형식의 속성 참조 식일 수 있습니다.
다음은 그 예입니다.
| TSX | 비고 |
|---|---|
$event.Temperature.Double |
값 표현식(이 경우 Double)의 마지막 토큰은 속성의 Type으로 읽힙니다. |
$event.Temperature |
형식은 단일 토큰으로 액세스되는 속성에 대해 Double 로 가정됩니다. |
$event['Temperature-Celsius'] |
특수 문자가 있는 토큰을 이스케이프하려면 and ] 를 사용합니다[. 또한 대괄호 안에 을 사용하여 \ 다음 문자 \'를 이스케이프합니다. |
$event.Temperature.Celsius.Double |
중첩된 속성에 액세스하는 데 사용합니다 . . 중첩된 속성에 액세스할 때 Type이 필요합니다. |
$event.Temperature['Celsius-C'].Double |
중첩된 속성에 액세스할 때 특수 문자가 있는 토큰을 이스케이프하려면 and ] 를 사용합니다[. 또한 대괄호 안에 을 사용하여 \ 다음 문자 \'를 이스케이프합니다. 중첩된 속성에 액세스할 때 Type이 필요합니다. |
$event['Temperature']['Celsius'].Double |
토큰 이스케이프를 위한 및 ] 사용 [ 은 모든 토큰에서 허용됩니다. |
숫자 변수 종류
값 표현식의 결과는 Double 또는 Long 유형이어야 합니다.
집계 변수 종류
값 식의 결과는 지원되는 모든 형식일 수 있습니다.
범주형 변수 종류
값 표현식의 결과는 String 또는 Long 유형만 될 수 있습니다.
집계 식
집계 식 은 쿼리에 사용할 집계 작업을 나타내는 데 사용됩니다. 집계 표현식은 각 간격에 대해 단일 값을 생성합니다. 집계 표현식은 숫자 및 집계 변수에 적용할 수 있습니다.
집계 표현식 - 숫자 변수 종류
숫자 변수는 를 참조 $value해야 합니다.
지원되는 집계 함수는 다음과 같습니다.
| 집계 함수 | 예시 | 설명 |
|---|---|---|
min |
min($value) |
구간당 최 $value 소값을 계산합니다. 값을 피합니다 null . 보간과 함께 사용할 수 없습니다. |
max |
max($value) |
구간당 최대 $value 값을 계산합니다. 값을 피합니다 null . 보간과 함께 사용할 수 없습니다. |
sum |
sum($value) |
간격에 있는 모든 이벤트의 $value 합계를 계산합니다. 값을 피합니다 null . 보간과 함께 사용할 수 없습니다. |
avg |
avg($value) |
간격에 있는 모든 이벤트의 $value 평균을 계산합니다. 값을 피합니다 null . 보간과 함께 사용할 수 없습니다. |
first |
first($value) |
이벤트 타임스탬프별 간격에서 처음 발생하는 이벤트를 반환 $value 합니다. 값을 피 하지null 않습니다. 보간과 함께 사용할 수 없습니다. |
last |
last($value) |
이벤트 타임스탬프별로 간격에서 마지막으로 발생한 이벤트를 반환 $value 합니다. 값을 피 하지null 않습니다. 보간과 함께 사용할 수 없습니다. |
median |
median($value) |
이벤트 타임스탬프별 간격의 중간 이벤트를 반환 $value 합니다. 값을 피 하지null 않습니다. 보간과 함께 사용할 수 없습니다. |
stdev |
stdev($value) |
간격에 있는 이벤트의 표준 편차를 반환 $value 합니다. 값을 피합니다 null . 보간과 함께 사용할 수 없습니다. |
twsum |
twsum($value) |
간격에 있는 이벤트의 시간 가중 합계를 반환 $value 합니다. 보간이 필요합니다. |
twavg |
twavg($value) |
간격에 있는 이벤트의 시간 가중 평균을 반환 $value 합니다. 보간이 필요합니다. |
left |
left($value) |
지정된 간격의 왼쪽 가장자리에 있는 를 반환 $value 합니다. 보간이 필요합니다. |
right |
right($value) |
지정된 간격의 오른쪽 가장자리에 있는 를 반환 $value 합니다. 보간이 필요합니다. |
집계 식 - 집계 변수 종류
집계 변수는 이벤트 페이로드의 속성을 참조해야 합니다.
지원되는 집계 함수는 다음과 같습니다.
| 집계 함수 | 예시 | 설명 |
|---|---|---|
count |
count() |
간격당 이벤트 수를 반환합니다. |
min |
min($event.Temperature.Double) |
간격당 온도 속성의 최소값을 계산합니다. 값을 피합니다 null . |
max |
max($event.Temperature.Long) |
간격당 온도 속성의 최대값을 계산합니다. 값을 피합니다 null . |
sum |
sum($event.Temperature.Double) |
간격의 모든 이벤트에 대한 온도 속성의 합계를 계산합니다. 값을 피합니다 null . |
avg |
avg($event.Temperature.Long) |
간격의 모든 이벤트에 대한 특성 온도 의 평균을 계산합니다. 값을 피합니다 null . |
first |
first($event.Temperature.String) |
간격의 모든 이벤트에서 Temperature 속성의 첫 번째 발생(이벤트 타임스탬프별) 값을 반환합니다. 값을 피 하지null 않습니다. |
last |
last($event.Temperature.String) |
간격의 모든 이벤트에서 Temperature 속성의 마지막으로 발생한(이벤트 타임스탬프별) 값을 반환합니다. 값을 피 하지null 않습니다. |
median |
median($event.Temperature.String) |
간격의 모든 이벤트에서 Temperature 속성의 중간 발생(이벤트 타임스탬프별) 값을 반환합니다. 값을 피 하지null 않습니다. |
stdev |
stdev($event.Temperature.String) |
간격당 온도 속성의 표준 편차를 계산합니다. 값을 피합니다 null . |
집계 변수 종류의 경우 이러한 함수를 집계 식에서 결합할 수 있습니다. 예: max($event.Temperature.Long) - min($event.Temperature.Long).
문법
이 섹션에서는 양식 식에 연결되는 핵심 구문 개념 및 쿼리 연산자에 대해 설명합니다.
지원되는 리터럴
비고
아래 리터럴은 표현식을 형성하는 데 사용되며, 데이터 유형의 전체 목록은 지원되는 데이터 유형 문서를 참조하십시오.
| 기본 형식 | 리터럴 (프로그래밍 등에서 사용하는 정해진 값) |
|---|---|
| 부울 |
TRUE, FALSE |
| 날짜/시간 | dt'2016-10-08T03:22:55.3031599Z' |
| 이중 |
1.23, 1.0 |
| 오래 |
1, 6 |
| String | 'abc' |
| TimeSpan | ts'P1Y2M3DT4M5.67S' |
| Null | NULL |
지원되는 피연산자 유형
| 수술 | 지원되는 형식 | 비고 |
|---|---|---|
| <, >, <=, >= | 더블, 롱, 날짜/시간, 시간 범위 | |
| =, !=, <> | Double, Long, String, Bool, DateTime, TimeSpan, NULL | <>는 != 와 동일합니다. |
| +, -, , *, / | 더블, 롱, 날짜/시간, 시간 범위 |
비교 표현식(<, >,< =, =, >=, !=)의 경우 피연산자는 NULL이거나 동일한 유형일 수 있습니다. 각 술어 표현식에서 왼쪽(LHS) 및 오른쪽(RHS) 피연산자 유형이 일치하도록 유효성이 검사됩니다. LHS 및 RHS 형식이 일치하지 않거나 특정 형식에 대한 작업이 허용되지 않는 경우 오류가 발생합니다.
비고
문자열 형식은 웜 저장소에서 null을 허용하지 않습니다.
-
NULL 및 빈 문자열 ('')에 대한 String의 비교는 동일한 방식으로
$event.p1.String = NULL$event.p1.String = ''작동합니다. - API는 원래 이벤트에 빈 문자열이 포함된 경우에도 NULL 값을 반환할 수 있습니다.
앞으로는 콜드 스토어에서도 동일한 동작이 발생합니다.
문자열 열의 NULL 값에 대한 종속성을 취하지 말고 빈 문자열과 동일한 방식으로 처리하십시오.
- 유형 검사가 적용됩니다.
- 모든 속성 형식은 리터럴에 대해 허용됩니다
NULL. - LHS와 RHS의 유형이 일치해야 합니다.
- 모든 속성 형식은 리터럴에 대해 허용됩니다
다음은 String 형식의 속성 p1 및 p2, Double 형식의 속성 p3 및 Double 형식의 p4.p5로 저장된 중첩 속성의 예입니다.
| 필터 | 유효한가요? | 비고 |
|---|---|---|
$event.p1.String = 'abc' |
예 | |
$event.p1.String = $event.p2.String |
예 | |
$event.p1.String = NULL |
예 |
NULL 왼쪽 유형과 일치합니다. |
$event.p3.Double = 'abc' |
아니오 | 형식 불일치. |
$event.p3.Double = $event.p1.String |
아니오 | 형식 불일치. |
$event.p1 = 'abc' |
아니오 | 형식 불일치. |
$event.p1 = 1 |
아니오 | 형식 불일치. |
$event.p1 = true |
아니오 | 형식 불일치. |
$event.p1 = NULL |
예 |
p1 이 유일한 토큰이 사용됩니다. 다음과 같이 해석됨 $event.p1.Double = NULL |
$event['p1'] != NULL |
예 |
['p1'] 이 유일한 토큰이 사용됩니다. 다음과 같이 해석됨 $event['p1'].Double != NULL |
$event.p4.p5 = 0.0 |
아니오 | 잘못된 속성 참조 구문입니다. 비교의 LHS에 유형을 지정해야 합니다. |
$event.p4.p5.Double = 0.0 |
예 |
지원되는 스칼라 함수
다음은 범주별 스칼라 함수 목록입니다.
변환 함수
| 함수 이름 | 서명 | 예시 | 비고 |
|---|---|---|---|
toDouble |
Double toDouble (value: String, Double, Long) |
toDouble($event.value.Long) |
인수를 Double로 변환합니다. |
toLong |
Long toLong (value: String, Double, Long) |
toLong($event.value.Double + 1.0) |
인수를 Long으로 변환합니다. |
toString |
String toString (value: String, Double, Long) |
toString($event.value.Double) |
인수를 String으로 변환합니다. |
수식 함수
| 함수 이름 | 서명 | 예시 | 비고 |
|---|---|---|---|
round |
Double round(value:Double) |
round($event.value.Double) |
배정밀도 부동 숫자를 가장 가까운 적수로 반올림합니다. |
ceiling |
Double ceiling(value:Double) |
ceiling($event.value.Double) |
배정밀도 부동 소수점 숫자보다 크거나 같은 가장 작은 정수 값을 반환합니다. |
floor |
Double floor(value:Double) |
floor($event.value.Double) |
배정밀도 부동 소수점 숫자보다 작거나 같은 가장 큰 정수 값을 반환합니다. |
삼각 함수
| 함수 이름 | 서명 | 예시 | 비고 |
|---|---|---|---|
cos |
Double cos(value:Double) |
cos($event.value.Double) |
지정된 각도의 코사인을 라디안 단위로 반환합니다. |
sin |
Double sin(value:Double) |
sin($event.value.Double) |
지정된 각도의 사인(Sine)을 라디안 단위로 반환합니다. |
tan |
Double tan(value:Double) |
tan($event.value.Double) |
지정된 각도의 탄젠트를 라디안 단위로 반환합니다. |
acos |
Double acos(value:Double) |
acos($event.value.Double) |
코사인이 지정된 숫자인 라디안 단위의 각도를 반환합니다. |
asin |
Double asin(value:Double) |
asin($event.value.Double) |
Sine이 지정된 숫자인 라디안 단위의 각도를 반환합니다. |
atan |
Double atan(value:Double) |
atan($event.value.Double) |
Tangent가 지정된 숫자인 라디안 단위의 각도를 반환합니다. |
atan2 |
Double atan2(value1:Double, value2:Double) |
atan2($event.value1.Double, $event.value2.Double) |
Tangent가 지정된 두 숫자의 몫인 각도를 라디안 단위로 반환합니다. |
로그 함수
| 함수 이름 | 서명 | 예시 | 비고 |
|---|---|---|---|
log |
Double log(value:Double) |
log($event.value.Double) |
지정된 숫자의 자연 로그를 반환합니다. |
log2 |
Double log2(value:Double) |
log2($event.value.Double) |
지정된 숫자의 base 2 로그를 반환합니다. |
log10 |
Double log10(value:Double) |
log10($event.value.Double) |
지정된 숫자의 기본 10 로그를 반환합니다. |
DateTime 함수
| 함수 이름 | 서명 | 예시 | 비고 |
|---|---|---|---|
monthOfYear |
Long monthOfYear(value:DateTime) |
monthOfYear($event.$ts) |
제공된 DateTime에 대한 숫자로 연도를 반환합니다. |
dayOfMonth |
Long dayOfMonth(value:DateTime) |
dayOfMonth($event.$ts) |
제공된 DateTime에 대한 숫자로 월의 날짜를 반환합니다. |
hourOfDay |
Long hourOfDay(value:DateTime) |
hourOfDay($event.$ts) |
제공된 DateTime에 대한 숫자로 하루 중 시간을 반환합니다. |
utcNow |
DateTime utcNow() |
utcNow() |
UTC 형식으로 현재 시간을 반환합니다. |
문자열 함수
| 함수 이름 | 서명 | 예시 | 비고 |
|---|---|---|---|
toUpper |
String toUpper(value:String) |
toUpper($event.value.String) |
대문자로 변환된 입력 문자열을 반환합니다. |
toLower |
String toLower(value:String) |
toLower($event.value.String) |
소문자로 변환된 입력 문자열을 반환합니다. |
strLen |
Long strLen(value:String) |
strLen($event.value.String) |
문자열 인수의 문자 수를 반환합니다. |
strCat |
Long strCat(value1:String, value2:String) |
strCat($event.value1.String, $event.value2.String) |
두 개의 지정된 입력 문자열을 연결합니다. |
subString |
String subString(value:String, startIndex:Double, length:Double) |
subString($event.value.String, 2.0, 4.0) |
이 인스턴스에서 하위 문자열을 검색합니다. |
trim |
String trim(value:String) |
trim($event.value.String) |
입력 문자열에서 모든 선행 및 후행 공백 문자를 제거하여 새 문자열을 반환합니다. |
indexOf |
Long indexOf(value:String, subString:String) |
indexOf($event.value.String, 'abc') |
0 인덱싱을 기반으로 원래 문자열 내에서 지정된 문자열의 첫 번째 발생을 반환합니다. |
replace |
String replace(value:String, searchString:String, replaceString:String) |
replace($event.value.String, 'abc', 'xyz') |
검색 문자열의 모든 항목이 대체 문자열로 대체되는 문자열을 반환합니다. |
기타 함수
| 함수 이름 | 서명 | 예시 | 비고 |
|---|---|---|---|
coalesce |
String, Long, Double, Bool coalesce (value: String, Long, Double, Bool) |
coalesce(toLong($event.value.Double), $event.value.Long) |
인수 목록에서 null이 아닌 첫 번째 값을 반환합니다. 최소 2개에서 최대 64개의 인수를 허용하지만 모두 동일한 데이터 형식이어야 합니다. |
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') |
조건자가 true(두 번째 인수 반환) 또는 false(세 번째 인수 반환)로 확인되었는지에 따라 두 번째 또는 세 번째 인수를 반환합니다. 술어는 부울 식이어야 하며 두 번째 및 세 번째 인수는 동일한 유형이어야 합니다. |
참고하십시오
애플리케이션 등록 및 Azure Active Directory 프로그래밍 모델에 대한 자세한 내용은 개발자용 Azure Active Directory를 참조하세요.
요청 및 인증 매개변수에 대한 자세한 내용은 인증 및 권한 부여를 참조하세요.
HTTP 요청 및 응답 테스트를 지원하는 도구는 다음과 같습니다.
바이올린 연주자. 이 무료 웹 디버깅 프록시는 REST 요청을 가로챌 수 있으므로 HTTP 요청 및 응답 메시지를 진단할 수 있습니다.
JWT.io. 이 도구를 사용하여 전달자 토큰의 클레임을 빠르게 덤프한 다음 해당 내용의 유효성을 검사할 수 있습니다.
우체부. REST API 디버깅을 위한 무료 HTTP 요청 및 응답 테스트 도구입니다.
Gen2 설명서를 검토하여 Azure Time Series Insights Gen2에 대해 자세히 알아보세요.