티스토리 뷰

개발

[ETL] Apache Spark - window (2)

0hyeon의 2025. 1. 21. 21:24
반응형

0.Event Time windows, Processing Time windows 

steaming 순서에 대해 알아보는 시간이 필요하여 정리했다.

 

1.window funtion

  • 데이터의 특정한 범위를 설정하고, 그 범위 내에서 집계 함수 등을 적용
  • spark streaming에서는 time-based window만을 사용 (다른 윈도우 사용시 에러)
  • 데이터를 시간적으로 나누는 범위를 설정하는 방식
  • 스트리밍 데이터는 끝없이 흐르는 데이터이기 때문에, 특정 시간 단위로 데이터를 나누어 집계나 분석을 수행함
  • 예를 들어, 초당 데이터를 받아오더라도, "1분 간격으로" 데이터를 묶어서 평균, 합계 등을 계산할 수 있음

 

 

 

크게 세가지 방식 

1.1 Sliding window

1.2 Tumbling window

1.3 Session window

 

그리고,

window duration : window 크기 (시간기준으로 한시간, 30분짜리 윈도우를 만든다할때 크기 )

window sliding interval : window 간의 간격  

 

 

1.1 Sliding window

  • 고정크기에 window.
  • window 간의 겸치는 구간존재 

 

 

1.2 Tumbling window

  • 고정크기에 window.
  • window 간의 겸치는 구간이 없음 (interval = duration) 

 

 

1.3 Session window

  • 처음 window가 생성된 후, record / event 가 설정한 gap duration내에 들어오는 한 확장
  • 만약 gap duration내에 event가 들어오지 않는다면 이 window는 끝나고, 새로운 window를 생성

 

 

 

2.Event time window

  • event time 을 기준으로 input record를 처리
  • event time? 
    • record 가 실제로 생성된시점. != spark streaming application에 들어온 시간
  • 일반적으로 event time은 input record의 column으로 제공됨.
  • Dstream에서는 event time을 기준으로 작업하는데에 제한이 있음.
  • Structured Streaming에서는 window function을 제공함.

 

3.Processing time windows

  • Processing time을 기준으로 input record를 처리
  • Processing time ? 
    • spark stremaing application 에 들어온 시간
  • 일반적으로 processing time 은 input record에 포함되어 있지않고, 아웃풋모드 current_timestamp()를 통해 생성 

 

4. event + window (output mode = complete)

 

반응형
댓글
공지사항
반응형