Azure Time Series Insights Gen2 시계열 식 구문
개요
TSX(시계열 식)는 강력한 입력이 있는 문자열 기반 식 언어입니다. TSX는 시계열 쿼리에서 다음 엔터티를 나타내는 데 사용됩니다.
- 필터
- 값
- 집계
필터 식
필터 식은 부울 절을 나타내는 데 사용됩니다. 다음 표에는 필터의 예가 나와 있습니다.
Tsx | Description |
---|---|
$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 )은 속성의 형식으로 읽습니다. |
$event.Temperature |
형식은 단일 토큰에서 액세스하는 속성의 경우 Double 으로 간주됩니다. |
$event['Temperature-Celsius'] |
특수 문자가 있는 토큰을 이스케이프하는 데 및 ] 를 사용합니다[ . 또한 대괄호 내에서 를 사용하여 \ 및 ' 문자를 \ 이스케이프합니다. |
$event.Temperature.Celsius.Double |
중첩된 속성에 액세스하는 데 사용합니다 . . 중첩된 속성에 액세스할 때 Type이 필요합니다. |
$event.Temperature['Celsius-C'].Double |
중첩된 속성에 액세스할 때 특수 문자가 있는 토큰을 이스케이프하는 데 및 ] 를 사용합니다[ . 또한 대괄호 내에서 를 사용하여 \ 및 ' 문자를 \ 이스케이프합니다. 중첩된 속성에 액세스할 때 Type이 필요합니다. |
$event['Temperature']['Celsius'].Double |
토큰에서 [ ] 및 를 사용하여 토큰을 이스케이프할 수 있습니다. |
숫자 변수 종류
값 식의 결과는 Double 또는 Long 형식이어야 합니다.
집계 변수 종류
값 식의 결과는 지원되는 모든 형식일 수 있습니다.
범주 변수 종류
값 식의 결과는 String 또는 Long 형식일 수 있습니다.
집계 식
집계 식 은 쿼리에 사용할 집계 작업을 설명하는 데 사용됩니다. 집계 식은 각 간격에 대해 단일 값을 생성합니다. 집계 식은 숫자 및 집계 변수에 적용할 수 있습니다.
집계 식 - 숫자 변수 종류
숫자 변수는 를 참조 $value
해야 합니다.
지원되는 집계 함수는 다음과 같습니다.
Aggregate 함수 | 예제 | Description |
---|---|---|
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 지정된 간격의 오른쪽 가장자리에 있는 를 반환합니다. 보간이 필요합니다. |
집계 식 - 집계 변수 종류
집계 변수는 이벤트 페이로드의 속성을 참조해야 합니다.
지원되는 집계 함수는 다음과 같습니다.
집계 함수 | 예제 | Description |
---|---|---|
count |
count() |
간격당 이벤트 수를 반환합니다. |
min |
min($event.Temperature.Double) |
간격당 온도 속성의 최소값 을 계산합니다. 값을 방지합니다 null . |
max |
max($event.Temperature.Long) |
간격당 온도 속성의 최대값을 계산합니다. 값을 방지합니다 null . |
sum |
sum($event.Temperature.Double) |
간격의 모든 이벤트에 대한 Temperature 속성의 합계를 계산합니다. 값을 방지합니다 null . |
avg |
avg($event.Temperature.Long) |
간격의 모든 이벤트에 대한 Temperature 속성의 평균을 계산합니다. 값을 방지합니다 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)
Syntax
이 섹션에서는 양식 식과 연결된 핵심 구문 개념 및 쿼리 연산자를 설명합니다.
지원되는 리터럴
참고
아래 리터럴은 식을 형성하는 데 사용됩니다. 데이터 형식의 전체 목록은 지원되는 데이터 형식 문서를 참조하세요.
기본 형식 | 리터럴 |
---|---|
Bool |
TRUE , FALSE |
DateTime | dt'2016-10-08T03:22:55.3031599Z' |
double |
1.23 , 1.0 |
Long |
1 , 6 |
String | 'abc' |
TimeSpan | ts'P1Y2M3DT4M5.67S' |
Null | NULL |
지원되는 피연산자 형식
작업 | 지원되는 형식 | 참고 |
---|---|---|
<, >, <=, >= | Double, Long, DateTime, TimeSpan | |
=, !=, <> | Double, Long, String, Bool, DateTime, TimeSpan, NULL | <> 은 != |
+, -, *, / | Double, Long, DateTime, TimeSpan |
비교 식(<, >, <=, =, >=, !=)의 경우 피연산자는 NULL이거나 형식이 같을 수 있습니다. 각 조건자 식에서 LHS(왼쪽) 및 RHS(오른쪽) 피연산자의 형식이 일치하도록 유효성을 검사합니다. LHS 및 RHS 유형이 동의하지 않거나 특정 형식에서 작업이 허용되지 않을 때 오류가 발생합니다.
참고
문자열 형식은 웜 저장소에서 null을 사용할 수 없습니다.
-
NULL과 빈 문자열('')에 대한 String 비교는 와 동일한
$event.p1.String = ''
방식으로$event.p1.String = NULL
동작합니다. - 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) |
지정된 각도의 Cosine을 라디안으로 반환합니다. |
sin |
Double sin(value:Double) |
sin($event.value.Double) |
지정된 각도의 사인을 라디안으로 반환합니다. |
tan |
Double tan(value:Double) |
tan($event.value.Double) |
지정된 각도의 탄젠트를 라디안으로 반환합니다. |
acos |
Double acos(value:Double) |
acos($event.value.Double) |
Cosine이 지정된 숫자인 라디안 단위의 각도를 반환합니다. |
asin |
Double asin(value:Double) |
asin($event.value.Double) |
Sine이 지정된 숫자인 라디안 단위의 각도를 반환합니다. |
atan |
Double atan(value:Double) |
atan($event.value.Double) |
탄젠트 가 지정된 숫자인 라디안 단위의 각도를 반환합니다. |
atan2 |
Double atan2(value1:Double, value2:Double) |
atan2($event.value1.Double, $event.value2.Double) |
탄젠트의 각도를 지정된 두 숫자의 몫인 라디안 단위로 반환합니다. |
로그 함수
함수 이름 | 서명 | 예제 | 참고 |
---|---|---|---|
log |
Double log(value:Double) |
log($event.value.Double) |
지정된 숫자의 자연 로그를 반환합니다. |
log2 |
Double log2(value:Double) |
log2($event.value.Double) |
밑을 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 요청 및 응답 테스트를 지원하는 도구는 다음과 같습니다.
Fiddler. 이 무료 웹 디버깅 프록시는 REST 요청을 가로챌 수 있으므로 HTTP 요청 및 응답 메시지를 진단할 수 있습니다.
JWT.io. 이 도구를 사용하여 전달자 토큰에서 클레임을 신속하게 덤프한 다음 해당 콘텐츠의 유효성을 검사할 수 있습니다.
포스트맨. REST API를 디버깅하기 위한 무료 HTTP 요청 및 응답 테스트 도구입니다.
Gen2 설명서를 검토하여 Gen2 Azure Time Series Insights 대해 자세히 알아보세요.