[Intro] Batch와 Streaming 의 차이점

y001·2025년 11월 29일

Apache Flink Hands-On

목록 보기
2/17
post-thumbnail

1. Batch Processing

Batch Processing은 데이터가 모두 준비된 시점에 한 번에 처리하는 방식이다. 일정 기간 동안 축적된 데이터를 기반으로 작업이 수행되며, 대표적인 사례로 하루 동안 저장된 판매 데이터를 자정에 요약하는 작업이 있다. 이 방식은 데이터가 완전하게 확보된 이후 처리되기 때문에 분석 결과가 생성되기까지의 지연 시간이 상대적으로 길다.

2. Stream Processing

Stream Processing은 이벤트가 발생하는 즉시 처리하는 방식이다. 데이터가 시스템에 유입되는 순간 단위로 반응하며, 실시간 대시보드 업데이트나 이상 거래 탐지와 같은 작업에 적합하다. 처리 결과가 즉시 반영되므로 실시간성이 핵심 요구사항인 환경에서 활용된다.

3. Batch Processing과 Stream Processing의 특성 비교

항목Batch ProcessingStream Processing
데이터 특성유한하고 완전한 데이터셋무한하고 연속적인 데이터
처리 시점모든 데이터가 수집된 후 처리데이터가 도착하는 즉시 처리
지연 시간높음(분~수시간)낮음(밀리초~초)
예시일별 판매 리포트, ETL 작업이상 거래 탐지, 실시간 추천
  • 시간 처리 방식(Timing Semantics)
    Batch Processing은 프로세스 시간(processing time)을 중심으로 처리한다. 반면 Stream Processing은 이벤트 시간(event time)과 도착 시간(ingestion time)을 기반으로 처리하며, 데이터의 실제 발생 시점을 반영하기 위한 시간 의미론이 사용된다.

  • 내결함성(Fault Tolerance)
    Batch Processing에서는 실패한 작업을 재시도하는 방식으로 오류를 복구한다.
    Stream Processing에서는 체크포인트와 상태 복구 메커니즘을 통해 연속적이고 무한한 데이터 흐름 속에서도 일관된 상태를 유지해야 한다.

4. 참고자료

0개의 댓글