전체 그래프
Concepts

Batch vs Real-time

data-engineeringconcept/batchconcept/stream

상위: Data Engineering

요약

배치 처리는 일정량의 데이터를 모아 한 번에 처리하는 방식으로 비용 효율적이며 대량 데이터 처리에 적합합니다(Airflow, Spark). 실시간 처리는 데이터 발생 즉시 처리하여 지연이 짧지만 비용이 높습니다(Kafka, Flink). 사용 사례와 요구사항에 따라 적절한 방식을 선택해야 합니다.

배치 처리 (Batch Processing)

  • 일정량의 데이터를 모아서 한꺼번에 처리하는 방식
  • 정해진 시간 (예: 매일 밤 12시) 또는 특정 이벤트 (예: 파일 업로드) 발생 시 실행
  • 대량 데이터 처리에 적합
    • 주로 ETL 파이프라인, 데이터 웨어하우스 적재 등에 활용

주요 활용 사례

  • 데이터 웨어하우스 적재 (예: Redshift, Snowflake)
  • 사용자 로그 분석 (예: 하루 단위 사용자 접속 로그 집계)
  • 기계 학습 모델 학습용 데이터 준비
  • 정기 리포트 생성
  • 대용량 데이터 집계 및 변환

Batch vs Real-time

배치 처리 도구

  • Apache Airflow - 배치 워크플로우 오케스트레이션
  • Spark - 대규모 분산 배치 데이터 처리
  • Apache Hadoop - 분산 파일 시스템 및 MapReduce
  • dbt - 데이터 변환 도구

실시간 처리 (Real-time Processing)

  • 데이터가 발생하는 즉시 실시간으로 처리하는 방식
  • 지연 시간이 짧음
    • 스트리밍 데이터 (예: 실시간 로그, IoT 센서 데이터)에 최적화

주요 활용 분야

  • 실시간 모니터링
  • 이상 탐지
  • 실시간 추천 시스템
  • 금융 사기 탐지
  • IoT 센서 데이터 분석

주요 활용 사례

  • 실시간 주식 거래 분석
  • 금융 사기 탐지 시스템
  • IoT 센서 데이터 실시간 분석
  • 실시간 추천 시스템
  • 실시간 대시보드 및 알림

Batch vs Real-time

실시간 처리 도구

  • Apache Flink - 스트림 처리 프레임워크
  • Apache Kafka - 실시간 데이터 스트리밍 플랫폼
  • Apache Storm - 분산 실시간 계산 시스템
  • Spark Streaming - Spark 기반 스트리밍

비교 표

항목배치 처리실시간 처리
데이터 처리 방식일정량의 데이터를 모아서 한 번에 처리데이터가 들어오는 즉시 처리
처리 속도느림 (분~시간 단위)빠름 (밀리초~초 단위)
적용 사례데이터 웨어하우스, 머신러닝 학습 데이터 준비실시간 이상치 탐지, 실시간 추천 시스템, IoT 분석
리소스 사용주어진 시간에만 리소스 사용지속적인 리소스 사용
비용상대적으로 저렴 (일정한 리소스 사용)고비용
복잡도상대적으로 단순복잡 (상태 관리, 윈도우 처리 등)
정확성높음 (전체 데이터 기반)근사치 가능 (샘플링, 윈도우)
사례매일 오후 20시 로그 데이터 집계실시간 주식 거래 분석

하이브리드 아키텍처

배치와 실시간을 결합하는 Lambda·Kappa 패턴은 Lambda vs Kappa Architecture 참고.

선택 가이드

배치 처리가 적합한 경우

  • 대량의 역사적 데이터 처리
  • 복잡한 집계 및 분석
  • 비용 최적화가 중요한 경우
  • 처리 지연이 허용되는 경우 (시간~일 단위)

실시간 처리가 적합한 경우

  • 즉각적인 응답이 필요한 경우
  • 이벤트 기반 처리
  • 모니터링 및 알림
  • 지연 시간이 중요한 경우 (초~분 단위)

관련 문서

참고 자료