•
Apache Flink와 실시간 스트리밍 데이터 분석의 가장 큰 장점이라 할 수 있는 Windowing은
•
어떤 시간적 범위 내에서 발생한 레코드들의 대한 어그레이션을 계산할 수 있도록 하는 기능이다.
•
이때 이 시간적 범위를 나누는 여러가지 Windowing 방식들이 있다.
TUMBLE
SELECT window_start, window_end, SUM(`size`) AS total_size
FROM TABLE(TUMBLE(TABLE acclog, DESCRIPTOR(`time`), INTERVAL '15' SECOND))
GROUP BY window_start, window_end;
SQL
복사
•
가장 일반적인 Window 방식으로 특정 시간마다 새롭게 새 윈도우를 시작하는 방식이다.
HOP
SELECT window_start, window_end, SUM(`size`) AS total_size
FROM TABLE(HOP(TABLE acclog, DESCRIPTOR(`time`), INTERVAL '15' SECOND, INTERVAL '30' SECOND))
GROUP BY window_start, window_end;
SQL
복사
•
슬라이딩 윈도우라고도 부르는 HOP은 Window Size는 유지하되 Window Slide 만큼만 옆으로 옮겨서 여러 Window Slide 가 한번에 담기도록 하는 방식이다.
CUMULATE
SELECT window_start, window_end, SUM(`size`) AS total_size
FROM TABLE(CUMULATE(TABLE acclog, DESCRIPTOR(`time`), INTERVAL '10' SECOND, INTERVAL '30' SECOND))
GROUP BY window_start, window_end;
SQL
복사
•
CUMULATE 방식은 맨 처음 Window Step만큼의 크기를 가진 Window에서 시작하여
•
Window Step이 종료되면 해당 윈도우 처음 부분부터 그다음 Window Step까지 Window Size를 늘려 다음 윈도우를 진행하며
•
이런식으로 진행하다 Max Window Size에 도달하면 이 과정을 처음부터 다시 시작하는 방식이다.



