본문 바로가기
데이터 엔지니어링

Tumbling window와 Sliding window

by 내기록 2022. 8. 11.
반응형
 

윈도우 집계

스트림 처리는 시스템이 지속적으로 실행되는 데이터 스트림을 처리하면서 실행되어야 한다. 이벤트가 계속 발생함에 따라 오래된 이벤트는 처리하려는 프로세스와 관련성은 점점 낮아진다.

 

윈도우는 데이터 스트림 처리나 시계열 데이터 분석에서 사용되는 개념으로, 규칙적이고 반복적인 시간 기반 집계 작업을 말한다. 즉, 주어진 시간 동안 데이터를 그룹화하고 분석하는 방식에 사용된다. 

 

윈도우는 왜 사용하는걸까?

실시간 데이터 스트림이나 대량의 시계열 데이터에서 의미있는 정보를 추출하고, 이를 통해 실시간 의사 결정, 모니터링, 분석 등을 가능하게 하기 위함이다. 윈도우를 통해 데이터를 소화 가능한 단위로 분할함으로써 시간의 흐름에 다른 변화를 추적하고 트렌드를 분석하는 등 다양한 작업을 수행할 수 있다.

 

데이터 스트림 처리 플랫폼(ex. kafka streams, flink)과 시계열 데이터베이스는 이러한 윈도우 집계 작업을 지원하여 시간에 따른 데이터의 변화를 쉽게 분석하고 이해할 수 있도록 도와준다.

 
 
https://www.researchgate.net/figure/Tumbling-vs-Sliding-Window-semantics_fig2_261489005

 

Tumbling windows

Tumbling window에서 튜플은 시간 또는 개수에 따라 단일 window에 그룹화된다.

따라서 튜플은 하나의 창에만 속한다.

 

https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.0.1/developing-storm-applications/content/understanding_sliding_and_tumbling_windows.html

 

겹치지 않는 고정된 시간 간격의 윈도우이다. 즉, 각 X 기간 동안의 그룹화 함수이다. 예를 들어, 5분 길이의 텀블링 윈도우는 각 5분마다 새로운 데이터 집합을 분석한다.

텀블링 윈도우는 일정 기간 동안 데이터 집계를 생성할 때 각 기간이 이전 기간과 독립적인 것이 일반적이다.

 

예를 들어, 5초 길이의 시간 기반 텀블링 창을 생각해보자. 첫 번째 창(w1)에는 0~5초 사이에 도착한 이벤트가 포함되고, 두 번째 창(w2)에는 5~10초 사이에 도착한 이벤트가 포함되며, 세 번째 창(w3)에는 10~15초 사이에 도착한 이벤트가 포함된다.

텀블링 창은 5초마다 평가(evaluated)되며 겹치는 창은 없다. 각 세그먼트는 별개의 시간 세그먼트를 나타낸다.

 

사용 예) 매 5분마다 계산되는 주식의 평균 가격 계산

 

* 튜플 : A tuple is a named list of values (apache storm)

 

 

Sliding windows

겹치는 시간 간격으로 데이터를 분석하는 윈도우이다. 예를 들어, 5분 길이의 윈도우가 1분마다 슬라이드하면, 각 윈도우는 이전 윈도우와 4분 동안의 데이터를 공유한다.

이와 같이 보통 시간 간격 X 에서 Y 빈도로 보고한 그룹화 함수처럼 동작한다. 만약 매 30분마다 지난 1시간의 평균 주가를 계산하는 경우, 각 보고 시간은 이전 보고 시간과 30분동안의 데이터를 공유하게 된다.

 

텀블링 윈도우는 '보고 빈도'가 윈도우 크기와 동일한 슬라이딩 윈도우로 볼 수도 있다.

 

슬라이딩 윈도우에서 value는 지정된 간격에 따라 데이터 스트림을 가로질러 슬라이딩되는 윈도우 내에 그룹화된다. 

아래는 길이 10초, 슬라이딩 간격 5초의 시간 기반 슬라이딩 창이며, 10초 내에 도달할 수 있는 value들이 포함되어 있다. 

창 내의 튜플 세트는 5초마다 평가(evaluated)된다. 슬라이딩 창은 겹치는 데이터를 포함할 수 있으며 이벤트는 둘 이상의 슬라이딩 창에 속할 수 있다.

https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.0.1/developing-storm-applications/content/understanding_sliding_and_tumbling_windows.html

 

위 이미지에서 첫 번째 창(w1)에는 0~10초 사이 도달한 이벤트가 포함되고, 두 번째 창(w2)에는 5~15초 사이에 도착한 이벤트가 포함된다. 이때, e3~e6 이벤트는 두 창에 모두 속한다. 

시간 t=15 일 때는 윈도우 w2에 평가되며 이벤트 e1,e2는 이벤트 대기열에서 삭제된다.

 
사용 예) 매 초마다 트리거되는 지난 5분 동안의 주가 이동 평균을 계산한다.
 
 
 

References

https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.0.1/developing-storm-applications/content/understanding_sliding_and_tumbling_windows.html

반응형

댓글