반응형
Batch Processing
배치 (Batch) == 일괄
배치 프로세싱(Batch Processing) == 일괄 처리
많은 양의 데이터를 정해진 시간에 한꺼번에 처리하는 것
- 한정된 데이터
- 특정 시간
- 일괄 처리
- 실시간 보장이 없을때
- 데이터를 한꺼번에 처리할 수 있을때
- 무거운 처리를 할때 (ML)
Streaming Processing
실시간으로 쏟아지는 데이터를 계속 처리하는 것
이벤트가 생길 때 마다, 데이터가 들어올때마다 처리
물론 streaming 도 batch 처럼 사용할 수 있음
불규칙적으로 데이터가 들어온다는 가정을 진행해보면
1. 이벤트가 안들어올때 (오랫동안)
2. 여러개의 이벤트가 한꺼번에 올떄
이렬경우 불규칙으로 데이터가 들어오므로
처리하는 데이터가 각각 마다 달라지기 때문에 리소스 가 비효율적으로 진행됨
하지만 스트리밍은 데이터가 생성되서 요청이 들어올때 마다 처리할 수 있음
그러면 언제써야할까?
- 실시간 성 보장
- 데이터가 불특정 다수로 여러곳에서 들어올때
- 데이터 생성 및 수집 주기가 불규칙할떄
- 가벼운 처리를 할 때 (이건 회사마다 다름)
대표적으로 사용되는 분야는?
1. 사기거래 탐지
2. 실시간 가격 책정
3. 실시간 기능이 들어간 어플리케이션
4. 실시간 알림
MicroBatch
데이터를 잘게 쪼개서 프로세싱하는 것
batch processing 을 잘게 쪼개서 스트리밍을 흉내내는 것이라고 보면된
대표적으로 spark streaming
스트리밍을 흉내내는거지 근본은 배치라는점
Flow 정리
Batch processing flow | Streaming processing flow |
1. 데이터를 모아서 2. DB에 읽어서 처리 3. 다시 DB에 담기 |
1. 데이터가 들어올때마다 2. 쿼리/처리 후 State를 업데이트 3. DB 담기 |
반응형
'데이터 엔지니어링 > 데이터 엔지니어링' 카테고리의 다른 글
예전 -> 현재 로 오면서 데이터를 다루는 행위의 변화 (1) | 2023.04.10 |
---|