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' truePointValue가 보다 3.14 크고 문자열이 상태 Good
$event.$ts > dt'2018-11-01T02:03:45Z' true 타임스탬프를 보다 큰 이벤트의 경우 2018-11-01T02:03:45Z
$event.PointEval.Bool = true truePointValue가 같은 이벤트의 경우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 형식의 속성 p1p2, Double 형식의 속성 p3Double 형식의 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 대해 자세히 알아보세요.