공부, 기록

데이터 처리 방식 (배치, 마이크로 배치) 본문

공부/소소한 개발

데이터 처리 방식 (배치, 마이크로 배치)

무는빼주세요 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)
분석 방식
  • 선저장 후, 분석방식
  • DB 또는 FileSystem, HDFS 저장 후 분석
  • 선분석처리, 후저장 방식
  • In-Memory 기반 분석 / Event-Driven Architecture
처리

매커니즘

분석 지연
  • Near Real-time
  • 초/분/시 지연분석
  • 데이터가 많아질 수 록 응답 지연 발생 가능성 높음
  • (Real) Real-time
  • 1/1000초 미만
  • 데이터 용량에 상관없이 Low-Latency 보장

 

CEP 오픈소스 Esper 아키텍처

 

참조 :

https://ssongit.tistory.com/1

https://aws.amazon.com/ko/streaming-data/

http://hochul.net/blog/bigdata_paradigm_realtime_kthdaisy/