빅데이터 분석에서 배치활용

최근 다양한 분야에서 빅데이터 분석이 활용되고 있다. 일반적으로 빅데이터 플랫폼을 구현하기 위해서는 수집->정제->분석->결과전이->Visualization등의 단계가 필요하다고 볼 수 있다.

이 중 수집단계에서는 수집주기에 따라서 RealTime/배치성/NearRealTime으로 나누며, 유형에 따라서는 정형/비정형으로 나눌 수 있다. 

기존 배치작업의 경우 정기적 정형데이터 (ex, RDBMS or File등)의 수집에서 활용될 수 있다.

다만 몇가지 차이점을 고려해야 한다.


배치작업으로 빅데이터 수집 시 고려해야 할 점

범용성

여러 노드에 위치한 다양한 Legacy DB로부터 데이터를 수집해야 하기 때문에 범용성이 있어야 한다. SQL은 되도록 ANSI SQL을 준수하고 DBMS자체의 함수사용을 자제한다. 처리속도의 향상을 위해서 프로시저는 제한적으로 사용이 가능하지만 추후 유지보수나 비지니스 변경을 적시에 반영하기 위해서는 신중한 검토가 필요하다.

원격서버에 대한 실행제어

데이터 수집의 속도향상을 위해서는 분산환경을 이용해야 하며, 데이터 유형에 따라서 이미지수집,로그수집 등 다양한 프로세스가 존재할 수 있다. 이를 한곳에서 모니터링하고 제어할 수 있는 환경이 필요하다.

사용성

분석자는 개발을 모른다는 전제하에 수집기능이 제공되어야 한다. 분석작업을 위해서 데이터를 수집할 때 단순한 쿼리수행과 옵션만으로 기능을 사용할 수 있어야 한다. UI기반으로 수집모델을 만들어 낼 수 있다면 더욱 좋다.

경량성

일반적으로 빅데이터 분석시 사용하는 Hadoop은 여러노드에서 분산처리된다. 수집작업을 같은 노드에서 수행할 경우 서버자원에 경합이 발생하여 성능저하를 야기할 수 있다. HDFS적재의 편리성 때문에 Hadoop 노드에서도 수집작업이 이루어짐을 감안한다면 최소한의 패키징과 라이브러리로 자원소모량을 줄일 필요가 있다.

데이터 매핑

빅데이터 분석을 위해서 수집되는 데이터는 과거 업무프로세스에 의해서 정의된 배치작업과는 다르게 수시로 Input/Output Layout이나 쿼리문이 변경되어야 한다. 이를 위해서 쉽게 데이터 매핑을 지원해야 한다.


ps)파일을 읽어야 하는 수집작업이지만 배치성이 아니라 Near-Real Time의 수집처리가 있을 수 있다. (ex, System Log, Daemon Process)

'Software Architecture' 카테고리의 다른 글

Go Reactive Systems  (0) 2015.03.25
scale out 이 가능한 architecture? micro service?  (0) 2015.03.25
배치 어플리케이션 개발시 고려사항  (0) 2014.04.20
Batch Architecture 고려사항  (0) 2014.03.31
Enterprise Batch  (0) 2014.03.31

+ Recent posts