본문 바로가기

옥탑방주인/개인공부

빅데이처 처리 방식 3가지 : 배치 처리, 실시간 처리, 대화형 처리





빅데이처 처리 방식 3가지

    • 배치 처리(Batch Processing)
      1. Batch : 초, 분, 시간, 일, 월수준의 일괄 처리
    • 실시간 처리(Real-Time Processing)
      1. Near Real-Time : 초단위(seconds) 수준의 지연시간 보장
      2. Real-Time : 밀리세컨드(milliseconds, 1000분의 1초) 수준의 데이터 처리 보장
      3. Real Real-Time : 마이크로세컨드(Microseconds, 100만분의 1초) 수준의 데이터 처리 보장
    • 대화형 처리(Interactive Processing)
      1. REPL : Read-Eval-Print Loop의 약자로 스칼라, 파이썬 등 대화형 환경을 말한다. 콘솔에서 컴파일 없이 코드를 입력하고 출력 결과를 확인 할 수 있는 환경. 


배치 처리(Batch-Processing) 

 일괄 처리(batch processing)란 컴퓨터 프로그램 흐름에 따라 순차적으로 자료를 처리하는 방식을 뜻한다. 초기의 일괄처리 방식은 사용자와 상호작용하는 것이 불가능했지만, 운영 체제가 발전함에 따라 프로그램 입출력을 통해 상호작용하는 것이 가능해졌다. 일괄 처리는 1950년대 전자 컴퓨팅 초기 시절 이후 메인프레임 컴퓨터와 함께하고 있다. 

출처 : https://ko.wikipedia.org/wiki/%EC%9D%BC%EA%B4%84_%EC%B2%98%EB%A6%AC


 배치 처리 방식은 간단히 말하면 일정기간(일,월단위) 또는 한정된(bounded) 데이터를 모아두었다가 한 시점에 순서적으로 처리하는 방식이다. local batch processing 또는 remote batch processing으로 나눌 수 있다. 맵리듀스(MapReduce)기법인 하둡또한 배치처리 방식이다. 배치처리방식은 일정기간의 데이터를 일괄 처리하기때문에 실시간으로 데이터를 조회하기가 힘든 단점이 있다. 이런 단점을 극복하기 위해 최근에는 실시간 분산 쿼리나 스트리밍 기법이 많이 연구되고 있다. 

실시간 분산 쿼리는 클러스터를 구성하고 있는 여러개의 노드에서 각각의 쿼리를 처리하게 하여, 한번에 처리해야 할 데이터를 나눠서 처리(병렬처리)해서 응답시간을 실시간 수준으로 높이는 방식이다. Apache Impala, Apache Tez, Presto가 이러한 방식에 속한다. 스트리밍 처리는 아래 실시간 처리에서 설명을 이어나가도록 하겠다.




실시간 처리(Real-Time Processing)

 데이터의 발생과 동시에 즉시 처리하는 방식. 보통 실시간 처리는 지역적으로 거리가 있는 장소에서 발생하는 데이터를 통신 회선으로 받아서 처리하여 반송해 주는 온라인 실시간 시스템을 의미한다. 

출처 : http://terms.tta.or.kr/dictionary/dictionaryView.do?subject=%EC%8B%A4%EC%8B%9C%EA%B0%84+%EC%B2%98%EB%A6%AC


실시간 처리는 간단히 정리하면 실시간으로 발생하는 데이터 일명 스트리밍 데이터(streaming data)가 발생과 동시에 처리하는 과정을 실시간 처리라고 한다.

실시간이란 정의는 보통 3가지 종류로 나뉜다.

    • Near Real-Time : 초(seconds)단위 수준의 지연시간 보장
    • Real-Time : 밀리세컨드(millisecond, 1000분의 1초) 수준의 데이터 처리 보장
    • Real Real-Time : 마이크로세컨드(Microseconds, 100만분의 1초) 수준의 데이터 처리 보장



대화형 처리(Interactive Processing)