티스토리 뷰
"본 글은 2013년 11월 12일 지디넷코리아에 기고한 칼럼입니다."
최근 빅데이터 분석에서 실시간(real-time) 처리에 대한 요구가 늘었다.
주요 빅데이터 기술로 널리 사용하는 하둡(Hadoop)은 배치 처리에 기반해, 하둡 맵리듀스 동작 시간을 최대한 줄일 수는 있어도 실시간 처리에는 한계가 있다.
빅데이터 분석은 그동안 처리하지 못했던 많은 데이터에서 의미있는 정보를 추출해 내는 것이므로 필자는 처음에만 해도 실시간 처리는 큰 의미가 없을 것으로 판단했던게 사실이다.
그러나 데이터 분석 컨설팅을 진행하면서 실시간 처리에 대한 요구가 꽤 높다는 것을 알게 됐다.
예를 들어, 새로운 모바일 앱을 출시했을 때 사용자 증가 추이를 바로 확인하거나
광고 프로모션을 진행한다면 실시간으로 광고 효과를 알고 싶다는 필요성이 생겼다.
데이터가 많고 적음에 관계없이 현재 상황에 대한 궁금증을 빠르게 해결하는 것도, 의미가 있다는 것이다.
기존 데이터베이스를 활용하면 실시간 분석에 대한 요구를 만족시킬 수 있다.
하지만 빅데이터 시대에 관계형 DB는 데이터 양과 시스템 규모, 비정형 데이터 처리에 적합하지 않다.
대체 수단으로 NoSQL도 사용되고 있지만, 빅데이터 실시간 처리를 위해서는 인메모리(in-memory) 기술이 대세라는게 개인적인 생각이다.
실시간 처리를 위한 인메모리 기술 중에서 CEP(Complex Event Processing) 기술을 주목할 것을 주문하고 싶다.
오라클, SAP 등에서 CEP 관련 솔루션을 내놓고 있지만, 오픈소스인 Esper도 훌륭한 CEP 처리 기술이다.
충분히 관심을 가져볼 만 하다.
90년대 후반 필자가 XML 파서를 개발하던 시절을 돌이켜 보면, 초기에는 DOM(Document Object Model) 구조로 XML 문서를 파싱해서 제공했다.
그러나 XML 문서 양이 커지면서 한번에 전체 문서를 읽고 트리 구조를 만들어서 제공하는 DOM 모델로는 한계가 있었다.
이 때 새롭게 등장한 구조가 바로 SAX(Simple API for XML)였다.
SAX는 이벤트 기반으로 XML 문서를 처리했다.
즉, XML 문서를 한 줄씩 읽어나가면서 태그, 속성 등이 나올 때마다 이벤트로 알려줌으로써 원하는 이벤트에 대해서 필요한 기능을 처리하도록 한 것이다.
이에 따라 XML 문서 양과 관계없이 처음부터 끝까지 즉시 읽어나가면서 처리하는 것이 가능해졌다.
CEP에서 실시간 스트리밍 데이터를 처리하는 방식도 이와 유사하다.
이벤트 기반 아키텍처로 실시간으로 들어오는 데이터에서 이벤트를 계속해서 발생시키고, 특정 이벤트만 필터링해서 필요한 작업을 수행하는 것이다.
실제로 Esper를 테스트 해 보니 처리 속도나 안정성이 괜찮았다.
HBase등 최근 빅데이터 관련 기술들과도 잘 연동된다.
EPL이라는 SQL 같은 쿼리를 제공해, 쓰기도 쉽다.
특히 오픈소스이기 때문에 앞으로 계속해서 발전할 잠재력도 있다.
하둡(Hadoop)에서 Esper와 같은 CEP 기술로 옮겨가는 것이 DOM에서 SAX로 이전된 것과 오버랩되고 있는 모습이다.
물론 XML 처리에서 DOM이 SAX와 함께 꾸준히 사용된 것처럼, 하둡도 빅데이터 배치 처리로 계속해서 널리 사용될 것이다.
실제로 시간대별 분석이나 요일별 분석에 실시간 데이터를 포함해서 처리하면,
항상 현재 시간대가 최저값이 나오게 되므로 오히려 부정확한 데이터를 제공하게 된다.
이런 경우에는 어제까지의 데이터를 기반으로 분석하는 것이 적절하다.
결국 사용자 요구에 따라 가장 효율적인 기술을 선택해서 적용하면 된다.
새로운 기술에 대해 다양하게 테스트 해보고 적절한 기술을 효과적으로 활용해 보기 바란다.
'사색 > 칼럼' 카테고리의 다른 글
개인정보와 빅데이터가 충돌하지 않게 하는 방법 (0) | 2014.02.14 |
---|---|
모바일앱 분석으로 매출에 영향을 줄 수 있을까? (0) | 2014.01.10 |
비즈니스 프렌들리한 빅데이터 분석의 조건 (0) | 2013.12.05 |
데이터 시각화의 오해와 진실 (0) | 2013.10.04 |
빅데이터 분석의 성공 열쇠~ (0) | 2013.09.03 |