이 글은 Data Engineering Zoomcamp의 Module 6: Batch Processing를 기반으로,
데이터 처리 방식 중 가장 널리 사용되는 Batch Processing(배치 처리)의 개념과 구조를 정리한 글입니다.
목차
- Batch Processing이란
- Batch와 Streaming의 차이
- 왜 Batch Processing이 필요한가
- Batch 파이프라인의 기본 구조
- Batch 처리에 사용되는 기술
- Batch Processing의 장단점
- 실무에서의 Batch 설계 방식
- 참고자료/실습
1. Batch Processing이란
Batch Processing은 일정 시간 동안 수집된 데이터를 모아 한 번에 처리하는 방식입니다.
데이터가 생성되는 즉시 처리하는 것이 아니라,
시간 단위(예: 1시간, 1일, 1주 등)로 데이터를 누적한 뒤 정해진 시점에 일괄 처리하는 구조입니다.
- 하루 동안 발생한 주문 데이터를 자정에 집계
- 한 시간 단위 로그 데이터를 정각마다 정제
- 월말 전체 매출 데이터를 한 번에 계산
2. Batch와 Streaming의 차이
| 구분 | Batch Processing | Streaming Processing |
| 처리 시점 | 일정 주기마다 처리하는 구조 | 이벤트 발생 즉시 처리하는 방식 |
| 지연 | 지연이 존재하는 구조 | 거의 실시간 처리 구조 |
| 구현 난이도 | 비교적 단순 | 상대적으로 복잡 |
| 장애 복구 | 재실행 용이 | 상태 관리 필요 |
| 주요 사용 사례 | 집계, 리포트, 데이터 정제 작업 | 실시간 알림, 모니터링 시스템 |
3. 왜 Batch Processing이 필요한가
3-1. 안정성
Batch 작업은 특정 시간 구간을 기준으로 처리하는 구조입니다.
따라서 작업이 실패하더라도 동일 구간을 다시 실행하면 동일한 결과를 얻을 수 있는 장점이 있습니다.
이 특성은 운영 안정성 측면에서 매우 중요한 요소입니다.
3-2. 리소스 효율성
대량 데이터를 한 번에 처리하면 자원을 집중적으로 활용할 수 있는 구조입니다.
특히 분산 처리 환경에서는 여러 노드가 동시에 데이터를 처리하므로 처리 효율이 높아지는 구조입니다.
3-3. 운영 관리 단순
Batch 작업은 일반적으로 스케줄러(Airflow, Cron 등)를 통해 관리하는 구조입니다.
Raw Data → Batch Job → 정제 데이터 저장 → 리포트/대시보드
정해진 시간에 실행되기 때문에 파이프라인 흐름이 명확하고 관리가 비교적 용이한 방식입니다.
4. Batch 파이프라인의 기본 구조
일반적인 Batch 파이프라인은 다음과 같은 단계로 구성됩니다.
- 원천 데이터 수집 단계
- 일정 시간 동안 데이터 누적 단계
- Batch Job 실행 단계
- 데이터 정제 및 집계 단계
- 결과 저장 단계
- 분석 또는 리포트 활용 단계
5. Batch 처리에 사용되는 기술
5-1. Python Script 기반 처리 방식
간단한 ETL 스크립트로 파일을 읽고 변환한 뒤 저장하는 구조입니다.
장점은 구현이 단순하고 소규모 데이터에 적합하다는 점입니다.
단점은 단일 머신 기반이기 때문에 대용량 데이터 처리에는 한계가 있다는 점입니다.
5-2. SQL 기반 처리 방식
데이터 웨어하우스에서 SQL을 사용해 집계하는 구조입니다.
SELECT customer_id,
SUM(amount) AS total_amount
FROM sales
GROUP BY customer_id;
장점은 집계에 최적화되어 있고 분석 친화적인 구조라는 점입니다.
단점은 복잡한 로직 구현이 어렵고 파일 기반 대규모 처리에는 제약이 있을 수 있다는 점입니다.
5-3. 분산 처리 엔진 기반 처리 방식
대용량 데이터를 처리하는 경우 분산 처리 엔진을 사용하는 구조입니다.
특징은 다음과 같습니다.
- 여러 노드에서 병렬 처리하는 구조
- 대규모 파일 처리에 적합한 방식
- SQL과 코드 기반 로직을 함께 사용할 수 있는 환경
현대 데이터 플랫폼에서는 이러한 분산 처리 환경에서 Batch 작업을 수행하는 구조가 일반적입니다.
6. Batch Processing의 장단점
6-1. 장점
- 안정적인 운영이 가능한 구조
- 재실행 및 복구가 용이한 방식
- 대규모 데이터 처리에 적합한 구조
- 스케줄 기반 자동화가 가능한 방식
6-2. 단점
- 실시간 반영이 어려운 구조
- 일정 수준의 지연이 존재하는 방식
7. 실무에서의 Batch 설계 방식
실제 시스템에서는 Batch와 Streaming을 함께 사용하는 경우가 일반적입니다.
- 실시간 알림은 Streaming으로 처리하는 구조
- 일별 매출 집계 및 분석은 Batch로 처리하는 방식
대부분의 핵심 데이터 분석, 리포트 생성, 머신러닝 학습 데이터 생성은 Batch 기반으로 동작하는 경우가 많습니다.
즉, Batch Processing은 데이터 플랫폼의 기본 구조라고 볼 수 있는 방식입니다.
8. 참고 자료 / 출처
- Data Engineering Zoomcamp Repo: https://github.com/DataTalksClub/data-engineering-zoomcamp