연속 창(Azure Stream Analytics)
연속 창은 고정된 크기의 겹치지 않고 연속적인 일련의 시간 간격입니다. 다음 다이어그램에서는 일련의 이벤트가 있는 스트림과 10초 연속 창에 매핑되는 방법을 보여 줍니다.
Syntax
{TUMBLINGWINDOW | TUMBLING} ( timeunit , windowsize, [offsetsize] )
{TUMBLINGWINDOW | TUMBLING} ( Duration( timeunit , windowsize ), [Offset(timeunit , offsetsize)] )
참고
위 두 가지 방법으로 연속 창을 사용할 수 있습니다. 도약 창과의 일관성을 허용하려면 모든 유형의 창과 함께 기간 함수를 사용하여 창 크기를 지정할 수 있습니다. 창 기간은 양수 부동 소수자 상수여야 합니다.
인수
timeunit
windowsize에 대한 시간 단위입니다. 다음 표에는 유효한 모든 timeunit 인수가 나와 있습니다.
Timeunit | 약어 |
---|---|
일 | dd, d |
hour | hh |
minute | mi, n |
second | ss, s |
밀리초 | ms |
microsecond | mcs |
windowsize
창의 크기를 설명하는 큰 정수입니다. windowsize는 정적이며 런타임에 동적으로 변경할 수 없습니다.
최대 기간은 7일입니다.
offsetsize
기본적으로 연속 창은 창 끝에 포함되고 시작 부분에서는 제외됩니다. 예를 들어 오후 12시 ~ 오후 1시 창에는 정확히 오후 1시에 발생한 이벤트가 포함되지만 12:00PM에 발생한 이벤트는 포함되지 않습니다(이러한 이벤트는 오전 11:00~오후 12:00에 포함됨).
Offset 매개 변수를 사용하여 이 동작을 변경하고 창의 시작 부분에 이벤트를 포함하고 마지막에 발생한 이벤트를 제외할 수 있습니다.
예제
SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY TollId, TumblingWindow(Duration(hour, 1), Offset(millisecond, -1))
SELECT 'reset' AS command
INTO
alert
FROM
temperature TIMESTAMP BY timeCreated
GROUP BY TumblingWindow(second,15)
HAVING Avg(machine.temperature) > 25
시간 고려 사항
모든 창 작업이 종료될 때는 이벤트가 출력됩니다. Azure Stream Analytics의 창은 창 시작 시간에 열리고 창 종료 시간에 닫힙니다. 예를 들어 오전 12시에서 오전 12시 사이의 5분 기간이 있는 경우 타임스탬프가 오전 12시보다 크고 타임스탬프가 오전 12:05까지 포함된 모든 이벤트가 이 창에 포함됩니다. 창의 출력은 창 종료 시간과 같은 타임스탬프에서 사용되는 집계 함수를 기준으로 하는 단일 이벤트입니다. 창의 출력 이벤트의 타임스탬프는 별칭을 사용하여 System.Timestamp() 속성을 사용하여 SELECT 문에 프로젝션할 수 있습니다.