공부/소소한 개발
데이터 처리 방식 (배치, 마이크로 배치)
무는빼주세요
2022. 9. 12. 16:48
데이터 스트리밍 등 실시간으로 데이터를 처리하는 방식이 궁금하여 최근 알아보던 중 스트리밍 데이터 처리가 사실은 배치 작업과 동일하지만 이 간격을 극한으로 줄이는 배치 처리 방식이라는 내용을 듣게되었다. 이에 대해 좀 더 공부하여 정리하고자 한다.
배치 : 주기적으로 데이터를 처리하기 위한 일괄 처리 방식 (일, 주, 분 시간 등 다양한 간격으로 배치를 구성)
- Batch : 초,분,시간 수준의 일괄처리
마이크로 배치(스트림 처리) : 일괄 처리인 배치의 간격을 좁히는 방식
- Near Real-time : 초단위 수준의 지연시간 보장
- Real-time : Milliseconds 수준의 처리 보장
- Real Real-time : Microseconds 수준의 처리 보장
일괄 처리 | 스트림 처리 | |
데이터 범위 | 데이터 세트의 모든 또는 대부분 데이터를 쿼리하거나 처리. | 롤링 타임 윈도우 내 데이터 또는 가장 최신 데이터 레코드의 데이터를 쿼리하거나 처리. |
데이터 크기 | 대규모 데이터 배치. | 일부 레코드로 구성된 마이크로 배치 또는 개별 레코드. |
성능 | 지연 시간이 몇 분에서 몇 시간. | 몇 초 또는 몇 밀리초의 지연 시간이 필요. |
분석 | 복잡한 분석. | 간단한 응답 기능, 수집 및 롤링 지표. |
CEP(Complex Event Processing) :
여러 이벤트 소스로부터 발생한 이벤트를 대상으로 실시간으로 의미있는 데이터를 추출하여 대응되는 작업 실행
DB나 File, Hadoop에 저장하지 않고, 다양한 고속의 이벤트 스트림을 In-Memory 기반으로 초당 수 백/수십 만건의 Real-time 처리가 가능하다.
구분 | DB/Hadoop (Batch) | CEP (Real-time) |
분석 방식 |
|
|
처리 매커니즘 |
![]() |
![]() |
분석 지연 |
|
|

참조 :