[Data Engineering] Batch Processing과 Stream Processing이란?

2025. 6. 2. 14:44·📊 Data Engineering

Batch Processing이란?

그림 1. 효율적인 배치 처리에 기여하는 요인 (출처: Datacamp)

  • Batch Processing(일괄 처리)는 컴퓨터가 데이터를 일괄 처리하여 대량의 반복적인 작업을 처리하는 방식이다.
  • 이 방식은 즉각적인 결과를 요구하지 않고, 시간을 절약하며, 컴퓨팅 성능을 낮춘다.
  • 일괄 처리는 대규모 데이터 세트를 분석할 때 자세한 보고서를 생성하며, 일관성과 리소스 효율성을 달성하는 데 이상적이다,
  • 하지만 즉각적인 피드백이나 조치가 필요한 작업에는 항상 적합한 것은 아니다.

 

Stream Processing이란?

그림 2. 스트리밍 처리 (출처: Datacamp)

  • Stream Processing (스트림 처리)는 데이터를 지속적으로 수집하고 분석한다.
  • 데이터가 누적될 때까지 기다릴 필요 없이 즉시 처리할 수 있다.
  • 따라서 변화에 즉시 대응할 수 있으며, 이는 신속한 의사 결정이 필요한 작업에 매우 중요하다.
  • 스트림 처리는 최신 애플리케이션에 필요한 속도를 제공하지만, 구현이 복잡할 수 있으며 고급 인프라가 필요하다.

Batch Processing vs Stream Processing

그림 3. Batch vs Stream Processing (출처: Datacamp)

 

일괄 처리와 스트림 처리는 서로 다른 데이터 작업에 적합하다.

 

일반적으로 일괄 처리는 즉각적인 결과가 필요하지 않은 대규모의 빈번하지 않은 데이터 작업에 사용할 수 있다. 일괄처리는 데이터를 대량으로 처리하므로 허용되는 작업에 적합하다.

 

반면, 즉각적인 인사이트와 조치가 필수적인 실시간 연속 데이터 처리에는 스트림 처리를 사용할 수 있다. 스트림 처리는 데이터가 유입되는 즉시 처리하여 지연 시간을 최소화하고 실시간 데이터 분석 및 대응을 보장한다.

기준 일괄 처리 스트림 처리
데이터의 특성 배치별로 점진적으로 처리 스트림으로써 연속적인 처리
처리 시간 정해진 스케줄에 따름 지속적인 처리
복잡성 유한하고 미리 결정된 데이터 덩어리 처리로 간결함 데이터 흐름이 일정하고 일관성 이상 발생 가능성으로 복잡함
하드웨어 요구 사항 하위 시스템 뿐만 아니라 상위 시스템에서도 수행할 수 있어야 함 요구 사항이 까다로우면서도 시스템이 항상 작동해야 한다는 점이 필요
처리량 대량의 데이터 처리를 위해, 특정 목표를 염두하여 최적화 됨 수행해야 할 작업에 따라 다름
애플리케이션 이메일 캠페인, 청구, 과학 연구, 이미지 및 비디오 처리 등 소셜 미디어 모니터링, 사기 감지, 의료 모니터링, 네트워크 모니터링
데이터의 일관성 및 완전성 데이터의 일관성과 완전성은 일반적으로 처리 과정에서 손상되지 않음 손상된 데이터나 순서가 잘못된 데이터가 발생할 가능성이 높음
오류 인식 및 해결 오류 처리가 완료된 후에만 인식되고 해결할 수 있음 실시간으로 오류를 인식하고 해결할 수 있음
입력 요구 사항 일괄 처리에서는 입력이 정적이고 사전 설정됨 스트림 처리에서는 입력이 동적임
사용 가능한 도구 Apache Hive, Apache Spark, Apache Hadoop Apache Kafka, Apache Storm, Apache Flink
지연 시간 높은 지연 시간으로 배치 처리가 완료된 후에 인사이틀르 얻을 수 있음 낮은 지연 시간으로 즉시 인사이트를 얻을 수 있음

Batch Processing의 장단점

일괄 처리의 장점

  • 대규모 데이터 세트에 대한 효율성: 일괄 처리는 한 번에 많은 양의 데이터를 처리하고, 계산 리소스를 최적화하고, 처리 오버헤드를 최소화하는 데 탁월하다.
  • 비용 효율적인 리소스 활용: 일괄 작업은 종종 비수요 시간에 예약되므로 수요가 많은 기간과 관련된 비용이 줄어든다.
  • 간소화된 워크플로: 일괄 처리의 순차적 특성은 시스템 설계를 단순화하며 즉각적인 결과가 필요하지 않은 작업에 이상적이다.
  • 오류 처리: 다음 배치를 처리하기 전에 오류를 식별하고 해결하여 데이터 정확성과 무결성을 유지할 수 있다.
  • 확장성: 배치 시스템은 증가하는 데이터 볼륨을 효과적으로 처리할 수 있으므로 장기적으로 성장을 계획하는 기업에 적합하다.

일괄 처리의 단점

  • 지연된 결과: 전체 배치가 처리될 때까지 결과를 얻을 수 없으므로 시간에 민감한 작업의 단점이다.
  • 리소스 급증: 일괄 작업을 실행하면 시스템 리소스에 일시적으로 부담이 가해져 처리 속도가 느려질 수 있다.
  • 비융통성: 일괄 작업 흐름을 조정하려면 상당한 변경이 필요한 경우가 많아 실시간 요구 사항에 대한 적응성이 떨어진다.
  • 오류 전파: 일괄 처리 중에 오류가 발생하면 전체 일괄 처리에 영향을 미쳐 재처리가 필요할 수 있다.
  • 초기 비용 증가: 초기에 일괄 처리 시스템을 설계하고 설정하는 데는 많은 리소스가 필요할 수 있다.

 

Stream Processing의 장점과 단점

스트림 처리의 장점

  • 실시간 통찰력: 스트림 처리를 즉각적인 데이터 분석이 가능해지며, 이는 사기 감지, 실시간 모니터링, 동적 의사 결정과 같은 애플리케이션에 매우 중요하다.
  • 지속적인 데이터 처리: 데이터가 도착하는 대로 처리되므로 중단없는 워크 플로와 시기적절한 대응이 가능하다.
  • 향상된 민첩성: 회사는 빠르게 변화하는 산업 분야에서 경쟁 우위를 확보함으로써 실시간 이벤트에 신속하게 대응할 수 있다.
  • 이벤트 기반 작업: IoT 장치, 온라인 거래, 센서 네트워크 등 트리거에 의존하는 시스템에 이상적이다.
  • 동적 확장성: 스트림 처리 시스템은 일관된 성능을 보장함으로써 변동하는 데이터 부하에 적응할 수 있다.

스트림 처리의 단점

  • 복잡성 증가: 스트림 처리를 구현하려면 정교한 아키텍처, 전문 도구 및 전문 지식이 필요하다.
  • 운영 비용 증가: 실시간 시스템은 종종 상당한 컴퓨팅 리소스를 요구하므로 전체 비용이 증가한다.
  • 데이터 정확도 과제: 일관성을 보장하고 순서가 잘못된 이벤트를 처리하는 것은 복잡할 수 있다.
  • 모니터링 및 유지관리: 스트림 처리 시스템은 문제를 즉시 해결하기 위해 지속적인 모니터링이 필요하다.
  • 제한된 과거 맥락: 스트림 처리는 현재 데이터에 초점을 맞춘다. 따라서 상세한 과거 분석이 필요한 애플리케이션에는 적합하지 않다.

결론

비즈니스 요구사항, 데이터 특성, 지연 시간 요구사항, 예산 및 기존 기술에 맞춰 선택을 조정하면 데이터 처리 요구 사항에 가장 효과적인 접근 방식을 선택할 수 있다.

 

앞서 살펴본 바와 같이 두 접근 방식 모두 장단점을 가지고 있으므로, 데이터 처리의 전제 조건에 맞게 두 방법 중 하나를 선택할 때는 해당 조건들을 만족해야 한다.

 

대량의 과거 데이터를 주기적인 분석으로 처리해야하고 예산이 제한적인 경우엔 일괄 처리를, 실시간 데이터 분석과 즉각적인 조치가 중요하고 더욱 복잡하고 고성능 인프라에 필요한 예산과 리소스가 있는 경우 스트림 처리를 선택하면 될 것이다.

 

참고 URL

  • Rivery: https://rivery.io/blog/batch-vs-stream-processing-pros-and-cons-2/
 

Batch Processing vs. Stream Processing: A Comprehensive Guide

What's the difference between batch processing and stream processing? Check out this overview to learn about the pros and cons of each method.

rivery.io

  • datacamp: https://www.datacamp.com/blog/batch-vs-stream-processing
  • geeksforgeeks: https://www.geeksforgeeks.org/difference-between-batch-processing-and-stream-processing/
 

Difference between Batch Processing and Stream Processing - GeeksforGeeks

Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.

www.geeksforgeeks.org

  • amazon: https://www.aboutamazon.in/news/tech-blog/a-guide-to-batch-vs-stream-data-processing-for-developers
 

Batch vs stream data processing: a comprehensive guide for developers

Unlock the secrets of efficient data processing with expert insights and guidelines for navigating the batch vs stream dilemma.

www.aboutamazon.in

'📊 Data Engineering' 카테고리의 다른 글

[Data Engineering] dbt란 무엇인가?  (3) 2025.06.02
[Data Engineering] Apache Airflow 기반의 데이터 파이프라인 Part.01  (0) 2025.05.28
[Data Engineering] 데이터 웨어하우스와 ETL/ELT는 어떻게 구성되는가?  (0) 2025.05.12
[Data Engineering] 데이터 팀의 역할과 조직은 어떻게 구성되는가?  (1) 2025.05.12
[Data Engineering] 개인 사이드 프로젝트#01 복기 2편 (feat. influxdb란?)  (3) 2025.04.30
'📊 Data Engineering' 카테고리의 다른 글
  • [Data Engineering] dbt란 무엇인가?
  • [Data Engineering] Apache Airflow 기반의 데이터 파이프라인 Part.01
  • [Data Engineering] 데이터 웨어하우스와 ETL/ELT는 어떻게 구성되는가?
  • [Data Engineering] 데이터 팀의 역할과 조직은 어떻게 구성되는가?
givemechocopy
givemechocopy
복잡성을 통제하는 것이 컴퓨터 프로그래밍의 본질이다. @Brian Kernighan (C언어 공동 창시자)
  • givemechocopy
    Develop Your Senses As a Developer
    givemechocopy
  • 전체
    오늘
    어제
    • 분류 전체보기 (19)
      • 🛠️ Backend Development (1)
      • 📜 Certification (3)
        • ADsP (3)
        • Information Processing (0)
        • SQLD (0)
      • ☁️ Cloud Computing (2)
      • 💻 Computer Science (1)
      • 📊 Data Engineering (9)
      • 🧩 Problem Solving (0)
      • 🧪 Software Engineering (2)
      • 📰 Tech Trends (1)
  • 블로그 메뉴

    • 태그
    • 방명록
    • 카테고리
  • 링크

    • Github
  • 인기 글

  • 태그

    파이썬
    데이터엔지니어
    ADsP
    코테
    자격증
    datapipeline
    코딩테스트
    timeseries
    data
    dataengineering
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
givemechocopy
[Data Engineering] Batch Processing과 Stream Processing이란?
상단으로

티스토리툴바