다음을 통해 공유


Azure Time Series Insights Gen2 시계열 식 구문

개요

TSX(Time Series Expression)는 강력한 타이핑을 사용하는 문자열 기반 식 언어입니다. TSX는 시계열 쿼리에서 다음 엔터티를 나타내는 데 사용됩니다.

  • 필터
  • 가치
  • 집계

필터 표현식

필터 식 은 부울 절을 나타내는 데 사용됩니다. 다음 표에는 필터의 예가 나열되어 있습니다.

TSX 설명
$event.PointValue.Double = 3.14 true double PointValue3.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 PointValuetrue

값 표현식

값 표현식 은 숫자 및 범주형 변수의 값을 나타내는 데 사용됩니다. 값 식은 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 형식의 속성 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) 지정된 각도의 코사인을 라디안 단위로 반환합니다.
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에 대해 자세히 알아보세요.